我有这样的场景,我需要确认服务器端套接字是否关闭了连接。为此,我检查if(in.read()== - 1)如果为true,则表示服务器端关闭连接。 但问题是,如果它不阻止它,因为它阻止call.i需要这样的解决方案,我可以在特定时间读取非阻塞或取消读取,如果服务器端关闭连接。 我正在创建像
socket = new Socket();
// if server is not available 3 seconds blocking call other wise Exception
socket.connect(new InetSocketAddress(serverAddress , serverPort),3000);
任何帮助都将不胜感激。
此致 阿米尔
答案 0 :(得分:2)
但问题是,如果不是这样的话 这里阻止阻止呼叫。
这不是唯一的问题。有一个更大的问题:如果有任何数据到达,它将丢弃一个字节的数据。你当然不能那样做。
您需要的是定时阅读。请参阅Socket.setSoTimeout()
。
答案 1 :(得分:0)
假设这是针对TCP的,您是否尝试过使用myClientSocket.isClosed()
?