【发布时间】:2015-05-16 00:52:18
【问题描述】:
成员 EJP 评论了我的评论 here,说您无法重用连接失败的 Socket。我非常尊重 EJP,但是,我的回应是,我觉得这太棒了……如果这是真的,它似乎对任何使用 Sockets 的 Java 应用程序的生命周期施加了严格的限制——最终你会用完了,对吧?
任何人都可以澄清情况或指出解决方法吗?
【问题讨论】:
成员 EJP 评论了我的评论 here,说您无法重用连接失败的 Socket。我非常尊重 EJP,但是,我的回应是,我觉得这太棒了……如果这是真的,它似乎对任何使用 Sockets 的 Java 应用程序的生命周期施加了严格的限制——最终你会用完了,对吧?
任何人都可以澄清情况或指出解决方法吗?
【问题讨论】:
我已经想通了:EJP,你说的完全正确
问题在于Socket.close(),Java Socket 对象在此之后无法重用,并且由于关闭 Input 或 OutputStream 将调用 close(根据 Javadocs),这是该对象的终点。
但是,似乎绝对有可能创建一个新的 Socket 对象并将 bind 它添加到同一个本机套接字。本机套接字应该有希望被 Java 套接字释放,并且可以重用,或者?
感谢大家的关注
【讨论】:
Socket 的实例,而不是抽象套接字。