Java TCP套接字:检查连接的远程端是否关闭,而不修改套接字';什么是输入流?

Java TCP套接字:检查连接的远程端是否关闭,而不修改套接字';什么是输入流?,java,sockets,tcp,Java,Sockets,Tcp,(注意-这是而不是重复-问题明确提到不要修改InputStream。) 我希望能够在不修改套接字的InputStream的情况下检查连接的远程端是否关闭。我不能在InputStream上调用read(),因为它将读取数据,而代码的其他部分将从套接字读取数据,并期望得到该数据 我也尝试过使用0长度的缓冲区调用read(),但这也不起作用(返回0而不是-1,即使连接断开) (我想我要做的是调用read(),如果结果不是-1,则将字节“推”回InputStream。) 有没有办法绕过这个问题 谢谢 您

(注意-这是而不是重复-问题明确提到不要修改InputStream。)

我希望能够在不修改套接字的InputStream的情况下检查连接的远程端是否关闭。我不能在InputStream上调用read(),因为它将读取数据,而代码的其他部分将从套接字读取数据,并期望得到该数据

我也尝试过使用0长度的缓冲区调用read(),但这也不起作用(返回0而不是-1,即使连接断开)

(我想我要做的是调用read(),如果结果不是-1,则将字节“推”回InputStream。)

有没有办法绕过这个问题


谢谢

您可以使用函数isReachable()来执行此操作。

下面是一个示例:

不,我确信远程端是可访问的,我只想在不修改套接字的InputStream的情况下检查连接是否仍然存在。isReachable()不检查连接是否已关闭-1.