UDP 経由でメッセージを送信するために DatagramSocket を使用しています。現在、次のコードを使用しています。
private void doSend() throws IOException, SocketException {
try (DatagramSocket clientSocket = new DatagramSocket()) {
byte[] messageBytes = message.getBytes(Charset.forName("UTF-8"));
DatagramPacket sendPacket = new DatagramPacket(messageBytes, messageBytes.length, address,
port);
clientSocket.send(sendPacket);
}
}
ご覧のとおり、DatagramSocket
for each メッセージを再作成します。パフォーマンス上の理由から、ソケットをメッセージごとではなく 1 回だけ作成することを検討しています。コードは長期間有効なオブジェクトに存在するため、ソケットが数日間有効であることを意味します。
私の質問は、DatagramSocket
何らかのエラーによって無効になる可能性があり、再作成する必要があるのか 、それともソケットを一度だけ作成して完了できるのかということです. 無効になる可能性があり、再作成する必要がある場合、どうすればそれを検出できますか?