Могу ли я определить, сколько данных помещено в очередь на входящем потоке клиента TCP (в C #)? - PullRequest
1 голос
/ 04 октября 2011

У меня есть маленький TCP-клиент, который подключается к серверу. Периодически во время подключения Я хотел бы иметь возможность запрашивать поток, чтобы увидеть, сколько данных поставлено в очередь (отправитель может быть быстрее, чем получатель, поэтому я хотел бы иметь возможность время от времени выбрасывать пакеты) Есть ли способ определить, сколько данных помещено в очередь клиентского потока TCP в C #?

Ответы [ 2 ]

4 голосов
/ 04 октября 2011

Для этого можно использовать свойство TcpClient.Available .

От MSDN:

Тип: System.Int32

Количество байтов данных, полученных от сеть и доступны для чтения.

1 голос
/ 04 октября 2011

Есть Socket.Available и TcpClient.Available, чтобы указать, сколько байтов было помещено в очередь.Обратите внимание, однако, что он не сообщает вам, сколько «пакетов» было поставлено в очередь, так как TCP считает необходимым скрыть понятие «пакетов».Для ОС и вашего приложения сокет TCP просто представляет поток байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...