在我的应用程序中,我使用套接字读/写操作进行服务器通信。当服务器关闭时,套接字写操作仅在第二次抛出异常“管道损坏”。第一个写操作不会抛出任何异常。任何人都可以告诉我原因。
我用于此的代码是,
SocketAddress sockaddr = new InetSocketAddress(SERVERIP, 8080);
Socket nsocket = new Socket();
nsocket.setSoTimeout(3000);
nsocket.connect(sockaddr, 5000);
if (nsocket.isConnected())
{
mmInStream = nsocket.getInputStream();
mmOutStream = nsocket.getOutputStream();
}
写操作代码
public void write(byte[] buffer) {
try {
mmOutStream.write(buffer);
}
catch (Exception e) {
e.printStackTrace();
}
}
提前致谢...
答案 0 :(得分:0)
导致管道错误的原因只有一个。您已写入已被另一端关闭的连接。这本身就是一个应用程序协议错误,它可能是由此前的应用程序协议错误引起的,导致对等方以恼怒的方式关闭连接。