Что вызывает SocketException: Сокет закрыт? - PullRequest
0 голосов
/ 23 октября 2018

Каковы возможные причины, по которым я могу получить исключение SocketException "Socket closed", кроме того, что я вызываю close () для сокета?

Я использую ice4j в моей библиотеке, и один из коннекторов выдает SocketException: Socket closed исключение при попытке чтения с него.Основным сокетом является DatagramSocket, который внутренне использует DualStackPlainDatagramSocketImpl.

Когда я использую отладчик для печати оператора каждый раз, когда создается сокет, исключение закрытого сокета выбрасывается (соединитель умер) или сокет закрывается (Регистрация вызова закрытия DatagramSocket и даже вызова закрытия DualStackPlainDatagramSocketImpl) Я вижу, как создается сокет, генерируется исключение и сокет закрывается только после этого.(Отладчик также показывает сокет как не закрытый в момент выдачи исключения.

New ice udp socket: null    27816247
New ice udp socket: /192.168.178.20    4527382
New ice udp socket: /192.168.178.20    20777338
...
Connector died 20777338  //Socket closed exception got thrown
Close udp socket /192.168.178.20   20777338  //Connector caused another close call to handle the exception
Close udp socket /192.168.178.20   20777338
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...