免费注册 查看新帖 |

Chinaunix

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

socket连接中connection refused问题请教! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-28 00:44 |只看该作者 |倒序浏览
看到书上的代码中一般建立一个socket连接,进行一次send、recv,然后close(socket)。现在在一次连接中进行了两次send、recv,然后就发现在进行大概二三十次的重复过程后,就会出现connect failed,connection refused的提示,网上查资料时说出现connection refused一般是因为服务器的端口没有打开,可是端口是开着呀,不知道怎么回事了!是不是因为在一次连接中进行了两次收发数据的原因呢?因为在之前进行一次收发数据的时候是很稳定的,盼cu的高手来指点一下。

注:程序中的socket连接是在一个while(1)循环里进行的,让服务器始终accept客户端的请求。

论坛徽章:
0
2 [报告]
发表于 2008-10-28 02:27 |只看该作者

回复 #1 xiyoubbs 的帖子

如果是客户端去连接对应服务端的端口,肯定需要服务端的端口开着的。我估计你的服务端也是自己写的。
1、可能是客户端连接后没有close,次数一多,服务端没资源提供服务而连接不上,你的情况close了,而且20~30次不会是这种问题。
2、服务端没开,你所说的端口是开着的我不是很相信,我觉得更多的可能是你的服务端不健壮,你用客户端send了几次后把服务端的程序给搞死了。
3、第三种可能就是网络问题,我觉得可能性不大。

综上,我认为是2情况导致,你下次模拟重现的时候,如果再发生你说的情况,请到你开服务端的程序看看,看是不是被搞死了。

论坛徽章:
0
3 [报告]
发表于 2008-10-28 11:35 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2008-10-28 18:56 |只看该作者
今天有事忙了一天,刚上线,赶紧去试验下哈

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
5 [报告]
发表于 2008-10-28 20:35 |只看该作者
怎么可能这个呢“看到书上的代码中一般建立一个socket连接,进行一次send、recv,然后close(socket)。”?

send和recv是不限制次数的,应该是服务断监听接口关闭造成的,程序有bug

论坛徽章:
0
6 [报告]
发表于 2008-10-28 21:19 |只看该作者

回复 #2 samon_fu 的帖子

samon_fu所言甚是,服务器的程序确实是被我整死了,我想知道的是以前的程序中建立一次连接然后收发一次数据是很稳定的,但现在在这一次连接中收发两次数据就不稳定了,跟这一点有关吗?如果没有关系的话,那我在收发前是不是要加上检测端口是否是开着的代码呢?如果要加的话怎么加呢?

论坛徽章:
0
7 [报告]
发表于 2008-10-28 21:26 |只看该作者
你如果是运行一次程序后关闭再运行的话会出现这个问题 建议把端口该一下 再运行
因为有时候程序结束了进程还在 导致不能连接
还有就是你循环过程中每次都打开一个连接 它的能处理的队列满了

论坛徽章:
0
8 [报告]
发表于 2008-10-28 21:27 |只看该作者
不好意思 好像搞错你的问题了 呵呵

论坛徽章:
0
9 [报告]
发表于 2008-10-28 21:54 |只看该作者
没得关系,任何交流和建议都将会拓宽我们的思维。。
我也觉得send和recv是不限制次数的,但就是找不到原因在哪里,代码也比较乱,贴出来可能会让大家更没法子研究,而我也是刚刚研究socket这一块的,所以理论层面上的东西还希望大侠们多指教

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
10 [报告]
发表于 2008-10-28 22:09 |只看该作者
检查一下收发缓冲区(这里的缓冲区是指你定义的收发空间)是不是没有清空,造成内存溢出,进程退出.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP