Android套接字写操作

时间:2011-05-19 08:35:54

标签: android sockets exception

在我的应用程序中,我使用套接字读/写操作进行服务器通信。当服务器关闭时,套接字写操作仅在第二次抛出异常“管道损坏”。第一个写操作不会抛出任何异常。任何人都可以告诉我原因。

我用于此的代码是,

       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();
     }
 }

提前致谢...

1 个答案:

答案 0 :(得分:0)

导致管道错误的原因只有一个。您已写入已被另一端关闭的连接。这本身就是一个应用程序协议错误,它可能是由此前的应用程序协议错误引起的,导致对等方以恼怒的方式关闭连接。