是什么原因导致SocketException:套接字已关闭?

时间:2018-10-22 22:07:24

标签: java networking

除了在套接字上调用close()之外,我还能获得“套接字关闭” SocketException的可能原因是什么?

我在库中使用ice4j,并且其中一个连接器在尝试从中读取时抛出SocketException: Socket closed异常。底层套接字是一个DatagramSocket,它在内部使用DualStackPlainDatagramSocketImpl。

每次创建套接字获取时,我都使用调试器打印一条语句时,抛出套接字关闭异常(连接器死亡)或套接字关闭(记录DatagramSocket close调用甚至DualStackPlainDatagramSocketImpl close调用),我看到套接字正在创建后,将引发异常,然后仅关闭套接字。 (调试器还会在抛出异常时将套接字显示为未关闭。

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
...

0 个答案:

没有答案