我有一个应用程序正在从我需要处理的32个不同端口上的Udp服务器读取数据。我使用的是自叫的UdpClient.BeginReceive,因为我想一直听:
private void ProcessEndpointData(IAsyncResult result)
{
UdpClient client = result.AsyncState as UdpClient;
// points towards whoever had sent the message:
IPEndPoint source = new IPEndPoint(0, 0);
// schedule the next receive operation once reading is done:
client.BeginReceive(new AsyncCallback(this.ProcessEndpointData), client);
// get the actual message and fill out the source:
this.DecodeDatagram(new DatagrammeAscb()
{
Datagramme = this.ByteArrayToStructure<Datagram>(client.EndReceive(result, ref source))
});
}
当我停止服务器端时,该函数正在等待数据(这是正常行为)。我想做的是检测服务器何时断开连接,然后关闭所有客户端。
我在问自己是否应该使用套接字类来拥有更多控件,或者只是我在这里想念一些东西。
无论如何,谢谢您的帮助。