gpt4 book ai didi

java - DataInputStream readByte 阻塞/挂起

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:38:32 38 4
gpt4 key购买 nike

我正在查看创建线程来处理每个传入连接的服务器的代码。问题是由于某种原因在一堆线程上,从套接字创建的 DataInputStream 卡在 readByte 上并且没有抛出任何异常。超时设置为 60 秒,所以我不确定下一步是什么。

socket.setSoTimeout(timeout);
socketInputStream = socket.getInputStream();
byte connectionOptions = socketDataInputStream.readByte();

最佳答案

您在评论中指出您正在等待 SocketException。如果是这样,您需要改为捕获 SocketTimeoutException。例如,如果您 telnet 到端口 3434 并等待 3 秒,此代码将输出 timeout!:

try {
ServerSocket ss = new ServerSocket(3434);
Socket socket = ss.accept();
socket.setSoTimeout(3000);
InputStream socketInputStream = socket.getInputStream();
DataInputStream dataInputStream = new DataInputStream(socketInputStream);
dataInputStream.readByte();
} catch (SocketTimeoutException e) {
System.out.println("timeout!");
}

关于java - DataInputStream readByte 阻塞/挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5337272/

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