字体:  

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

wupeter1 发表于: 2009-6-26 21:21 来源: ACE 开发者

发送端发送:
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);
  }
能收到发送的内容,但是中间夹着乱码。各位高手帮忙分析下原因

最新回复

wishel at 2009-6-28 14:15:38
c字符串基础问题。楼主可以试一下:

char buf[1]="";
buf[0] = 'a';
printf("buf = %s\n", buf);