private static void ServerWorkGetVirus(object obj) { UserOnServer user = (UserOnServer)obj; while (true) { Socket userSoket = user.UserSocketGetVirus; try { byte[] buffer = new byte[1024]; userSoket.Receive(buffer); string message = Encoding.UTF8.GetString(buffer).Replace("\0", ""); if (message != null && message != "") { string HashCode = message.Substring(0, 2); message = message.Remove(0, 2); if (HashCode == "#V") { Console.WriteLine($"Запрос на сохранение хеша - {message}"); string hashInEndFile = string.Empty; if (File.Exists(Directory.GetCurrentDirectory() + @"\HashWhichTheChecked.vih")) { using (StreamReader sr = new StreamReader(Directory.GetCurrentDirectory() + @"\HashWhichTheChecked.vih", Encoding.UTF8)) { hashInEndFile = sr.ReadToEnd(); } } if (!hashInEndFile.Contains(message) || hashInEndFile == string.Empty) { using (StreamWriter stream = new StreamWriter(Directory.GetCurrentDirectory() + @"\HashForCheck.vih", true, Encoding.UTF8)) { stream.WriteLine(message); Console.WriteLine("Сохранение прошло успешно"); } } else { Console.WriteLine("Произошла ошибка"); } //Thread threadForGetVirus = new Thread(ServerGetVirus) //{ // IsBackground = true //}; //threadForGetVirus.Start(message); } } } catch (Exception) { //Console.WriteLine("Был закрыт порт"); userSoket.Disconnect(false); //serverGetVirusThreads[user.UserThreadIndex].Abort(); break; } } }
private static void ServerWorkUpdate(object obj) { UserOnServer user = (UserOnServer)obj; while (true) { Socket userSoket = user.UserSocketUpdate; try { byte[] buffer = new byte[1024]; userSoket.Receive(buffer); string message = Encoding.UTF8.GetString(buffer).Replace("\0", ""); string HashCode = message.Substring(0, 2); message = message.Remove(0, 2); if (HashCode == "#U") { Console.WriteLine("Получен запрос на базу hash"); if (File.Exists(Directory.GetCurrentDirectory() + @"\HashWhichTheChecked.vih")) { string hashInEndFile = string.Empty; using (StreamReader sr = new StreamReader(Directory.GetCurrentDirectory() + @"\HashWhichTheChecked.vih", Encoding.UTF8)) { hashInEndFile += sr.ReadToEnd(); } if (hashInEndFile != string.Empty) { byte[] buffer1 = Encoding.UTF8.GetBytes(hashInEndFile); buffer = Encoding.UTF8.GetBytes(Convert.ToString(buffer1.Length)); userSoket.Send(buffer); buffer = new byte[3]; userSoket.Receive(buffer); if (Encoding.UTF8.GetString(buffer) == "#NE") { userSoket.Send(buffer1); } } Console.WriteLine("Запрос Выполнен"); } //Thread threadForUpdate = new Thread(CallBase) //{ // IsBackground = true //}; //threadForUpdate.Start(userSoket); } } catch (Exception) { Console.WriteLine("Был закрыт порт"); userSoket.Disconnect(false); //serverUpdateThreads[user.UserThreadIndex].Abort(); break; } } }