有什么方法可以防止我的应用程序在创建套接字后立即崩溃吗?此程序在收到连接后立即解冻,但可能会误导用户。
我试着把套接字创建方法等放在一个线程中,并从那里运行它,但没有成功。
编辑:除非给插座一段设定的时间,然后在到期后断开连接是可行的?
在一个单独的线程中运行它是正确的方法,因为Socket.accept()调用是阻塞的(即它阻塞您调用它的线程,直到它获得连接)。
您的线程体系结构一定有问题。张贴一些代码,也许我可以告诉你确切的内容。
编辑:给套接字一个短的超时不会避免阻塞,或者在有人连接之前超时,而在超时之前获得连接与当前设置没有任何区别。
您的程序不会崩溃,它只是在等待连接,因为java.io
库正在阻塞。
为了防止等待连接,您可以使用非阻塞java.nio
类或启动一个新的Thread
,并让这个新线程成为等待连接的线程。