Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Net.Sockets;
- using System.Text;
- using System.Threading.Tasks;
- namespace Time_Server
- {
- class Program
- {
- private static byte[] _buffer = new byte[1024];
- private static List<Socket> _clientSockets = new List<Socket>();
- private static Socket _serverSocket = new Socket
- (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- static void Main(string[] args)
- {
- Console.Title = "Server";
- SetupServer();
- Console.ReadLine();
- }
- private static void SetupServer()
- {
- Console.WriteLine("[ " + DateTime.Now.ToString() + "] Serveris ijungtas");
- _serverSocket.Bind(new IPEndPoint(IPAddress.Any, 100));
- _serverSocket.Listen(1);
- _serverSocket.BeginAccept(new AsyncCallback(AccepCallback), null);
- }
- private static void AccepCallback(IAsyncResult AR)
- {
- Socket socket = _serverSocket.EndAccept(AR);
- _clientSockets.Add(socket);
- string clientIP = socket.RemoteEndPoint.ToString();
- Console.WriteLine("[ " + DateTime.Now.ToString() + "] Klientas prisijunge [ " + clientIP + " ]\n");
- socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
- _serverSocket.BeginAccept(new AsyncCallback(AccepCallback), null);
- }
- private static void ReceiveCallback(IAsyncResult AR)
- {
- try
- {
- Socket socket = (Socket)AR.AsyncState;
- int received = socket.EndReceive(AR);
- byte[] dataBuf = new byte[received];
- Array.Copy(_buffer, dataBuf, received);
- string text = Encoding.ASCII.GetString(dataBuf);
- string clientIP = socket.RemoteEndPoint.ToString();
- Console.Write("[ " + DateTime.Now.ToString() + "] Gauta uzklausa is kliento ( " + clientIP + " ): " + text + "\n");
- string response = string.Empty;
- response = "Serveris gavo tavo uzklausa";
- byte[] data = Encoding.ASCII.GetBytes(response);
- socket.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback(SendCallback), socket);
- }
- catch (Exception)
- {
- Console.WriteLine("[ " + DateTime.Now.ToString() +"] Klientas atsijunge");
- }
- }
- private static void SendCallback(IAsyncResult AR)
- {
- Socket socket = (Socket)AR.AsyncState;
- socket.EndSend(AR);
- socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveCallback), socket);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement