示例#1
0
        private static async Task HandleClient(TcpClient tcpClientSocket)
        {
            var isClientConnected = true;

            IClientDataAccess clientDataAccess = new ClientDataAccess();
            IClientService    clientService    = new ClientService(clientDataAccess);

            DateTime hour           = DateTime.Now;
            string   connectionHour = hour.Hour + ":" + hour.Minute;

            int token = clientService.AddClient(connectionHour);

            try
            {
                using (var networkStream = tcpClientSocket.GetStream())
                {
                    SendMenu(networkStream);

                    IFrameHandler frameHandler = new FrameHandler(networkStream);
                    while (isClientConnected)
                    {
                        var frame = await frameHandler.ReadDataAsync();

                        var printiame = Encoding.ASCII.GetString(frame);
                        Console.WriteLine("Now handeling: " + printiame);
                        isClientConnected = HandleRequest(frame, networkStream);
                    }
                    clientService.RemoveClient(token);
                }
            }
            catch (SocketException)
            {
                Console.WriteLine("The client connection was interrupted");
            }
        }
示例#2
0
        private void HandleConnectionReceived(object sender, ConnectionReceivedEventArgs e)
        {
            _clientService.AddClient(e.Login);

            _wsServer.Send(e.Login, String.Empty, new ConnectionBroadcast(e.Login, e.IsConnected, DateTime.Now).GetContainer());
        }