2010-03-31 88 views
2

我在客戶端應用程序中使用UDP Sokckts。 下面是一些代碼片段:.NET中的UDP Socket客戶端

SendIP = new IPEndPoint(IPAddress.Parse(IP), port); 
ReceiveIP = (EndPoint)(new IPEndPoint(IPAddress.Any, 0)); 
socket = new Socket(
    AddressFamily.InterNetwork, 
    SocketType.Dgram, 
    ProtocolType.Udp); 
socket.Bind(ReceiveIP); 

,並接收(而(真)):

byte[] data = new byte[BUFFERSIZE]; 
int receivedDataLength = socket.ReceiveFrom(data, ref ReceiveIP); 
string s= Encoding.ASCII.GetString(data, 0, receivedDataLength); 

我做的無限而得到,還有其他的東西在做而即使沒有收到任何東西..我想檢查是否有實際可用的數據,然後接收別人不等。請注意,當前的接收方法會一直等到服務器發送消息。

+0

我沒有看到問題? – sblom 2010-03-31 22:19:40

+0

請編輯您的問題以在其中提問。 – 2010-03-31 22:20:42

回答

2

在調用ReceiveFrom()之前,您可以使用​​來確定是否有任何等待數據。不過,理想情況下,您應該考慮使用BeginReceiveFrom()及其異步朋友將輸入處理擴展到其他線程。