Java DatagramSocket を使用して、データを複数の異なるクライアントにストリーミングしています。現在登録されているクライアントのリストを自分で処理するので、ソケットをサーバー ポートにバインドするだけで、特定のクライアントには接続しません。
ただし、connect() を使用しないと、DatagramSocket が到達不能ポートの ICMP 通知に反応できなくなります。ICMP 通知は、クライアントの 1 つが停止し、サーバーから適切に登録解除する機会が得られない場合に送信されます。
その動作を元に戻す方法はありますか? クライアントごとに 1 つの DatagramSocket を使用することを考えましたが、サーバー上の同じポートにすべてバインドする必要があるため、実現可能ではないようです (私の知る限り、UDP では不可能です)。
私のサーバーが ICMP メッセージを見る保証がないことは承知しており、それを処理するためにある種のタイムアウト メカニズムを実装します。これは、ストリーミング クライアント ユーザーにとって良いことのように思えます。