2010-08-21 71 views
0

我使用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數據包?

回答

0

當您的應用程序發送格式錯誤的UDP數據包時,它有一個錯誤。代碼的最小片段只有一個SendTo調用。您可以爲數據的內容/長度添加檢查功能。

BTW:UDP是無連接的。我會說,你的應用程序等待一個請求或一種啓動命令而不是連接。

+0

我不確定這是一個錯誤,至少在我的身邊。數據被正確接收,而不是UDP數據包格式錯誤,而是STUN數據包。 – Bogi 2010-08-29 20:47:25