我一直在开发用于实时消息传递的软件。在代码的某个时刻,我创建了一个ServerSocket对象,并等待客户端连接到它。
...
ServerSocket serverSocket=new ServerSocket(serverPort);
socket=serverSocket.accept();
...
但是,如果没有客户端尝试在特定的时间内(例如10秒)连接到服务器,则我的代码应该能够停止等待客户端并继续运行下一行。但是,代码会停留在
socket=serverSocket.accept();
中,直到客户端尝试建立连接为止。我该如何避免呢? 最佳答案
设置套接字超时,然后按如下所示进行设置
serverSocket.setSoTimeout(10000); // 10 secs. time is in milisecs.
socket=serverSocket.accept();
如果没有客户端继续前进,这将阻止接受10秒钟。
但是,如果您打算继续打开服务器套接字,请创建一个新线程来接受客户端。
关于java - 在一段有限的时间内运行一段代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17570276/