`
m635674608
  • 浏览: 5062461 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java.net.SocketException: 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函数只调用一遍时,是不会出现这个问题的,经常出现在循环中。解决方法是自己加入信息交换的协议,比如第一个数据报头标明数据长度;而接收端口在无法检测到新数据时不能立即退出,等接收的数据长度达到要求后,或者一定时间没有新数据再退出。

在Unix/Linux下的网络结构和windows略有不同,至少在java的网络编程上有一些差异(没有考证,只是自己曾经遇到相同的问题!) 引起java.net.SocketException:Broken pipe这个异常的原因是你使用了多个线程同时对一个Socket通道进行读/写(windows环境没有这个问题),简单的说就是Unix/Linux下不能同时对一个Socket通道进行读和写。并且我也尝试过使用同步控制来防止对同一个Socket通道进行读和写,不过只是降低了该异常的发生概率(绝对不是同步控制有问题),发送和接收加入一段延迟后不会发生该问题,当然应用是不能容忍这样的处理效率和性能的。 最后我把整个网络通信改成用new io的非阻塞模式,在单线程中处理多路通道,没有这个问题,而且似乎系统吞吐量比先前更高了,

3:

java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) 一般出现在linux服务器上,常常由于网络不稳定或者服务器负荷过大,管道读端没有在读,而管道的写端继续有线程在写,就会造成管道中断。(由于管道是单向通信的) SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。 以下是UNIX的信号解释: 11 / SIGSEGV: Unerlaubter Zugriff auf Hauptspeicher (Adressfehler). 12 / SIGUSER2: User-defined Signal 2 (POSIX). 把_JAVA_SR_SIGNUM改成12只是将信号至成user-defined,让它不报出来而已,不能解决问题。 建议采取的方式: 1. 资源没有完全释放,用完后要至NULL 值(JAVA的GC没那么完善) 2. 数据库连接顺序关闭!(RS,PS,CONN) 3. 优化JAVA虚拟机 加入相应的内存参数! 4. 不要在数据库中获取大段文本(即一个栏位的值不要太大) 5. JAVA 不推荐 用String 获取大量信息。(容易造成内存泄露,建议用StringBuffer) 6. 页面重复提交 7. 尽量将METHOD移到JAVA中,在JSP中所有的方法都看做全局变量,编译执行本身就有很多问题。 8. 如果是查询功能,尽可能的使用非XA(事务)。 9. 尽量用较新较稳定版本的JDK,低版本的JVM本身也有很多BUG,比如1。5的垃圾回收比起1。2,1。3一定是非常明显的进步。 10. LINUX系统本身没有这么稳定,有些问题无法避免的~~:)

分享到:
评论
2 楼 m635674608 2012-06-06  
yanweiqi 写道
楼主,我也遇到了这样的问题。能把你的方案写的详细一些吗?

发邮箱也行 yanweiqi@xinnet.com

可能是网络问题啊。。。。具体看什么原因啊,怎么解决啊
1 楼 yanweiqi 2012-06-04  
楼主,我也遇到了这样的问题。能把你的方案写的详细一些吗?

发邮箱也行 yanweiqi@xinnet.com

相关推荐

    Java Socket常见异常处理

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

    javaerror处理资料

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

    Socket长连接异常处理

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

    java中的connection reset 异常处理分析

    然而,对于EPIPE,`SocketOutputStream`会在写操作时抛出`SocketException`,错误信息为"Broken pipe"。这是因为EPIPE通常发生在写操作时,而读操作通常不会遇到这个问题。 当程序接收到SIGPIPE信号时,默认行为是...

    一个简单易用的在线 PDF 合并工具,可以将多个 PDF 文件合并成一个文件,并支持通过拖拽调整合并顺序

    一个简单易用的在线 PDF 合并工具,可以将多个 PDF 文件合并成一个文件,并支持通过拖拽调整合并顺序

    上市公司-创新韧性数据(2007-2023年).dta

    上市公司的创新能力,彰显于它持续研发新技术、新产品及服务的实力之中,这是维系其市场竞争优势的核心所在。质量方面,它体现为公司提供的产品或服务达到卓越标准的程度,高质量不仅是获取客户信赖与扩大市场份额的基石,也是企业信誉的保障。至于效率,它则囊括了生产运营过程中的资源优化配置与成本控制能力,高效运作能够助力企业削减不必要的损耗,提升生产效能与市场响应速度,从而在竞争激烈的市场环境中稳固并扩大其优势地位。因此,创新能力、质量以及效率,这三者共同构成了推动上市公司持续发展与壮大的核心动力源泉。 数据名称:上市公司-创新能力、创新质量、创新效率数据 数据年份:2006-2023年 ## 02、相关数据 代码 年份 股票简称 中文全称 省份 城市 区县 行业代码 行业名称 证券简称 是否发生ST或ST或PT 是否发生暂停上市 成立日期 上市日期 企业性质 所属省份 所属城市 研发人员数量 研发人员数量占比 RD RDsz RDincome LRDsz LRDincome RD_inc RD_Dum LnRD 专利1 专利2 专利3 专利4 Patent1 Patent2 Patent3

    【9493】基于springboot+vue的美食信息推荐系统的设计与实现.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    2023个股流动性.dta

    股票流动性是指股票在市场上被买卖的容易程度和速度,即投资者能够在不造成显著价格变动的情况下迅速买卖股票的能力。 Amihud指标结果这是一个衡量股票流动性的指标,为股票在一段时间的收益率与交易额的比值的负对数值。如果股票交易量的变动会带来股价的剧烈波动(暴涨暴跌),则Amihud指标越大,股票流动性越差;反之,如果交易量的变化对股价变化的影响越小,则说明股票的流动性较好。由于这是一个计算结果,因此需要根据实际的股票交易数据来计算。 数据名称:上市公司-股票流动性指标 数据年份:2000-2023年 ## 02、相关数据 stkcd、年份、证券代码、Amihud指标结果、交易天数。

    基于SSM+JWT实现前后端分离的token验证的demo.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    价值600元的全网火爆的ChatGPT小程序页面模板,让AI回答你的任何问题!

    ChatGPT 是 OpenAI 开发的一款专门从事对话的人工智能聊天机器人原型。聊天机器人是一种大型语言模型,采用监督学习和强化学习技术。ChatGPT 于 2022 年 11 月推出,尽管其回答事实的准确性受到批评,但因其详细和清晰的回复而受到关注。ChatGPT 使用监督学习和强化学习在 GPT-3.5 之上进行了微调和升级。ChatGPT的相关模型是OpenAI与微软合作在其 Azure 超级计算基础设施上进行训练的。ChatGPT 的训练数据包括手册页、互联网现象和编程语言的知识,例如公告板系统和 Python 编程语言。 功能: 写作 绘画 聊天 唱歌 跳舞 地表最强大的AI,无所不能,目前持续火爆全网,感兴趣的可以尝试深入研究下。

    【9484】基于springboot+vue的扶贫助农系统--lw.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    使用ssm框架实现的人力资源管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    Python 实现SO-CNN-LSTM蛇群算法优化卷积长短期记忆神经网络多输入单输出回归预测(含模型描述及示例代码)

    内容概要:本文详细介绍了如何使用Python实现一种结合了蛇群算法(SO)、卷积神经网络(CNN)和长短期记忆网络(LSTM)的深度学习模型,以提高多输入单输出回归预测的精度。首先阐述了项目背景和目的,强调了传统机器学习方法在处理复杂时序数据中的不足之处,并提出了深度学习模型的应用前景。接着讨论了项目的技术难点和技术解决方案,特别是超参数优化和自动化训练过程,并通过具体的案例展示了其有效性。最后给出了详细的模型构建步骤和代码样例,便于后续的实操演练。 适用人群:数据科学家、机器学习工程师和其他希望深入了解如何结合优化算法和深度学习模型的人士,最好有一定的深度学习基础知识和实践经验。 使用场景及目标:适用于涉及时间序列分析和预测的实际应用场景,包括但不限于金融市场预测、气候变化预测、能源需求预测和医疗健康预测等。目标是提高这些领域的预测精度和模型性能,为企业和个人决策提供更好的支持。 其他说明:本文提供了完整的模型构建指导及代码示例,帮助使用者理解每个组件的作用,尤其是如何结合不同类型的模型以及优化算法。对于想要深入研究相关主题或者实际操作此模型的学习者而言,是非常宝贵的参考资料。

    英文文献阅读指令【指令+教程+视频】.zip

    英文文献阅读指令【指令+教程+视频】.zip

    使用QT+C++搭建的一个基础的本地视频播放器, 基于qmake构建, qt creator实现.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    react integrate with wangditor

    富文本编辑器,Richtext,wangeditor

    OFDM系统降低PAPR算法(PTS、SLM与C变换技术)MATLAB仿真代码实现及性能评估,OFDM系统降低PAPR算法(PTS、SLM与C变换技术)完美运行MATLAB仿真代码,ofdm系统降低P

    OFDM系统降低PAPR算法(PTS、SLM与C变换技术)MATLAB仿真代码实现及性能评估,OFDM系统降低PAPR算法(PTS、SLM与C变换技术)完美运行MATLAB仿真代码,ofdm系统降低PAPR代码,可完美运行。 降低OFDM系统PAPR算法(PTS-SLM-C变)MATLAB仿真(有PTS、SLM、C变三种算法的CCDF仿真) 直接拿即可 仿真软件版本: matlab2012a ,ofdm系统; 降低PAPR代码; PTS算法; SLM算法; C变换算法; MATLAB仿真; CCDF仿真; matlab2012a,OFDM系统PAPR降低:PTS、SLM与C变换算法的MATLAB仿真研究

    【9491】基于springboot+vue的餐厅点餐管理系统.zip

    技术选型 【后端】:Java 【框架】:springboot 【前端】:vue 【JDK版本】:JDK1.8 【数据库】:mysql 5.7+ 资源包含项目源码+数据库脚本+万字文档。 项目包含前后台完整源码,都经过本人调试,确保可以正常运行! 具体项目介绍可查看博主文章或私聊获取。 也可提供远程调试、二次开发、项目讲解服务,有意向可私聊。 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

    Apache:Apache的安装与配置:2. Linux环境下Apache安装与基础配置.pdf

    Apache:Apache的安装与配置:2. Linux环境下Apache安装与基础配置.pdf

    python-6.列表去重-那set一下?.py

    python-6.列表去重——那set一下?.py

Global site tag (gtag.js) - Google Analytics