.NET中的UDP套接字客户端

时间:2010-03-31 22:18:10

标签: c# sockets udp client

我在客户端应用程序中使用UDP Sokckts。 以下是一些代码段:

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

我在接收时做了无限的时间,还有其他的事要做,虽然没有收到任何东西。我想检查是否有实际可用的数据然后接收其他不要等待。请注意,当前的receive方法会一直等到服务器发送消息。

1 个答案:

答案 0 :(得分:2)

在调用socket.Available()之前,您可以使用ReceiveFrom()来确定是否有任何等待数据。但是,理想情况下,您应该考虑使用BeginReceiveFrom()及其异步朋友将输入处理转移到其他线程。