免费注册 查看新帖 |

Chinaunix

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

socket通信问题, 请教!关于send和recv, read和write [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-25 21:45 |只看该作者 |倒序浏览
我在程序里是用的send和recv, 在接收几M的报文的时候,就会出现recv返回0,读不到东西了. 发送端在发送N 个包后就堵塞了.

调试了半天,后来换成read和write就没有问题了

我在recv里也没有什么特别的用法,flag设置为0,

为什么会这样呢?请教大家


不解

论坛徽章:
0
2 [报告]
发表于 2005-10-26 09:27 |只看该作者

socket通信问题, 请教!关于send和recv, read和write

up

论坛徽章:
0
3 [报告]
发表于 2005-10-26 10:54 |只看该作者

socket通信问题, 请教!关于send和recv, read和write

把代码帖上来看看,这样说太笼统了

论坛徽章:
0
4 [报告]
发表于 2005-10-26 11:32 |只看该作者

socket通信问题, 请教!关于send和recv, read和write

你查找一下本版关于通信方面的帖子。
我已经讲解得很详细了。
如果你看完后,仍然有疑问。再提?

论坛徽章:
0
5 [报告]
发表于 2005-10-26 13:08 |只看该作者

socket通信问题, 请教!关于send和recv, read和write

谢谢楼上!
我检索了下原来的关于socket讨论的帖子

我在程序里是这样的
len = recv(........);
当len = 0的时候,我就判client端无数据了
没有这样
while(len != 我预期读到的len)
{
     len = recv(....);
     len += len;
}

是这样的问题么? socket写的不多!请指点,谢谢!

论坛徽章:
0
6 [报告]
发表于 2005-10-26 16:12 |只看该作者

socket通信问题, 请教!关于send和recv, read和write

recv如果不成功,应该有个异常出来的。
你把timeout设置小,然后捕捉异常。实现伪异步。

论坛徽章:
0
7 [报告]
发表于 2005-10-27 17:26 |只看该作者

socket通信问题, 请教!关于send和recv, read和write

我在每一个recv后都perror("recv";
都没有错误的!

但是就是读不到东西, recv返回0, 那天我也是调的没头绪了! 真郁闷!

论坛徽章:
0
8 [报告]
发表于 2005-10-27 17:31 |只看该作者

socket通信问题, 请教!关于send和recv, read和write

tcpdump抓包看看,有没包过来,再看看你收到没

有可能你的接收缓冲区或发送缓冲区满了,接或发的速度有一方太快
你用netstat -an  查看一下,然后用tcpdump监控看看有没进到tcp拥塞控制了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP