Я реализую протокол с использованием класса SSLStream. Я начал с чтения сообщение, как это (прием символов ASCII в сообщении):Чтение длины сообщения из SSLStream
byte [] buffer = new byte[2048];
StringBuilder messageData = new StringBuilder();
int bytes = -1;
do
{
// Read the client's test message.
bytes = sslStream.Read(buffer, 0, buffer.Length);
// Use Decoder class to convert from bytes to UTF8
// in case a character spans two buffers.
Decoder decoder = Encoding.UTF8.GetDecoder();
char[] chars = new char[decoder.GetCharCount(buffer,0,bytes)];
decoder.GetChars(buffer, 0, bytes, chars,0);
messageData.Append (chars);
// Check for EOF or an empty message.
if (messageData.ToString().IndexOf("<EOF>") != -1)
{
break;
}
} while (bytes !=0);
Однако теперь протокол изменился, и мне не нужно искать для конца сообщения, но мне нужно сначала прочитать длина сообщения сначала (в количестве символов), а затем для чтения сообщения с принятой длиной. Как я могу это сделать?