4

接続されていないバインドされた DatagramSocket の場合、(SO_TIMEOUT が無効になっている) 受信メソッドの呼び出しが次の例外で予期せず失敗しました。

java.net.SocketException: socket closed  
 at java.net.PlainDatagramSocketImpl.receive0(Native Method)  
 at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)  
 at java.net.DatagramSocket.receive(DatagramSocket.java:712)

また、ソケットを明示的に閉じていません。
このエラーは、JRE-6 を使用する Windows Server 2008 で発生しました。

DatagramSocket.close() を呼び出しても、同じソケット アドレスで新しい DatagramSocket を再作成することもできませんでした。

エラーの考えられる原因を教えてください。

4

2 に答える 2

1

私は同じ問題に遭遇しました。
ソケットの「closed」および「connectState」フィールドを確認してください。

/*
 * Connection state:
 * ST_NOT_CONNECTED = socket not connected
 * ST_CONNECTED = socket connected
 * ST_CONNECTED_NO_IMPL = socket connected but not at impl level
 */
static final int ST_NOT_CONNECTED = 0;
static final int ST_CONNECTED = 1;
static final int ST_CONNECTED_NO_IMPL = 2;
于 2011-06-01T11:00:40.310 に答える
0

java.net.SocketException: ソケットが閉じられました

これは、ソケットを閉じたことを意味します。

于 2010-12-17T01:59:48.720 に答える