UdpClient开始接收如何检测服务器何时关闭

时间:2018-09-03 14:32:39

标签: c# sockets udpclient

我有一个应用程序正在从我需要处理的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)) 
        });
    }

当我停止服务器端时,该函数正在等待数据(这是正常行为)。我想做的是检测服务器何时断开连接,然后关闭所有客户端。

我在问自己是否应该使用套接字类来拥有更多控件,或者只是我在这里想念一些东西。

无论如何,谢谢您的帮助。

0 个答案:

没有答案