2010-03-31 117 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()及其异步朋友将输入处理扩展到其他线程。