2009-08-05 12 views
5

Dzień dobry,Gniazda, liczba dostępnych bajtów (C#)

OK, krótki i słodki.

Potrzebuję uzyskać liczbę bajtów dostępnych do odczytu z gniazda. Skonfigurowałem NetworkStream na moim kliencie Socket, ale nie mogę znaleźć sposobu na uzyskanie liczby bajtów, które można odczytać, w tej chwili mogę uzyskać tylko wartość boolean stwierdzającą "Yes I have Bytes" lub "No Bajty tym razem ". Ale to wszystko jest przydatne w przypadku zadania, którego wymagam.

Czy ktoś może mnie wyrzucić z nędzy i zaspokoić moją potrzebę?

Z góry dzięki, doceniane.

Odpowiedz

8

Jak określono w this MSDN article o własności NetworkStream.Length:

Pobiera długość dostępnych danych na strumień. Ta właściwość zawsze powoduje wyświetlenie NotSupportedException.

Wynika to z faktu, że dane są podawane do strumienia w momencie jego nadejścia, a zatem nie mają rzeczywistej długości.

Jednak własność Socket.Available informuje, ile bajtów jest dostępnych do odczytania pod w tym momencie. Wartość może się zmienić w dowolnym momencie, jeśli pojawią się nowe dane.

Powiązane problemy