找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4050|回复: 1

传输时发生一个奇怪的问题

[复制链接]
发表于 2009-6-26 21:21:44 | 显示全部楼层 |阅读模式
发送端发送:
std::string temp("0123456789");
   std::string data("01");
  for (int i = 0;i<5;i++)
   {
    data = data + temp;
   }
   ACE_Message_Block *dataBuf;
   ACE_NEW_NORETURN(dataBuf,ACE_Message_Block(1024));
   dataBuf->copy(data.c_str());
   this->ws.write( dataBuf,dataBuf->length());
接收端代码:
char buf[100]="";
peer.recv (buf,sizeof(buf));
ACE_OS::printf("buf=%s\n",buf);

能正常接收:buf=0101234567890123456789012345678901234567890123456789

但接收端代码改为
char buf[10]="";
     int bc;
        while(bc=peer.recv (buf, sizeof(buf),0)!=0)
  {
   ACE_OS::printf("buf=%s\n",buf);
  }
能收到发送的内容,但是中间夹着乱码。各位高手帮忙分析下原因
发表于 2009-6-28 14:15:38 | 显示全部楼层
c字符串基础问题。楼主可以试一下:

char buf[1]="";
buf[0] = 'a';
printf("buf = %s\n", buf);
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-4-29 09:14 , Processed in 0.013120 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表