public void Start() { IPEndPoint my_ip = new IPEndPoint(Tools.GetMyIP(), PORT); Socket nw_obj = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { nw_obj.Bind(my_ip); nw_obj.Listen(MAX_REQUEST_COUNT); log.WriteLog("Сервер запущен. Ожидание подключений."); ThreadPool.SetMaxThreads(MAX_REQUEST_COUNT, MAX_REQUEST_COUNT); while (true) { Socket client_connection = nw_obj.Accept(); //Может быть косяк log.WriteLog(Tools.GetIPFromSocket(client_connection) + " - Подключен"); ThreadPool.QueueUserWorkItem(new WaitCallback(delegate { ClientHandler client = new ClientHandler(client_connection, db, log, connections); client.Start(); })); } } catch (Exception ex) { /*дописать*/ MessageBox.Show(ex.Message); } }
public Server(MainForm log_dest) { db = new ServerDataManagment(); log = log_dest; log.WriteLog("Установлено соединение с базой данных."); }
public void Start() { try { while (true) { StringBuilder builder = new StringBuilder(); int received = 0; byte[] buffer = new byte[256]; List <byte> encrypted = new List <byte>(); do { received += client.Receive(buffer); encrypted.AddRange(buffer); }while (client.Available > 0); encrypted.RemoveRange(received, encrypted.Count - received); string data = Encryption.DecryptAES(encrypted.ToArray()); log.WriteLog("Принят запрос от " + Tools.GetIPFromSocket(client) + " : " + data); ParseRequest(data); } } catch (SocketException ex) { log.WriteLog("Пользователь " + Tools.GetIPFromSocket(client) + " был отключён"); client.Dispose(); } }