Пример #1
0
        private void OnReceiveCallback(IAsyncResult iar)
        {
            ClientAsyncState asyncState   = iar.AsyncState as ClientAsyncState;
            Socket           clientSocket = asyncState.ClientSocket;

            int readCount = clientSocket.EndReceive(iar);
            TcpHeaderFactory headerFactory = asyncState.HeaderFactory;

            headerFactory.PumpData(asyncState.Buffer, 0, readCount);

            string message;

            while (headerFactory.TryProcess(out message))
            {
                OnReceiveMessage(message);
            }

            clientSocket.BeginReceive(asyncState.Buffer, 0, BufferSize, SocketFlags.None, OnReceiveCallback, asyncState);
        }
Пример #2
0
 public ClientAsyncState(Socket clientSocket)
 {
     this.m_ClientSocket  = clientSocket;
     this.m_Buffer        = new byte[BufferSize];
     this.m_HeaderFactory = new TcpHeaderFactory();
 }