private void ReadSocket(Socket pSocket, SocketStateObject pStateObject) { string message = string.Empty; if (pSocket == null) { return; } // Read data from the socket int bytesRead = 0; try { bytesRead = pSocket.Receive(pStateObject.mBuffer); } catch (Exception e) { Console.WriteLine("Can't read data from remote end "); pSocket.Close(); bytesRead = 0; return; } if (bytesRead > 0) { pStateObject.mSb.Append( Encoding.ASCII.GetString( pStateObject.mBuffer, 0, bytesRead)); if (pSocket.Available > 0) { ReadSocket(pSocket, pStateObject); } message = pStateObject.mSb.ToString(); Console.WriteLine( "Arrived {0} bytes from socket.\n Data: {1}", message.Length, message); // Process with the incoming data here // Data exchange, decoding DataEncoderImpl.Decapsulate(message); } }
private void ReadSocket(Socket pSocket, SocketStateObject pStateObject) { try { int bytesRead = pSocket.Receive(pStateObject.mBuffer); if (bytesRead > 0) { pStateObject.mSb.Append( Encoding.ASCII.GetString( pStateObject.mBuffer, 0, bytesRead)); if (pSocket.Available > 0) { ReadSocket(pSocket, pStateObject); } } if (pStateObject.mSb.Length > 1) { mMessage = pStateObject.mSb.ToString(); // Process with the incoming data here Console.WriteLine( "Arrived {0} bytes from socket.\n Data: {1}", mMessage.Length, mMessage); // Process with the incoming data here // Data exchange, decoding DataEncoderImpl.Decapsulate(mMessage); } } catch (Exception e) { Console.WriteLine("Can't receive data from the server."); } }