Сбой DatagramSocket.receive () с неожиданным исключением SocketException - PullRequest
3 голосов
/ 16 декабря 2010

Для неподключенного и связанного 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)

Также я не закрывал сокет явно.
Эта ошибка произошла в Windows Server 2008 с JRE-6.

Даже при вызове DatagramSocket.close () воссоздание нового DatagramSocket по тому же адресу сокета тоже не удалось.

Не могли бы вы сообщить мне возможные причины ошибки?

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Я столкнулся с той же проблемой.
проверьте поля "закрыто" и "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;
0 голосов
/ 17 декабря 2010

java.net.SocketException: сокет закрытая

Это означает, что вы закрыли сокет.

...