Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.87 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace Time_Server
  10. {
  11.     class Program
  12.     {
  13.         private static byte[] _buffer = new byte[1024];
  14.         private static List<Socket> _clientSockets = new List<Socket>();
  15.         private static Socket _serverSocket = new Socket
  16.             (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  17.         static void Main(string[] args)
  18.         {
  19.             Console.Title = "Server";
  20.             SetupServer();
  21.             Console.ReadLine();
  22.  
  23.         }
  24.         private static void SetupServer()
  25.         {
  26.             Console.WriteLine("[ " + DateTime.Now.ToString() + "] Serveris ijungtas");
  27.             _serverSocket.Bind(new IPEndPoint(IPAddress.Any, 100));
  28.             _serverSocket.Listen(1);
  29.             _serverSocket.BeginAccept(new AsyncCallback(AccepCallback), null);
  30.  
  31.         }
  32.  
  33.         private static void AccepCallback(IAsyncResult AR)
  34.         {
  35.             Socket socket = _serverSocket.EndAccept(AR);
  36.             _clientSockets.Add(socket);
  37.             string clientIP = socket.RemoteEndPoint.ToString();
  38.             Console.WriteLine("[ " + DateTime.Now.ToString() + "] Klientas prisijunge [ " + clientIP + " ]\n");
  39.             socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
  40.             _serverSocket.BeginAccept(new AsyncCallback(AccepCallback), null);
  41.         }
  42.         private static void ReceiveCallback(IAsyncResult AR)
  43.         {
  44.             try
  45.             {
  46.                 Socket socket = (Socket)AR.AsyncState;
  47.                 int received = socket.EndReceive(AR);
  48.                 byte[] dataBuf = new byte[received];
  49.                 Array.Copy(_buffer, dataBuf, received);
  50.  
  51.                 string text = Encoding.ASCII.GetString(dataBuf);
  52.                 string clientIP = socket.RemoteEndPoint.ToString();
  53.                 Console.Write("[ " + DateTime.Now.ToString() + "] Gauta uzklausa is kliento ( " + clientIP + " ): " + text + "\n");
  54.  
  55.                 string response = string.Empty;
  56.  
  57.                 response = "Serveris gavo tavo uzklausa";
  58.  
  59.                 byte[] data = Encoding.ASCII.GetBytes(response);
  60.                 socket.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback(SendCallback), socket);
  61.             }
  62.             catch (Exception)
  63.             {
  64.  
  65.                 Console.WriteLine("[ " + DateTime.Now.ToString() +"] Klientas atsijunge");
  66.             }
  67.         }
  68.  
  69.         private static void SendCallback(IAsyncResult AR)
  70.         {
  71.             Socket socket = (Socket)AR.AsyncState;
  72.             socket.EndSend(AR);
  73.             socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement