Advertisement
Tolyamba

Untitled

Jul 10th, 2017
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.81 KB | None | 0 0
  1. // Сервер
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Net;
  8. using System.Net.Sockets;
  9.  
  10. namespace Server
  11. {
  12.     class Program
  13.     {
  14.         static void Main(string[] args)
  15.         {
  16.             // Устанавливаем для сокета локальную конечную точку
  17.             IPHostEntry ipHost = Dns.GetHostEntry("localhost");
  18.             IPAddress ipAddr = ipHost.AddressList[0];
  19.             IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
  20.  
  21.             // Создаем сокет Tcp/Ip
  22.             Socket sListener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
  23.  
  24.             // Назначаем сокет локальной конечной точке и слушаем входящие сокеты
  25.             try
  26.             {
  27.                 sListener.Bind(ipEndPoint);
  28.                 sListener.Listen(10);
  29.  
  30.                 // Начинаем слушать соединения
  31.                 while (true)
  32.                 {
  33.                     Console.WriteLine("Ожидаем соединение через порт {0}", ipEndPoint);
  34.  
  35.                     // Программа приостанавливается, ожидая входящее соединение
  36.                     Socket handler = sListener.Accept();
  37.                     string data = null;
  38.  
  39.                     // Мы дождались клиента, пытающегося с нами соединиться
  40.  
  41.                     byte[] bytes = new byte[1024];
  42.                     int bytesRec = handler.Receive(bytes);
  43.  
  44.                     data += Encoding.UTF8.GetString(bytes, 0, bytesRec);
  45.  
  46.                     // Показываем данные на консоль
  47.                     double mark = Convert.ToDouble(data);
  48.                     Console.Write("Полученная оценка: " + mark + "\n\n");
  49.  
  50.                     // Отправляем ответ клиенту
  51.                     string reply = "Оценка сохранена!";
  52.                     byte[] msg = Encoding.UTF8.GetBytes(reply);
  53.                     handler.Send(msg);
  54.  
  55.                     if (data.IndexOf("<TheEnd>") > -1)
  56.                     {
  57.                         Console.WriteLine("Сервер завершил соединение с клиентом.\n");
  58.                         break;
  59.                     }
  60.  
  61.                     handler.Shutdown(SocketShutdown.Both);
  62.                     handler.Close();
  63.                 }
  64.             }
  65.             catch (Exception ex)
  66.             {
  67.                 Console.WriteLine(ex.ToString());
  68.             }
  69.             finally
  70.             {
  71.                 Console.ReadLine();
  72.             }
  73.         }
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement