Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Net;
- using System.Net.Sockets;
- using System.Threading;
- //TestGetMessageServer
- //Original code https://professorweb.ru/my/csharp/web/level3/3_2.php
- namespace TestGetMessageServer
- {
- class Program
- {
- static void Main(string[] args)
- {
- // Устанавливаем для сокета локальную конечную точку
- IPHostEntry ipHost = Dns.GetHostEntry("10.10.0.30");
- IPAddress ipAddr = ipHost.AddressList[0];
- IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
- // Создаем сокет Tcp/Ip
- Socket sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
- // Назначаем сокет локальной конечной точке и слушаем входящие сокеты
- try
- {
- sListener.Bind(ipEndPoint);
- sListener.Listen(10);
- // Начинаем слушать соединения
- while (true)
- {
- Console.WriteLine("Ожидаем соединение через порт {0}", ipEndPoint.Port);
- Console.WriteLine("Локальный адрес {0}", ipEndPoint.Address);
- // Программа приостанавливается, ожидая входящее соединение
- Socket handler = sListener.Accept();
- string data = null;
- // Мы дождались клиента, пытающегося с нами соединиться
- byte[] bytes = new byte[1024];
- //на самом деле тут надо делать нормальную проверку
- Console.WriteLine("Сообщение получено, ожидаем данные (5 с)");
- Thread.Sleep(5000);
- int bytesRec = handler.Receive(bytes);
- data += Encoding.UTF8.GetString(bytes, 0, bytesRec);
- // Показываем данные на консоли
- Console.Write("Полученный текст: " + data + "\n\n");
- // Отправляем ответ клиенту
- /*string reply = "Спасибо за запрос в " + data.Length.ToString()
- + " символов";
- byte[] msg = Encoding.UTF8.GetBytes(reply);
- handler.Send(msg);*/
- if (data.IndexOf("-TheEnd-") > -1)
- {
- Console.WriteLine("Сервер завершил соединение с клиентом.");
- break;
- }
- handler.Shutdown(SocketShutdown.Both);
- handler.Close();
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- finally
- {
- Console.ReadLine();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement