免费注册 查看新帖 |

Chinaunix

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

socket的io操作为什么有的时候会阻塞? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-10 18:16 |只看该作者 |倒序浏览
我在局域网里作实验,客户端和服务器端长时间通讯,客户端定时新建套接字,去连接server,接受数据,关闭套接字.
程序运行了三天都好好的,突然昨天就阻塞了不动了,我想知道什么原因会造成局域网里两台机器的阻塞呢?原因应该有很多吧,大家都说说意见好吗?

什么都没有改过
会不会应为内存不够用了造成的呢?

论坛徽章:
0
2 [报告]
发表于 2004-09-10 20:54 |只看该作者

socket的io操作为什么有的时候会阻塞?

连续运行三天?第三天就阻塞了?会不会是有内存泄漏呢?

论坛徽章:
0
3 [报告]
发表于 2004-09-10 21:06 |只看该作者

socket的io操作为什么有的时候会阻塞?

在程序阻塞的时候,看看你的TCP连接的状态,还有打印一些LOG,看看阻塞在哪一步?

论坛徽章:
0
4 [报告]
发表于 2004-09-10 21:26 |只看该作者

socket的io操作为什么有的时候会阻塞?

或者可以用嗅探工具(比如tcpdump之类的)来看看数据包~通过数据包来分析一下~

论坛徽章:
0
5 [报告]
发表于 2004-09-10 21:31 |只看该作者

socket的io操作为什么有的时候会阻塞?

tcp连接应该是没有问题,出问题的时候两台机器都在上网
日志是有的,每次connect,recv,send出错都有记载
发现是recv返回值<0.
很奇怪,我在写入日志后面,立刻就要求显出错误提示,可是日志写了,错误提示没有!!
server端关闭后客户端各按钮恢复正常了.

我得程序内存使用量确实在不停的变化,但是增长一段时间后有会下降,不停的循环,这个是内存泄漏的表现马?

论坛徽章:
0
6 [报告]
发表于 2004-09-10 23:52 |只看该作者

socket的io操作为什么有的时候会阻塞?

应该不是内存泄漏吧,你的程序是阻塞在那里,检查会不会是死循环,或者某个地方资源竞争造成死锁?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2004-09-11 07:33 |只看该作者

socket的io操作为什么有的时候会阻塞?

检查server端程序,如果server是fork机制,
1、fork出来的子进程退出时是否没有调用exit
2、父进程fork之后是否忘了close了accept函数返回的子socket

论坛徽章:
0
8 [报告]
发表于 2004-09-11 09:54 |只看该作者

socket的io操作为什么有的时候会阻塞?

没有用fork机制.
对了还有一个问题,用bsd socket 要用select来防止阻塞是吗?
是不是要作两个线程,一个通讯,另一个用select来监测通讯线程里的socket是否可读什么的?

论坛徽章:
0
9 [报告]
发表于 2004-09-12 17:29 |只看该作者

socket的io操作为什么有的时候会阻塞?

楼上,我决得你可能比较缺乏一些比较基础的网络编程知识,可能这样解决起来,会比较麻烦。
而且,你说的
程序运行了三天都好好的,突然昨天就阻塞了不动了
这样实在太含糊,是客户机不能连服务器?还是服务器不接受客户机的连接??我想没有人可以解决你的问题

还有阻塞这个词再socket编程里面是一个有意义的词,但是你说的这个阻塞似乎不是这个意思,建议换个词语形容,比如是不是程序不相应外部连接,或者拒绝外部连接什么的?

胡乱说了两句,不比当真,如果可能你可以贴出一部分源代码,我想可能会有帮助的

论坛徽章:
0
10 [报告]
发表于 2004-09-12 19:10 |只看该作者

socket的io操作为什么有的时候会阻塞?

确实是第一次接触网络编程,问题比较业余比较无厘头,还请各位多多包涵.

问题就在于我不知道哪边出了问题.
问题应该是出在server端send,客户端recv的时候.程序应该是停滞在这里.我将server端程序关掉后客户端提示recv返回值小于0.
我用阻塞一词是因为,我发现一般情况下,如果两端连接以后,都recv,那么两端的程序都会停滞在那里,我觉得这就是recv操作不能正常完成或者无法返回错误信息的表现,我觉得这就是阻塞的一种.而那天程序出问题时,表现和这个很像.

我也在查书继续学习,在提高之前,希望大家不要被我的初级问题气晕就好.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP