linux socket 的send 问题

大维啊 2013-07-08 07:33:50
有这样一段函数:
for (;;)
{
printf("buf[RealSend]%d:",RealSend);
for( j=0;j<strlen(buf);j++)
printf("%c",buf[j]);

if ((rc = send(fd,&buf[RealSend],len - RealSend,0)) != len - RealSend)
{
printf("11111111\n");
if (gunionSendTryTimes > 1) // Mary add, 20081114
UnionSystemErrLog("in UnionSendToSocket:: send! Real Send [%d] Expected Send = [%d]\n",rc,len - RealSend);
if (rc < 0)
{
return(UnionErrCallingSend);
}
else
RealSend += rc;
if (RealSend > len)
return(UnionErrCallingSend);
usleep(5);
}
else
{
return(len);
}
}
...全文
46 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
liam22 2013-07-08
  • 打赏
  • 举报
回复
send(fd,&buf[RealSend],len - RealSend,0) 1、检查下这两个参数&buf[RealSend],len - RealSend 2、接收端注意下网络字节序的情况
大维啊 2013-07-08
  • 打赏
  • 举报
回复
红色部门打印的结果:是 buf[RealSend]0:6033210030010012ATM.8188.zak0220016C0BE30B6159DE33202100760200 130000 022001430911198401177412 10219 28871 20130708190219 8188 0288715 而接收到的是:00 4A 36 30 33 33 始终不明白为什么?求高手指点

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧