UC故事2011/06/22 - 1

本文介绍了聊天系统中数据发送的具体实现方式,详细解释了如何通过CChatDataPDU与CRTMessageBlock来完成消息的编码与发送流程。文章还探讨了不同消息类型(公共或私人)的处理区别。

0. 杂想杂问

 

T:改变putty访问Linux的目录颜色:改ANSI Blue

http://blog.sina.com.cn/s/blog_4d910ea50100omv1.html

 

1. Session阅读

 

位置:util/confcli

CChatDataPDU与CRTMessageBlock什么关系?

 

// data format:
// "1,user name,user input message"  // public
// "0,user name,user input message"  // private
void CChatMainDlg::SendData(BOOL bPublic, CString& cSender, CString& cMessage)
{
 if (m_chatsession.IsConnect())
  CHARFORMAT cf;
  cf.cbSize = sizeof(CHARFORMAT);
  cf.dwMask = CFM_CHARSET | CFM_FACE;
  m_input.GetDefaultCharFormat(cf);

  CChatDataPdu pdu;
  pdu.m_bPublic = bPublic;
  pdu.m_cSender = cSender;
  pdu.m_cMessage = cMessage;
  pdu.m_bChatSet = cf.bCharSet;
  pdu.m_cFaceName = cf.szFaceName;

  CRtMessageBlock aData(pdu.GetLength());
  pdu.Encode(aData);

  int nLen = pdu.GetLength();
  LPCSTR lpData = aData.GetTopLevelReadPtr();

  if (bPublic == FALSE && m_bPublic == FALSE)
  {
   InfoUser_ID user(m_idChatUser);
   m_chatsession.SendChatData(nLen, (const LPBYTE)lpData, &user);
  }
  else
  {
   m_chatsession.SendChatData(nLen, (const LPBYTE)lpData);
  }

 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值