The ReadByte method returns one byte of data that has been
read from the socket. If no data is available to be read, an error
will be generated if the control is non-blocking mode. If the control
is in blocking mode, the program will stop until a byte of data is
returned by the server or the connection is closed.
Note that you should not use the ReadByte method with a
datagram socket. If you do, then only the first byte of the datagram
will be returned and the remaining data will be discarded. When
reading data from a datagram socket, it is recommended that you
always use the Read method with the length argument specifying
the maximum size of the datagram.