gpt4 book ai didi

java - InputStream 非阻塞读操作

转载 作者:行者123 更新时间:2023-12-02 08:15:14 24 4
gpt4 key购买 nike

我有这样的场景,我需要确认服务器端套接字是否关闭了连接。因此,为此我检查 if(in.read() ==-1) 如果 true ,这意味着服务器端关闭了连接。但问题是,如果它没有阻塞,因为它阻塞了调用。我需要这样的解决方案,我可以在特定时间内读取非阻塞,或者在服务器端关闭连接时取消读取。我正在创建像

socket = new Socket();
// if server is not available 3 seconds blocking call other wise Exception
socket.connect(new InetSocketAddress(serverAddress , serverPort),3000);

如有任何帮助,我们将不胜感激。

问候,阿米尔

最佳答案

But problem is that if it does not it blocks here as it is blocking call.

这不是唯一的问题。还有一个更大的问题:如果有任何数据到达,它将丢弃一个字节的数据。你当然不能这样做。

你需要的是定时阅读。请参阅Socket.setSoTimeout()

关于java - InputStream 非阻塞读操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568398/

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