Всем привет. Как мне известно разрабы Дотнета неудосужелись сделать по человечески чтение из сокета, а в частности мы должны угадывать сколько данных для чтения есть в сокете, приходится наугад создавать огромный буфер байт и читать туда из сокета. Если данных меньше чем величина буфера, остальные байты заполненые какимито неизвесныме мне символами или нулями, от которых я не магу избавится. Они не попадают под уничтожение функции Split, при проверке величины буфера buff.Lenght показываетполную величину буфера, который я обьявлял, а не которые заполнились из сокета. Вобщем я не магу работать с этим буфером нормально
вот пример.
Код | byte[] btReadBuffer = new byte[8192]; stream.Read(btReadBuffer, 0, btReadBuffer.Length); string str = Encoding.ASCII.GetString(btReadBuffer);
// с сокета пришло допустим 40 байт
str.Lenght // 8192
|
|