Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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;
                }
            }
        }