Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }