public void StartRequest(int ttl) { var places = utilities.Factory.getIpsAndPorts(); foreach (var keyValuePair in places) { var requestModel = utilities.Factory.ParseRequest("/searchfile?name=" + textBox1.Text.Trim() + "&sendip=" + utilities.Factory.LocalIPAddress() + "&sendport=" + utilities.Factory.LocalPort() + "&ttl=" + ttl + "&id=wqeqwe23&noask=" + utilities.Factory.LocalIPAddress()); var request = new GetRequestHandler(requestModel, keyValuePair.Key.ToString(), keyValuePair.Value.ToString()); Thread worker = new Thread(request.doRequest); worker.IsBackground = true; worker.SetApartmentState(System.Threading.ApartmentState.STA); worker.Name = "STARTERParseRequestsAndSendRequestsTTL"; worker.Start(); } }
public static void filterAndDistributeQuery(string data) { var startParsing = ParseRequest(FilterQuery.getMainParamaterFromGetRequest(data)); var ttl = Int32.Parse(startParsing.TimeToLive) - 1; var foundFiles = FindFile(startParsing.Name); var fileList = new List<FileModel>(); if (foundFiles.Any() && ttl > 0) { foreach (var file in foundFiles) { fileList.Add(new FileModel { Ip = LocalIPAddress(), Port = LocalPort(), Name = file }); } var json = JsonConvert.SerializeObject(new PostObject { Id = String.Empty, Files = fileList }); var postreq = new PostRequestHandler(json, startParsing.Sendip, startParsing.Sendport); Thread worker = new Thread(postreq.postRequest); worker.IsBackground = true; worker.SetApartmentState(System.Threading.ApartmentState.STA); worker.Name = "PostRequestThreadHE"; worker.Priority = ThreadPriority.Highest; worker.Start(); } if (ttl > 0) { var places = getIpsAndPorts(); foreach (var keyValuePair in places) { if (!startParsing.Noask.Contains(keyValuePair.Key.ToString())) { var requestModel = startParsing; requestModel.TimeToLive = ttl.ToString(); requestModel.Noask.Add(LocalIPAddress()); var request = new GetRequestHandler(requestModel, keyValuePair.Key.ToString(), keyValuePair.Value.ToString()); Thread worker = new Thread(request.doRequest); worker.IsBackground = true; worker.SetApartmentState(System.Threading.ApartmentState.STA); worker.Name = "ParseRequestsAndSendRequestsTTL"; worker.Start(); } } } }