0

我正在编写小型 UDP 客户端-服务器应用程序。服务器允许连接多个客户端。要向所有客户端发送消息,我使用以下代码:

// IPEndPoints - List<IPEndPoint> where I store clients' IPEndPoints
// packet - byte[] with data
for (int i = 0; i < IPEndPoints.Count; ++i)
    server.Send(packet, packet.Length, IPEndPoints[i]);

要接收消息,我使用这个:

//packet - byte[] to store data
//endPoint - IPEndPoint
packet = server.Receive(ref endPoint);

但是,当其中一个客户端突然关闭连接时,我仍然尝试向它发送消息 endPoint 并获取代码 10054 的 SocketException。问题是,我如何找出哪个客户端断开连接?如何让这个客户端的 IPEndPoint 从 IPEndPoints 列表中删除?我认为这个 IPEndPoint 将存储在 endPoint 中(通过 ref 传递),但是当异常被触发时,endPoint 保持不变。

4

0 回答 0