示例#1
0
        /// <summary>
        /// Запуск сервера TCP подключений
        /// </summary>
        public void ZapuskServera()
        {
            const string ip = "127.0.0.1";
            //const string ip = "192.168.1.189";
            const int port = 8090;

            string   textLog  = "";
            DateTime dateTime = DateTime.Now; // получение текущей даты

            // обьект для обьединения ip адреса и порта. сетевую конечную точку в виде IP-адреса
            var tcpEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);

            //Cocket. В качестве параметра передаем Тип и схема подключения для сокета((используется ip 4 версии)). Тип самого сокета(выб поток) Потом пип конкретного протокола
            var tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            // Связывание сокета с настройками(какой ip и порт слушать).
            tcpSocket.Bind(tcpEndPoint);

            // запуск сокета на прошлушку порта.В качестве параметров указываем количество подключений клиентов
            tcpSocket.Listen(5);


            // процесс прошлушивания порта
            textLog = $"{dateTime}\t\nЗапуск службы прошлушивания IP{ip} И Potr{port}";

            Console.WriteLine($"\t\nЗапуск службы прошлушивания IP{ip} И Potr{port}");

            while (true)
            {
                // создает новый сокет для каждого нового подключения
                var listener = tcpSocket.Accept();

                //бефер для подключения.  данные из 2 сокетов.(клиента и сокета) хранятся и передаются в байтовым видом
                var buffer = new byte[256];                                // хранение данных полученные из сокета
                var size   = 0;                                            // реальное количество байт
                var data   = new StringBuilder();                          // Изменяеммая строка.

                do                                                         // цикл с пост условием.
                {
                    size = listener.Receive(buffer);                       // получаем данные из сокета.
                    data.Append(Encoding.UTF8.GetString(buffer, 0, size)); // добавляем в строку данные из буфера с указанной кодировкой
                } while (listener.Available > 0);                          // Проверяем что полученное значение больше 0

                Console.WriteLine($"{data}");                              //TODO строку

                // отправка ответа
                listener.Send(Encoding.UTF8.GetBytes("\t\n Соединение установленно!")); // отправление байтов
                textLog += $"\n{dateTime}: Успех! \t\n Соединение установленно!";       // запись в лог

                listener.Shutdown(SocketShutdown.Both);                                 // закрываем соединение сокета у клиента и у сервера

                listener.Close();                                                       // закрытие и освобождение ресурсов сокета

                textLog += $"\t\n{TekDateTime()}:Закрытие соединения";

                RabFail.ZapisFailaText(textLog); // запись лога в файл
            }

            //Console.WriteLine("");
        }
示例#2
0
        /// <summary>
        /// aсинхронный метод обертку над нужным методом
        /// </summary>
        public async static Task RabThreadAsync()
        {
            Console.WriteLine("Работаем с асинронными методами");
            // aсинхронный метод обертку над нужным методом
            // Task DoWorkAsync();

            // через ананимную лямбу вызываем нужный метод
            // await Task.Run(()=> RabFail.DoWork());
            await Task.Run(() => RabFail.DoWorkTest(55040));

            Console.ReadKey();
        }
示例#3
0
 /// <summary>
 /// запуск асинхронного метода рандомации и записи интовых значений в файл
 /// </summary>
 /// <returns></returns>
 public async static Task RandomTextFailZapis()
 {
     Console.WriteLine("**********Запуск асинхронного метода RandomTextFailZapis***********");
     await Task.Run(() => RabFail.RandomZapisFailaInt());
 }
示例#4
0
        /// <summary>
        /// aсинхронный метод обертку над нужным методом с Параметрами
        /// </summary>
        public async static Task RabThreadParametrAsync(int paramss)
        {
            Console.WriteLine("Работаем с асинронными методами c указанием параметра");

            await Task.Run(() => RabFail.DoWorkTest(paramss));
        }