java - 从java中的套接字断开连接

标签 java sockets

嗨 我正在构建一个小的 p2p 程序,同时实现服务器端和客户端。 当我吃客户端程序时,首先想到的是连接到其列表中的每个服务器,发送数据(关于客户端)并断开连接。下次客户端连接到这些服务器之一时,它将被识别。

我的问题 - 当我告诉客户端断开连接时,我得到这个异常

java.io.EOFException
at java.io.DataInputStream.readUnsignedShort(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at oop.ex3.nameserver.NameServerThread.run(NameServerThread.java:24)

要断开连接我刚刚写道:

 finally {
        out.close();
        in.close();
        socket.close();
    }

那么,我该如何避免这种异常呢?谢谢!

最佳答案

Socket.close() 的 JavaDoc 明确指出:

Closing this socket will also close the socket's InputStream and OutputStream.

这将抛出异常,因为您已经关闭了它们!

关于java - 从java中的套接字断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5793671/

相关文章:

Java套接字端口转发

java,为什么DataInputStream在空格时分割字符串

java - TimeSeries JFreeChart 中的 XYPointerAnnotation

Java缓冲图像: Alpha change makes low alpha areas appear black

java - ThreadLocal 与 Tomcat

java - 我可以从内部类访问 "secondary this"吗?

android - 在 2 部 Android 手机之间打开套接字

java - 检查数字是否在动态变化数字范围内?

perl - 如何在 Perl 中的套接字上设置 `SO_RCVTIMEO`?

c++ - 套接字编程中的客户端到客户端消息传递