Musisz opracować jakiś swój mini protokół. Najpierw przesyłaj informację o tym z jakiej ilości bajtów będzie się składać wiadomość (12), a dopiero potem ją odczytuj (to_co_ma_być). W ten sposób unikniesz pustych znaków.
NetworkStream nt = cl.GetStream();byte[] bufer = new byte[200];int read = nt.Read(bufer, 0, bufer.Length);string control = Encoding.ASCII.GetString(bufer, 0, read);GlobalBuffer += content; //Odkładamy to, co wczytaliśmy, by nie zgubić niczego(co z tym robimy potem to już zależy od aplikacji)[/code]
Kwestia tego, co chcemy osiągnąć. Nie twierdzę, że objedzie się bez wskazywania na koniec, ale to nie koniecznie musi być ilość bajtów. Może to być jakiś "znacznik końca"(np. 0xDEADBEEF jako tekst) albo gdy wydajemy polecenia o "skończonej liczbie znaków" nawet tego nie potrzeba - ot zwykłe porównanie wystarczy(lista komend to np. abc, cda, wypisz, wymaluj - każda unikatowa, bez parametrów, ale i parametry można jakieś dodać bez większego problemu). Gdy nie ma potrzeby nie warto sobie utrudniać(bo i tak się będzie zmieniać dużo razy, jeśli się nie ma jako takiego doświadczenia - ostatnio dość mocno to odczułem).