public static ResponseManaged ReadResponse(TcpClient client) { int type = 0; var response = new ResponseManaged(); byte[] buffer = new byte[1]; client.GetStream().Read(buffer, 0, 1); // read type type = Convert.ToInt32(Encoding.ASCII.GetString(buffer)); if (type == (int)ResponseMessageManaged.CantLogin) { // Stream is flushed. client.GetStream().Read(new byte[15], 0, 15); } else if (type == (int)ResponseMessageManaged.MemberList) { buffer = new byte[4]; client.GetStream().Read(buffer, 0, 4); int size = Convert.ToInt32(Encoding.ASCII.GetString(buffer)); buffer = new byte[size]; client.GetStream().Read(buffer, 0, size); } return(response); }
private void read() { byte[] _buffer; int _type; int _size; string _payload; ResponseManaged resp = new ResponseManaged(); _buffer = new byte[1]; _client.GetStream().Read(_buffer, 0, 1); _type = Convert.ToInt32(Encoding.ASCII.GetString(_buffer)); switch ((ResponseMessageManaged)_type) { case ResponseMessageManaged.RegisterOK: _buffer = new byte[4]; _client.GetStream().Read(_buffer, 0, 4); _size = Convert.ToInt32(Encoding.ASCII.GetString(_buffer)); _buffer = new byte[_size]; _client.GetStream().Read(_buffer, 0, _size); _payload = Encoding.ASCII.GetString(_buffer); break; } }