免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4447 | 回复: 4
打印 上一主题 下一主题

求助:关于socket连接EPIPE和ECONNRESET问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-23 15:37 |只看该作者 |倒序浏览
如题,我在x86系统下socket编程时遇到了下述问题:\r\n         socket建立连接后一方调用 sendmsg 返回-1,errno = EPIPE\r\n             另一方recv返回-1,errno = ECONNRESET\r\n至此双方的连接断开,程序退出,请问造成这种情况的最可能原因是什么?\r\n\r\n        望各位大大不吝赐教,感激不尽!!!

论坛徽章:
0
2 [报告]
发表于 2007-01-23 17:45 |只看该作者
最常见的问题。EPIPE,ECONNRESET\r\n都是 socket 断了,程序要接管SIG_PIPE 信号。\r\n\r\n   EPIPE  The  local  end  has  been  shut  down  on a connection oriented\r\n              socket.  In this case the process will also  receive  a  SIGPIPE\r\n              unless MSG_NOSIGNAL is set.

论坛徽章:
0
3 [报告]
发表于 2007-01-23 21:28 |只看该作者
首先谢谢codefan圣骑士的回答,这令我对socket有了更深的认识,\r\n我再次跟踪调试时发现发送端在出现EPIPE的错误前曾经出现过  EAGAIN  的错误,\r\n我查过EAGAIN的资料,大部分解释为资源暂时不可用,也有人说是缓存不够,或者说资源限制中的打开文件数限制,\r\n我现在设置的接收和发送缓存都有近50k,打开文件数限制更是不可能,又不是调用socket函数出错,而且我的此项限制为1024,\r\n完全足够了,\r\n而solaris中总共有的7种资源限制中,还有cpu时间,堆栈大小,数据段大小,core文件大小,vmem大小等这些限制我也都看过了,\r\n全部为无限制或限制足够大的,所以我不能认同这里的资源不可用的说法,\r\n\r\n各位大大对此有什么想法吗?

论坛徽章:
0
4 [报告]
发表于 2007-01-24 16:19 |只看该作者
没有人遇到同样的问题么?\r\n\r\n顶一下!

论坛徽章:
0
5 [报告]
发表于 2007-01-25 19:59 |只看该作者
望路过的各位大侠出手相助,感激不尽!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP