问题标签 [broken-pipe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4777 浏览

python - 客户端未在 Python 中接收数据

我对 Python 很陌生并且有一个基本问题,网络套接字连接的客户端可以接收数据吗?在我的问题中,客户端是发起连接的人,这可能很明显,但我想明确一点。我问是因为我有另一个服务器和客户端(都是 python),它允许服务器从客户端接收文件。它运行良好,但我无法获得客户端接收文件的示例。Python 一直告诉我管道已损坏,我怀疑它是因为在客户端我使用了 line data = mysocket.recv(1024)。我怀疑客户端没有看到任何数据流动,因此关闭了与服务器的连接。服务器将其视为损坏的管道。服务器和客户端如下。

服务器:

客户:

我将不胜感激有关此事的任何帮助。谢谢!

0 投票
2 回答
175 浏览

ruby - 为什么 ruby​​ 除了在会话结束时写入 std::error 或 std::out 之外?

我编写了一个程序,可以在带有某种形式的 redhat OS 的 linux 机器上运行 16 或 20 小时。如果我使用 nohup 启动它或将输出重定向到文件,它运行良好,但是当用户启动它,将其发送到后台并注销时,它会在尝试发送简单状态消息时失败(报告数字该文件导致的文件)。它抛出一个异常,大概是因为流不再有效。

一旦我们意识到为什么它对我有用,但对他不起作用,我进行了一些测试,发现与 Python、Bash 和 perl 相比,ruby 在这种行为上是独一无二的。

在这种情况下,ruby 的行为与其他脚本语言不同,有充分的理由吗?有没有办法改变它以使其表现得像其他人一样?

我很确定 C++(和 C)不关心最终用户是否可以看到他们的消息输出——但我没有为这些语言编写测试。我惊讶地发现,一旦您注销,发送到后台的作业并没有消失!所以,我过去当然从未测试过这种行为。

0 投票
2 回答
130 浏览

c++ - 为什么在 try 块中初始化文件指针会导致管道损坏?

我有一个 bash 脚本,我正在从我的程序中读取结果。Ptr是一个简单的popen()包装器。

这工作正常,但Ptr f(path)不是异常安全,所以我将其替换为:

运行时(并且文件存在)我收到以下错误:

脚本的那一行只是:

到底是怎么回事?

0 投票
1 回答
4919 浏览

python - 为什么这个socket连接只允许1次发送和接收?

背景
我有一个简单的套接字服务器设置,我试图允许同时连接并回显数据。客户端启动几个线程,每个线程都与服务器建立自己的连接。这适用于 socket.send() 调用,但所有后续调用都会导致“对等连接重置”或“管道损坏”。请注意,我没有找到切换重置和损坏管道的更改。我已经在这里寻找解决方案,但恐怕我可能不知道要搜索什么。

我是以错误的方式解决这个问题,还是我忽略了我的设置中的某些东西?

服务器

客户

0 投票
2 回答
10704 浏览

java - 写入响应时抛出 org.mortbay.jetty.EofException

我在 Eclipse RAP(Rich Ajax Platform 1.3.2)和 Java 1.5 中使用 jetty 6.1.23。我正在向浏览器发送 PNG 图像。这些是导致麻烦的代码片段:

服务器端:

客户端:

奇怪的是,这个问题并非一直都在发生。在我们投入生产后,它会间歇性地发生。我们的测试环境没有问题。生产环境和我们的测试环境唯一的区别是,在生产环境中,用户离我们的服务器很远,而在测试环境中,他们非常接近。

抛出异常时,客户端浏览器端根本不会显示图像!到底是怎么回事?我能做些什么来修复它或至少有一个解决方法?

这是完整的异常跟踪(我突出显示了关键异常):

0 投票
2 回答
2379 浏览

java - LOG4J 冲突 JBOSS&Java 程序

我有一个从使用 log4j(RollingFile 和控制台附加程序)的 jar 启动的 java 服务器。单独:没问题,它有效。我有一个使用 log4j 的 JBoss 服务器(默认安装)。单独运行时一切正常。

当我首先启动我的 Java 服务器和 JBoss 时,也没有问题。

但是,当首先启动 JBoss 然后启动 java 服务器时,最后一个不记录任何内容,JBoss 向我发送此消息:错误 [ServerThread] 无法初始化

使用 LOG4J 的两台服务器之间是否可能存在冲突?我没有在网上找到任何东西。

谢谢

附录

  • JBoss 和 Java 服务器在不同的目录中
  • JBoss 和 Java 服务器不共享任何端口(8080/8433--> JBoss 和 20400-->Java)
  • JBoss 和 Java 服务器在自己的库文件夹中有自己的 log4jxxxx.jar
  • Java Log4j 版本:log4j-1.2.16.jar(我也试过 1.2.17)
  • JBoss 版本:jboss-5.1.0.GA
  • 两者都写在不同的文件中

以下是配置文件:(基本上只有控制台和附加文件)

爪哇

JBOSS(我删除了注释的附加程序)

0 投票
2 回答
2720 浏览

macos - 在 Mac 上设置 Github 时遇到错误“Write failed: Broken pipe”

我在尝试设置时遇到了这个烦人的错误GithubMac操作系统版本是Lion. 基本上,我按照此URL 中提到的步骤进行操作:http://help.github.com/mac-set-up-git/

我总是停留在执行这个命令的步骤"ssh -T git@github.com"

我试图输出调试消息,下面是消息日志。最后一条消息显示这是由于错误'Write failed: Broken pipe'

如果您以前遇到过这个错误并且能够修复它,请给我一个解决这个错误的解决方案。非常感谢。

0 投票
2 回答
11605 浏览

java - Unix域套接字上的Broken Pipe的原因是什么?

我有一个服务器应用程序,它接收请求并在 Unix 域套接字上转发它们。这在合理的使用情况下非常有效,但是当我对几千个请求进行一些负载测试时,我收到了 Broken Pipe 错误。

我正在使用带有junixsocket的 Java 7来发送请求。我有很多并发请求,但我有一个由 20 个工作人员组成的线程池,它们正在写入 unix 域套接字,因此不存在并发打开连接过多的问题。

对于每个请求,我打开、发送和关闭与 Unix 域套接字的连接。

可能导致 Unix 域套接字上的管道损坏的原因是什么?

更新:

如果需要,放置代码示例:

我有一个由 20 个工作人员组成的线程池,他们同时执行上述操作(因此最多 20 个并发连接到同一个 Unix 域套接字),每个连接都打开、发送和关闭。这对于突发 10,000 个请求的负载测试效果很好,但是当我再添加几千个请求时,我突然收到此错误,所以我想知道它是否来自某些操作系统限制。

请记住,这是一个 Unix 域套接字,而不是网络 TCP 套接字。

0 投票
1 回答
705 浏览

jsoup - 请帮我修复断管错误

在我的应用程序中,我使用 webview 从我的移动网站构建原生应用程序。当我运行应用程序时,它的加载速度非常慢。当我调试时,我收到消息说我的应用程序是 Broken pipe 错误。我在我的应用程序中使用 JSoup 库从 html 中获取价值。我不知道 Jsoup 到底有没有错误。请帮我复习一下。非常感谢!

0 投票
2 回答
1893 浏览

sockets - 硬件断开后 TCP 恢复连接

我有一个持续写入 TCP 套接字的程序。我想确保如果客户端和服务器之间的连接断开任何时间,连接可以重新建立。

现在,我可以断开连线,当 write() 函数循环时,它返回一个“对等连接重置”错误,然后返回 ULLONG_MAX 的值。然后,一旦我重新插入电线, write() 就会不断返回“断管”错误。我试图关闭并重新打开连接,但我继续收到“对等方重置连接”错误。

有谁知道我如何首先重新建立连接或使其保持活动一段时间(或无限期)?