Как узнать, сколько данных udp я получил (включая неверные данные) в c # - PullRequest
0 голосов
/ 13 ноября 2010

Я хочу знать, сколько данных поступило на мой клиент, включая поврежденные / неверные данные, заголовок пакета и т. Д. Я хочу рассчитать пропускную способность, используя udp.

Спасибо.

1 Ответ

1 голос
/ 13 ноября 2010

UdpClient - интерфейс очень высокого уровня, который не обеспечивает доступ к необработанным пакетным данным. Чтобы получить такую ​​информацию, вам нужно будет использовать низкоуровневый API и обрабатывать пакеты самостоятельно.

Однако на практике шансы повреждения пакета при транспортировке очень малы - большую часть времени вы либо получаете правильный пакет, либо не получаете пакет вообще. Заголовки пакетов обычно имеют постоянный размер (8 байтов для заголовка UDP и обычно 20 байтов для заголовка IP), поэтому вы можете просто добавить это значение к размеру каждой дейтаграммы (которая возвращается UdpClient.Receive), чтобы получить общий размер пакета.

...