Ejemplo n.º 1
0
        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); }
        }
Ejemplo n.º 2
0
        public Server(MainForm log_dest)
        {
            db = new ServerDataManagment();

            log = log_dest;

            log.WriteLog("Установлено соединение с базой данных.");
        }
Ejemplo n.º 3
0
        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();
            }
        }