问题
在桌面网络应用程序中,有时会发送数据到DatagramSocket:
java.net.SocketException: No buffer space available (maximum connections reached?): Datagram send failed
在此异常后,套接字完全无法使用:它不会收到任何内容,send()会无限期挂起。再现测试是一个简单的应用程序(创建套接字,绑定,而(true)发送();)
只有在我的机器进入睡眠模式然后再回到“密集数据流”的中间时,我才能在100%的情况下重复这种行为。
问题:
谢谢! :)
答案 0 :(得分:1)
我认为假设套接字不再可用是安全的,如果读取或写入套接字导致抛出异常。在这种情况下,您期望会出现哪种可恢复的I / O错误?
答案 1 :(得分:1)
除了SocketTimeoutException之外,套接字在任何异常之后都不可用。