Source Code for Me (s-c.me)

Allows you to paste souce code to blogs! Adapted for Twitter! Here is Search Form in case you missed your code.
Code:
Selected Language:
Show Linenumbers:
Short link for Twitter:
HTML:

HTML view:

Copy Source | Copy HTML
  1. public static class Server
  2. {
  3.     // Private members
  4.  
  5.     private static Socket servSock = null;
  6.     private static Thread servThread = null;
  7.  
  8.     private static void ServerFunc()
  9.     {
  10.         // Ð¡Ð¾Ð·Ð´Ð°ÐµÐ¼ ÑÐ¾ÐºÐµÑ‚ Ð´Ð»Ñ ÑÐ»ÑƒÑˆÐ°Ð½Ð¸Ñ UDP-датаграмм
  11.         servSock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
  12.         EndPoint endPoint = new IPEndPoint(IPAddress.Any, Common.Port);
  13.         servSock.Bind(endPoint);
  14.         // ÐžÐ±Ñ€Ð°Ñ‚ите Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ, Ð¼Ñ‹ Ð½Ðµ Ð²Ñ‹Ð·Ð²Ð°ÐµÐ¼ Listen
  15.  
  16.         while (true)
  17.         {
  18.             byte[] buf = new byte[4];
  19.             byte[] req = Common.DiscoveryRequest;
  20.             // Ð“оворим, Ñ‡Ñ‚о Ñ…отим Ð¿Ñ€Ð¸Ð½ÑÑ‚ÑŒ Ð´Ð°Ñ‚аграмму Ð¾Ñ‚куда ÑƒÐ³Ð¾Ð´Ð½Ð¾ Ð½Ð° Ð´Ð°Ð½Ð½Ñ‹Ð¹ Ð¿Ð¾Ñ€Ñ‚
  21.             endPoint = new IPEndPoint(IPAddress.Any, Common.Port);
  22.             servSock.ReceiveFrom(buf, ref endPoint);
  23.             // ÐŸÑ€Ð¾Ð²ÐµÑ€ÑÐµÐ¼, Ñ‡Ñ‚о Ð¶Ðµ Ð½Ð°Ð¼ Ð¿Ñ€Ð¸ÑˆÐ»Ð¾
  24.             if (buf[ 0] == req[ 0] && buf[1] == req[1] && buf[2] == req[2] && buf[3] == req[3])
  25.             {
  26.                 FireServerWasDiscovered(endPoint);
  27.                 // ÐžÑ‚вечаем ÐºÐ»Ð¸ÐµÐ½Ñ‚у. Ð¢ÑƒÑ‚ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚. endPort Ð¸Ð¼ÐµÐµÑ‚ ÑƒÐ¶Ðµ Ð½Ðµ Ñ‚от Ð½Ð¾Ð¼ÐµÑ€ Ð¿Ð¾Ñ€Ñ‚а,
  28.                 // Ð½Ð° ÐºÐ¾Ñ‚ором Ð¼Ñ‹ ÑÐ»ÑƒÑˆÐ°ÐµÐ¼ Ð¸ Ð½Ð° ÐºÐ¾Ñ‚орый Ð¿Ð¾ÑÑ‹Ð»Ð°Ð» ÐºÐ»Ð¸ÐµÐ½Ñ‚
  29.                 // ÐšÑÑ‚ати, Ð½Ð¸ÐºÑ‚о Ð½Ðµ Ð·Ð½Ð°ÐµÑ‚, Ð¿Ð¾Ñ‡ÐµÐ¼Ñƒ? :)
  30.                 (endPoint as IPEndPoint).Port = Common.Port;
  31.                 servSock.SendTo(Common.ServerResponse, endPoint);
  32.             }
  33.         }
  34.     }
  35.  
  36.     private static void FireServerWasDiscovered(EndPoint endPoint)
  37.     {
  38.         if (ServerWasDiscovered != null)
  39.             ServerWasDiscovered(endPoint);
  40.     }
  41.  
  42.     // Public members
  43.  
  44.     public delegate void ServerWasDiscoveredNotification(EndPoint endPoint);
  45.     // Ð­Ñ‚о ÑÐ¾Ð±Ñ‹Ñ‚ие Ð¿Ð¾Ð¸ÑÐºÐ° ÐºÐµÐ¼-то Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑÐµÑ€Ð²ÐµÑ€Ð°
  46.     public static event ServerWasDiscoveredNotification ServerWasDiscovered;
  47.  
  48.     // Ð­Ñ‚от Ð¼ÐµÑ‚од ÑÑ‚артует ÑÐ»ÑƒÑˆÐ°Ð½Ð¸Ðµ Ð¿Ð°ÐºÐµÑ‚ов. Ð¢ÑƒÑ‚ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ Ð¾ÑÐ¾Ð±Ð¾ ÑƒÐ´Ð¸Ð²Ð¸Ñ‚ельного
  49.     public static void Start()
  50.     {
  51.         if (servSock != null || servThread != null)
  52.             throw new InvalidOperationException("Already in progress");
  53.  
  54.         servThread = new Thread(new ThreadStart(ServerFunc));
  55.         servThread.Start();
  56.     }
  57.  
  58.     // ÐžÑÑ‚анов ÑÐµÑ€Ð²ÐµÑ€Ð°
  59.     public static void Stop()
  60.     {
  61.         if (servThread != null)
  62.         {
  63.             servThread.Abort();
  64.             servThread = null;
  65.         }
  66.         if (servSock != null)
  67.         {
  68.             servSock.Close();
  69.             servSock = null;
  70.         }
  71.     }
  72. }




Based on Manoli.Net's CodeFormatter. Made by Topbot (c) 2008-2012