`
幸运虫
  • 浏览: 47681 次
  • 性别: Icon_minigender_2
  • 来自: 甘城
社区版块
存档分类
最新评论

Broken pipe 异常

阅读更多
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.flushBuffer(BufferedOutputStream.java:65)
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
	at java.io.DataOutputStream.flush(DataOutputStream.java:106)
	at peer.UploadThread$SendToPeerThread.run(UploadThread.java:179)
	at java.lang.Thread.run(Thread.java:680)


网上查了很多资料,都说这个错误是由于Linux/Unix的连接数限制,或者多个线程对同一Socket进行读写。
但是经过我反复调试的结果,这个异常顾名思义就是Socket通道坏掉了。可能是数据发送有延迟,对方没有检测到新数据,直接把通道关了,于是你再往里添加数据时就出现这个异常,通常往Socket里面写数据的Write函数只调用一遍时,是不会出现这个问题的,经常出现在循环中。解决方法是自己加入信息交换的协议,比如第一个数据报头标明数据长度;而接收端口在无法检测到新数据时不能立即退出,等接收的数据长度达到要求后,或者一定时间没有新数据再退出。

0
0
分享到:
评论
1 楼 lcf11824 2010-12-03  
我来围观~

相关推荐

    完美解决Linux搭建sftp出现Write failed:Broken pipe的问题

    然而,在搭建SFTP服务时,用户可能会遇到“Write failed: Broken pipe”这样的错误提示,这通常是由于权限问题或者网络通信故障导致的。下面将详细解释这个问题的原因以及提供解决方案。 **问题分析** "Write ...

    Socket长连接异常处理

    java.net.SocketException: Broken pipe 该异常可能发生在客户端和服务器端,原因是在连接断开后继续写数据。解决方法是确保在关闭连接前完成所有的数据传输,并检测对方的关闭连接操作。 编写网络程序时需要注意...

    Mybatis破MySql8小时断线问题1

    然而,如果使用JDBC或连接池的客户端仍尝试使用这个已断开的连接,就会引发异常。 MySQL的这个超时机制是由系统变量`wait_timeout`控制的,单位为秒。默认设置是8小时(28800秒),但最大可设置为31536000秒,即...

    Caused by: android.system.ErrnoException: write failed: ENOSPC (

    在Android中,当应用程序试图写入文件或数据到存储设备(如内部存储或SD卡)时,如果目标位置的空间不足以存放这些数据,就会抛出`android.system.ErrnoException`异常,并携带此错误码。 #### 二、常见触发场景 1...

    Struts2 下载取消报异常最终解决办法

    典型异常包括`IOException`,如`Stream closed`或`Broken pipe`等。 - 这些异常通常是由于客户端中断请求导致的,而非服务器端的问题。 3. **解决方法** - **异常处理**:在Action类中,为可能出现的异常添加try-...

    java中的connection reset 异常处理分析

    另一方面,EPIPE错误表示"broken pipe",通常发生在客户端试图向一个已经关闭的连接写入数据时。当服务端发送RST包后,如果客户端继续尝试写入,操作系统会发送SIGPIPE信号给客户端进程,导致进程终止,除非有自定义...

    Java Socket常见异常处理

    5. **java.net.SocketException: Broken pipe** 在`Connect reset by peer`异常之后继续尝试写操作时,可能会遇到此异常。同样,需要确保在连接断开后不再进行无效的读写操作,并及时关闭Socket。 编写网络程序时...

    javaerror处理资料

    java.net.SocketException: Broken pipe 此异常与第4种异常类似,都是因为远程主机突然断开了连接。区别在于前者更多出现在写操作时,而后者则更普遍。为了避免这类异常,可以定期检测Socket的状态,例如通过设置...

    Hibernate+c3p0连接池SQLServer 2000

    Broken pipe!`等异常情况。具体表现为:当应用程序尝试执行某些数据库操作时,由于网络问题或其他原因导致连接中断,进而抛出异常。例如: ``` [Microsoft][SQLServer2000DriverforJDBC] Connection reset ...

    开发遇见问题解决

    问题描述:在Linux环境下进行批量文件上传或下载时,可能会遇到`Broken pipe`异常。 **产生原因:** - 文件操作过于频繁,每次操作都建立新的连接,导致服务器无法处理过多的短连接请求。 **解决方法:** - 使用...

    linux信号的机制

    12. **SIGPIPE**:管道破裂(Pipe Broken)信号,当管道的读端关闭但仍有进程尝试向管道写入数据时触发。 13. **SIGALRM**:定时器(Timer Alarm)信号,由alarm()函数设置定时器到期时发出。 14. **SIGTERM**:终止...

Global site tag (gtag.js) - Google Analytics