Вы передаете UdpClient.Send () массив байтов (Byte []), целочисленный размер и IPEndPoint. Если вы отправляете весь массив байтов, ни больше, ни меньше, в качестве полезной нагрузки вашей дейтаграммы, вы можете просто использовать свойство Length массивов следующим образом:
UdpClient udpClient = new UdpClient();
IPAddress ipAddress = Dns.Resolve("www.contoso.com").AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 11004);
Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
try{
udpClient.Send(sendBytes, sendBytes.Length, ipEndPoint);
}
catch ( Exception e ){
Console.WriteLine(e.ToString());
}
Возможно, путаница здесь в том, что вы думаете, что вам нужно посчитать количество бит, которые будут отправлены по проводам? На самом деле требуется только размер полезной нагрузки (часть предоставленного байтового массива, которую вы фактически хотите отправить в этой дейтаграмме). Библиотека сделает все остальное.
Примеры и информация здесь .