当前位置: 首页 > 面试题库 >

java.net.SocketException:套接字已关闭TCP客户端服务器通信

武友樵
2023-03-14
问题内容

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

  • 一种是交换消息。
  • 二是用于文件传输。

我已经在服务器中创建了两个ServerSockets,以便
通过接受ServerSockets 创建套接字1和2 。

首先,客户端通过第一个套接字发送一些字节,
以便它可以告诉服务器它需要哪个文件。

然后,服务器通过第二个套接字将文件发送给客户端。
客户端收到文件后,尝试将“传输完成”消息发送回服务器。

在那里,我得到了封闭插座的异常。
但是直到现在我才关闭插座。
我只关闭发送文件的缓冲区。
即使我在发送文件后尝试再次打开socketInputStream,错误仍然相同。
另外,如果我不关闭发送文件的缓冲区,则客户端也不会获取文件。

服务器异常

返回消息中的错误-java.net.SocketException:套接字已关闭

客户例外

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

我究竟做错了什么?


问题答案:

“套接字关闭”异常意味着 捕获到该异常的应用程序
关闭了套接字,然后继续尝试使用它。您可能没有意识到关闭套接字的输入或输出流会同时关闭另一个流和套接字。对于“软件导致的连接中止”,请参见重复的链接。



 类似资料:
  • 问题内容: 我必须使用Java的套接字API编写多线程客户端和服务器。客户端和服务器都是多线程的,因此服务器可以处理多个连接,客户端可以测试服务器处理连接的能力。 我的代码在这里:https : //github.com/sandyw/Simple-Java-Client- Server 我有几个可能是相关的问题。一,偶尔会有一个客户端线程抛出 从其位置来看,这意味着服务器在客户端完成从套接字读取

  • 我正在开发一个非常简单的Java客户机/服务器系统(只是为了让我的脚沾满套接字)。由于某种原因,我一直收到“套接字已关闭”错误。。。这是我的密码。。 服务器文件 客户端文件 我在客户端的第41行得到了错误,然后在第46行得到了NullPointerException。。 提前感谢您的帮助。我只是想在这里学习。

  • 我正在为客户机发送对象到服务器,在服务器端修改该对象,并将其重新发送到客户机。将对象从客户机发送到服务器很好,它工作正常,但当我将对象发送回来时,它给出了异常,Socket关闭。这里是代码。IntString和ParentObj是我要发送对象的类。 服务器类 用于发送和接收对象的Send_recv类。

  • 真的需要你帮忙。 我的项目是通过电缆连接两台PC机,并使用tcp套接字将客户端文本框形式的字符串发送到服务器。问题是ATI只能发送一个字符串,然后连接就会关闭。 注意:某个端口上的连接将在表单加载中建立并成功。

  • 我对套接字有点陌生,我正在尝试编写一个程序,在这个程序中,我基本上可以从客户端程序向服务器程序发送一些简单的请求。现在我只想在客户端有1或2个选项供用户选择。例如,如果用户在客户端选择“选项1”,那么服务器会返回一条消息“您选择选项1”,以此类推,但我不知道如何读取服务器上从客户端发送的输入。 客户代码: 服务器代码: 我需要在Clinet中使用两个不同的BufferedReader吗?一个用于用

  • 我正在编写一个简单的客户端/服务器套接字程序,其中客户端与服务器连接并通信,然后它们向服务器发送退出消息,然后服务器关闭连接。代码如下所示。 服务器.py client.py 我想要的是万一服务器通过ctrl-c或任何其他方式退出,我希望关闭所有客户端套接字,并将msg发送给客户端,他们也应该在其上关闭套接字。 我在下面除部分之外的部分做了一些工作,但由于某些原因,客户端没有收到服务器发送的消息。