在Java中侦听连接时防止崩溃

时间:2012-08-22 08:33:49

标签: java sockets

有没有办法阻止我的应用程序在创建套接字后暂时崩溃?该程序在收到连接后立即解冻,但可能会误导用户。

我已经尝试将套接字创建方法等放在一个线程中并从那里运行但是没有用。

编辑:除非为套接字提供一定的时间,然后在它到期后断开连接是可行的吗?

2 个答案:

答案 0 :(得分:1)

在单独的线程中运行它是正确的方法,因为Socket.accept()调用是阻塞的(即它阻止你调用它的线程,直到它获得连接)。

您的线程架构一定有问题。发布一些代码,也许我可以告诉你到底是什么。

编辑:给套接字一个短暂的超时要么不能避免阻塞,要么在有人连接之前超时,而在超时之前获得连接与当前设置没有任何区别。

答案 1 :(得分:0)

您的程序不会崩溃,它只是在等待连接,因为java.io库正在阻塞。

要防止等待连接,您可以使用非阻塞java.nio启动新的Thread并让这个新线程成为等待连接。