예제 #1
0
파일: Server.cs 프로젝트: MCMisha/CSharp
        private void RequestForRegisty()
        {
            Console.WriteLine("Порт для регистрации запущен.");
            IPEndPoint ipPoint      = new IPEndPoint(IPAddress.Parse(ipAddress), portForRegister);
            Socket     listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            try {
                listenSocket.Bind(ipPoint);
                listenSocket.Listen(10);

                while (true)
                {
                    Socket        handler = listenSocket.Accept();
                    StringBuilder builder = new StringBuilder();
                    string        message;
                    int           bytes = 0;
                    byte[]        data  = new byte[256];
                    do
                    {
                        bytes = handler.Receive(data);
                        builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
                    }while (handler.Available > 0);
                    Console.WriteLine(DateTime.Now.ToShortTimeString() + ": регистрация нового пользователя");
                    string[] info = builder.ToString().Split(' ');
                    if (dataBase.FindData(info[0]) == true)
                    {
                        message = "Такой пользователь уже есть!";
                        Console.WriteLine(DateTime.Now.ToShortTimeString() + ": ошибка регистрации");
                    }
                    else
                    {
                        message = "Регистрация прошла успешна";
                        Console.WriteLine(DateTime.Now.ToShortTimeString() + ": регистрация прошла успешно");
                        dataBase.InsertDataInUsers(info[0], info[1]);
                    }
                    data = Encoding.Unicode.GetBytes(message);
                    handler.Send(data);
                    handler.Shutdown(SocketShutdown.Both);
                    handler.Close();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }