gpt4 book ai didi

java - 如何在java中关闭ServerSocket.accept()命令?

转载 作者:行者123 更新时间:2023-12-02 12:06:20 26 4
gpt4 key购买 nike

我的问题是 ServerSocket.accept() 命令一直等待,直到客户端连接到它。但我想做的是我必须倾听客户几秒钟。如果客户端连接,那么我将数据发送到客户端,否则我必须终止 ServerSocket。

那么当一段时间内没有客户端连接时,如何绕过 ServerSocket.accept() 命令?

最佳答案

调用ServerSocket.close()(当然是从另一个线程)。对于 accept() 上的任何线程阻塞,都会抛出 SocketException,但如果已建立连接,则现有的 Socket 仍然可以。

一个简单朴素的例子

    ServerSocket ss = new ServerSocket(8123);

new Thread() {
@Override
public void run() {
try {
Thread.sleep(5000);
ss.close();
} catch(InterruptedException e) {
} catch(IOException e) {
}
}
}.start();
Socket s = ss.accept();

关于java - 如何在java中关闭ServerSocket.accept()命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46887782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com