小さな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);
しかし、クライアントの 1 つが突然接続を閉じたとき、私はまだ endPoint にメッセージを送信し、コード 10054 で SocketException を取得しようとしています。このクライアントの IPEndPoint を IPEndPoints リストから削除するにはどうすればよいですか? この IPEndPoint は endPoint に格納される (ref で渡される) と思っていましたが、例外が発生すると、endPoint はそのまま残ります。