UDP格式错误的数据包
问题描述:
我使用C#程序进行客户端UDP应用程序。应用程序侦听连接,然后进行通信。UDP格式错误的数据包
Socket udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
udpClient.Bind(new IPEndPoint(IPAddress.Any, ListenPort));
udpClient.Blocking = true;
int count = 0;
while (count == 0) udpClient.ReceiveFrom(receiveBuffer, ref ePoint);
udpClient.SendTo(data, endPoint);
udpClient.ReceiveFrom(receiveBuffer, ref ep);
...
我使用Wireshark来调试应用程序。问题是,在某些时候我的应用程序开始发送格式不正确的STUN数据包,我认为这是因为它们被互联网上的路由器拒绝。
问题:是否可以防止发送格式不正确的UDP/STUN数据包?
答
当您的应用程序发送格式错误的UDP数据包时,它有一个错误。代码的最小片段只有一个SendTo调用。您可以为数据的内容/长度添加检查功能。
BTW:UDP是无连接的。我会说,你的应用程序等待一个请求或一种启动命令而不是连接。
我不确定这是一个错误,至少在我的身边。数据被正确接收,而不是UDP数据包格式错误,而是STUN数据包。 – Bogi 2010-08-29 20:47:25