예제 #1
0
        public void ProcessNextRequest()
        {
            using (TcpClient socket = _serverListener.AcceptTcpClientAsync().Result)
            {
                var     recvStream = new BinaryReader(socket.GetStream());
                Message request    = Message.ReadFrom(recvStream);
                Console.WriteLine($"Read request from socket {request}");

                IMessageProcessor processor = _messageProcessors[request.Type];
                Message           response  = processor.ProcessRequest(request, socket.Client.RemoteEndPoint);

                Console.WriteLine($"Writing response to socket {response}");
                var sendStream = new BinaryWriter(socket.GetStream());
                response.WriteInto(sendStream);
                sendStream.Flush();
            }
        }