我正在使用 UDP,当多台机器需要连接到服务器时,我想知道接受方法。到目前为止,我正在使用 UDPCliente 类、IPEndPoint 类和 BeginRecieve / EndRecieve 方法来创建一个可以同时连接多台机器的服务器。
我的问题很简单,我需要使用 Accept 方法来处理传入连接并为每个新连接创建一个新套接字吗?
处理与 UDP 的多个连接的最佳方法是什么?
到目前为止,我看到的代码示例创建了一个新的 UDPClient 类和一个 IPEndPoint,之后服务器正在侦听连接,代码调用 BeginRecieve 传递一个接收数据的函数,然后再次启动 BeginRecieve 的过程。
这些是我到目前为止一直在使用的代码示例:
public static void receiveCallback(IAsyncResult ar)
{
UdpClient u = (UdpClient)((UdpState)(ar.AsyncState)).u;
IPEndPoint e = (IPEndPoint)((UdpState)(ar.AsyncState)).e;
byte[] receiveBytes = u.EndReceive(ar, ref e);
UdpState s = new UdpState();
s.e = e;
s.u = u;
u.BeginReceive(new AsyncCallback(receiveCallback), s);
}
public static void receiveMessages()
{
IPEndPoint e = new IPEndPoint(IPAddress.Any, 5050);
UdpClient u = new UdpClient(e);
UdpState s = new UdpState();
s.e = e;
s.u = u;
u.BeginReceive(new AsyncCallback(receiveCallback), s);
}