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

如何修复java.net.SocketException:管道损坏?

厉熠彤
2023-03-14
问题内容

我正在使用apache commons http客户端使用post方法来调用url来发布参数,并且很少抛出以下错误。

java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
        at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
        at org.apache.commons.httpclient.methods.ByteArrayRequestEntity.writeRequest(ByteArrayRequestEntity.java:90)
        at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499)
        at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
        at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
        at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)

有人可以建议导致此异常的原因以及如何对其进行调试吗?


问题答案:

原因是:

  • 最通常的是,在另一端已经关闭连接时写入连接;
  • 通常,对等方关闭连接而不读取其末端已经挂起的所有数据。
    因此,在两种情况下,你的应用程序协议定义或实施都不充分。

还有第三个原因,我在这里不做记录,但是涉及到对等方采取故意的操作来重置而不是正确地关闭连接。



 类似资料:
  • 问题内容: 我写了一个简单的套接字程序,它工作正常,但是我的朋友使用端口扫描工具,当它扫描到我正在使用的端口时,它会收到“ java.net.SocketException:Broken pipe”错误,发生了什么?以及如何解决? 控制台的详细信息错误: 问题答案: 某些端口扫描程序通过开始打开连接然后立即终止连接来工作。您的服务器未编程为处理连接失败,因为您没有为此编写代码。您将需要使用try

  • 我使用ApacheCommons http客户端调用url,使用post方法发布参数,它很少抛出以下错误。 有人能建议是什么导致了这个异常以及如何调试它吗?

  • 昨天我使用Xampp创建了一些简单的基于Web的实用工具。今天我想继续工作,但xampp控制面板给了我一些错误。 这是MySQL错误日志: 已经尝试过修复,但mySQL服务甚至无法启动,所以我有点无助。。。

  • 我正在运行gstreamer命令,以使用以下命令从终端播放mp3: gst-launch-1.0-v filesrc location=/主页/用户/歌曲/歌曲。mp3!疯狂的音频转换!音频重采样!自动音频接收器 我收到下面的错误,mp3没有播放 警告:错误的管道:没有元素“mad” sudo apt get install gstreamer1.0-plugins-good gstreamer1

  • 问题内容: 我有一个非常简单的Python 3脚本: 但它总是说: 我在网上看到了解决此问题的所有复杂方法,但是我直接复制了此代码,因此我认为代码有问题,而不是Python的SIGPIPE。 我正在重定向输出,因此,如果上面的脚本被命名为“ open.py”,那么我要运行的命令将是: 问题答案: 我没有重现这个问题,但是也许这种方法可以解决这个问题:(逐行写入而不是使用) 你能抓住破损的管道吗?这

  • 问题内容: 在更新OSx并安装我的环境的新版本后,我彻底无法解决它。我不确定是什么原因导致的,并列出了我所做的并且最初阅读 无效的 一整套内容。答案部分提供了解决我的问题的方法。 无法修复未找到的命令的原因: 通过自制软件安装python,然后使用pip安装virtualenv 通过https://www.python.org安装python ,然后使用pip安装virtualenv 相关问题对我