找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 2725|回复: 1

TMD,果然是ACE_MESSAGE_BLOCK的问题

[复制链接]
发表于 2009-10-14 13:39:19 | 显示全部楼层 |阅读模式
int WriteDate(char *szSendBuf, int nSendCnt)
{
  ACE_Message_Block *smb = new ACE_Message_Block(nSendCnt+1);
  smb->copy(szSendBuf,nSendCnt+1);      
  int nResult = this->writer_.write(*smb,nSendCnt+1);
  if ( nResult != 0)
  {
   ACE_TRACE("Write data failed!");
  }
  
  return nResult;
}

之前用的是smb->copy(szSendBuf);没有手工使用wr_ptr();
因为它会帮你把字符串末尾的0也复制,长度也会多1.这个特性可能会在你拼接二进制协议时带来一些古怪的问题.

切记切记!!!
发表于 2009-10-14 17:52:15 | 显示全部楼层
smb->copy(szSendBuf,nSendCnt+1);   
我一般直接用这个版本。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 13:38 , Processed in 0.016653 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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