2009-04-14 9 views

Répondre

4

Vous transmettez à UdpClient.Send() un tableau d'octets (Byte []), une taille entière et un IPEndPoint. Si vous envoyez le tableau entier d'octets, rien de plus et rien de moins, que la charge utile de votre datagrammes, vous pouvez simplement utiliser la propriété Longueur des tableaux comme suit:

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());  
} 

Peut-être la confusion ici est que vous pensez que vous devez compte le nombre de bits qui seront envoyés sur le fil? Ce qui est réellement requis est juste la taille de la charge utile (la partie du tableau d'octets fourni que vous voulez réellement envoyer dans ce datagramme). La bibliothèque fera le reste.

Exemples et informations here.

0

Vous ne savez pas quelle langue vous utilisez pour implémenter ce client UDP. En C++, l'opérateur sizeof fournit le nombre d'octets. Une autre approche serait d'utiliser strlen() ou leurs variantes unicode & multiplier par la taille du type de données.

+0

suis désolé .. j'utilise C# – Avik