Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字第二次写入尝试失败_Java_Sockets - Fatal编程技术网

Java套接字第二次写入尝试失败

Java套接字第二次写入尝试失败,java,sockets,Java,Sockets,我有一个功能: ... socket.getOutputStream().write("something".getBytes()); socket.getOutputStream().flush(); ... 很好。保持插座打开。 试图再次调用此函数,但出现错误:java.net.SocketException:breaked pipe 尽管事实上 socket.isClosed-假 socket.isOutputShutdown-错误 socket.isConnected-正确很可能另一端

我有一个功能:

...
socket.getOutputStream().write("something".getBytes());
socket.getOutputStream().flush();
...
很好。保持插座打开。 试图再次调用此函数,但出现错误:java.net.SocketException:breaked pipe

尽管事实上

socket.isClosed-假
socket.isOutputShutdown-错误

socket.isConnected-正确

很可能另一端已关闭连接。第一次写入也可能失败,因为write()不能保证交付。只有当它知道另一端没有监听时,才会出现异常

isClosed
表示:;我关了吗

isOutputShutdown
表示:;我是否关闭了输出

断开连接
表示:;它有联系吗


检测连接是否真正启动的唯一方法是从另一端获得响应,告诉您它已收到您的数据。e、 g.对心跳的反应。如果没有该响应(必须是协议的一部分),则无法确定另一端是否已收到该响应。

另一端很可能已关闭连接。第一次写入也可能失败,因为write()不能保证交付。只有当它知道另一端没有监听时,才会出现异常

isClosed
表示:;我关了吗

isOutputShutdown
表示:;我是否关闭了输出

断开连接
表示:;它有联系吗


检测连接是否真正启动的唯一方法是从另一端获得响应,告诉您它已收到您的数据。e、 g.对心跳的反应。如果没有该响应(该响应必须是协议的一部分),则无法确定另一端是否已接收到该响应。

管道断开意味着您向另一端已关闭的连接写入了数据。这可能表示应用程序协议错误。

管道断开表示您将数据写入另一端已关闭的连接。这可能表示应用程序协议错误。

只有在写入新数据时才会检测到超时连接。。。在写入之前检查isClosed()不起作用。我无法通过本地套接字和服务器套接字测试重现此操作。在您的特殊情况下,是否可以提供更多信息?只有在写入新数据时才会检测到超时连接。。。在写入之前检查isClosed()不起作用。我无法通过本地套接字和服务器套接字测试重现此操作。在您的特殊情况下,您能提供更多信息吗?