java.net.SocketException:socket关闭TCP客户端服务器通信

我正在通过TCP创建一个java客户端/服务器应用程序,我们有两个套接字:

  • 一个是交换消息。
  • 二是文件传输。

我在Server中创建了两个ServerSockets以创建Socket One和Two
通过接受ServerSockets。

起初,客户端通过第一个Socket发送一些字节
这样它就可以告诉服务器它需要哪个文件。

然后,服务器通过第二个套接字将文件发送到客户端。
客户端收到文件后,尝试向服务器发送一个Transfer Done Message。

在那里我得到了关闭套接字的exception。
但是我直到现在才关闭套接字。
我只关闭发送文件的缓冲区。
即使我在发送文件后尝试再次打开socketInputStream,错误仍然是相同的。
此外,如果我不关闭发送文件的缓冲区,客户端将无法获取该文件。

服务器exception

返回消息中的错误 – java.net.SocketException:socket已关闭

客户端例外

服务器响应 – java.net.SocketException:软件导致连接中止:套接字写入错误

我究竟做错了什么?

“Socket closed”exception意味着捕获exception的应用程序关闭了套接字,然后继续尝试使用它。 您可能不知道关闭套接字的输入或输出流也会关闭另一个流和套接字。 对于’软件导致连接中止’,请参阅重复链接。