UC故事 2011/06/24 - 1(补记2011/12/06)

科技中介服务机构如何高效完成技术成果的筛选与匹配服务?.docx 科技中介服务机构如何高效完成技术成果的筛选与匹配服务? 立即下载

*** Understanding Chat Flow ***

 

0. 杂想杂问

 

1. CChatMainDlg

CChatComponent m_component;

CChatSession m_session;

 

onBtnSend() -> m_session.SendChatData();

 

* Sendata()

 

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);
  }

 }
}

 

Q:只在这里涉及MessageBlock,底层不再涉及?底层只涉及指针与长度?

 

2. CChatSession

 

class CChatSession : public ISessionClientSink
{

  ...

protected:
 CRtAutoPtr<ISessionClient> m_pSession;
 CChatMainDlg& m_chatDlg;

 CInfoRosterInfo m_userInfo;

 InfoChannel_ID m_Channel_All;
 InfoChannel_ID m_Channel_AllUser;
 InfoChannel_ID m_Channel_AllLocalPort;

 CSessRosterList m_userMgr;
 DWORD m_dwStatus;

}

 

Q: Why没有实现ISeessionClient接口,而是有一个成员变量m_pSession?

 

CmResult CChatSession::InitSession(ISessionClient* pSession)
{
 RT_ASSERTE(m_pSession == NULL);
 if (m_pSession)
  return CHAT_SESS_ALREADY_EXIST;

 CmResult rt = CHAT_SESS_CALL_FAIL;
 m_pSession = pSession;

 RT_ASSERTE(m_pSession);
 if (m_pSession)
  rt = m_pSession->OpenWith(this);

 return rt;
}

 

Q: ISessionClient的实现类究竟有哪些?只有CConfSession?

 

3. ISessionClient

 

 virtual RtResult SendData(
  const InfoChannel_ID& destID,
  DATA_Priority priority,
  DATAFLAG dataFlag,                // What's this ?
  DWORD length,
  const LPBYTE lpData) = 0;

 

4. CConfSession

 

RtResult CConfSession::SendData(
  const InfoChannel_ID& destID,
  DATA_Priority priority,
  DATAFLAG dataFlag,
  DWORD length,
  const LPBYTE lpData)

{

...

 if (length > 8 * 1024)
 {
  RT_WARNING_TRACE_THIS("CConfSession::SendData, sess type="<<m_sessKey.nSessionType<<": pdu too long! len="
   <<length<<",dataFlag="<<dataFlag<<",destID="<<destID);
 }

...

 return SendData_i(destID, priority, dataFlag, length, lpData);

}

 

 

RtResult CConfSession::SendData_i(...)

 

{
 LPBYTE lpOutData = lpData;
 DWORD  outLength = length;
 if (m_sessSecurity)
 {
  EncryptData_i(lpData, length, lpOutData, outLength,
   m_securityBuff, m_securityBlen);
 }
 return SessSenddData(destID, priority, dataFlag, outLength, lpOutData);
}

 

RtResult CConfSession::SessSenddData(...)

 

{
 CRtMessageBlock aData(
  length, (LPCSTR)lpData, CRtMessageBlock::DONT_DELETE, length);
 CInfoSvrSessApplicationData pdu(
  GetUserID(), destID, priority, dataFlag, aData);
 return m_conference.SendData(&pdu, priority, dataFlag);
}

 

Q:Why会从CConference发出最终信息?这里的PDU干嘛的?

 

 

5. CInfoSID

Q:如何理解?

 

 

coppeliasim+gym+sac机械臂到位实验 urdf文件 立即下载

相关推荐

产业园区如何通过数智工具精准识别企业技术需求,提高服务匹配效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Python爬虫 使用requests的session发送请求

import requests url = "https://www.xslou.com/login.php" data = {"username": "1128", "password": "123", "action": "login"} # 使用session发送请求 session = requests.session() resp = session.post(url, data=data) resp.encoding = 'gbk' # print(resp.text) # 推荐小说 hot_

平人的博客 1091

激光雷达测距方式全解析:ToF、三角测距和FMCW到底怎么选?

本文深度解析激光雷达三种主流测距方式(ToF、三角测距和FMCW)的技术原理、环境适应性和成本模型,提供场景化选型决策指南。通过对比各技术在精度、抗干扰能力和维护成本等方面的表现,帮助工程师在自动驾驶、工业检测和消费电子等领域做出最优选择。

qqq44的博客 719

UC故事 2011/06/23 - 1

*** Understanding Chat Flow ***   0. 杂想杂问   1. CChatMainDlg CChatComponent m_component; CChatSession m_session;   onBtnSend() -> m_session.SendChatData();   * Sendata()   void CChatMain

printf1998的专栏 292

CVE-2025-25249漏洞深度解析:FortiOS认证绕过与实战缓解

远程代码执行(RCE)是网络安全中最危险的漏洞类型之一,其核心往往源于认证机制失效或内存安全缺陷。CVE-2025-25249正属于此类高危漏洞——它不依赖用户凭证,也不需要交互触发,而是通过超长HTTP头(如X-Forwarded-For)引发内存越界写入,直接绕过FortiOS和FortiSwitchManager的完整认证流程。该漏洞影响广泛、CVSS评分高达9.8,凸显了嵌入式设备在HTTP协议栈实现中的深层风险。在企业网络中,FortiGate等设备常作为边界守门人,一旦失陷将导致root级控制权

weixin_33694620的博客 524

成本150元的高性能RDP协议瘦客户机

云终端市场是一个跨度很大的市场。既有数千元的品牌的瘦客户机,也有几百元的瘦客户机,还有200-300元的支持RDP协议的多用户云终端。但是200-300元的多用户终端,在显示性能上不尽人意,一般用于地产中介门店,工厂产线的电子看板等场合。有没有性能更好,价格更低的方案呢? 答案是有。 这个方案就是 二手的x86 瘦客户机 + DoraOS瘦客户机系统免费版(仅支持RDP)。 首先我们看硬件,在某宝搜索 升腾C92 ,找到最低配置的( CPU:J1800,内存:2G,硬盘:8G)。价格都在150以内。

云飞扬的桌面云 7411

总结一下关于UC方面的问题 2011/09/11

* 音频数据优先级 音频与其它数据分不同的Connection在传输,无论其是否使用UDP,都不可能控制其相对于其它数据的优先级 目前要保障音频优先级的唯一方法是在网络设备层保障 * 纯HTML5方案中server端的变化 需要自己开发WebSocket服务器 需要的时候,仍可做成分级分布式集群 * 服务器的接口 Q:可能做出一个服务器接口让第三方调用否? A:

printf1998的专栏 3171

从静态到动态:如何用Deformable 3DGS和4DGS实现高效动态场景建模

本文深入探讨了Deformable 3DGS和4DGS在动态场景建模中的技术突破,详细解析了这两种方法如何高效处理动态内容。Deformable 3DGS通过引入时间维度的变形场扩展传统3DGS,而4DGS则采用四维时空体素分解方法,两者均显著提升了动态场景建模的效率和质量,适用于虚拟现实、增强现实等应用场景。

weixin_29063035的博客 433

读书与UC

1.读书Windows Programming V2 Q:AFX_MODULE_THREAD_STATE对于模块和线程都是私有的,如何理解? Q:windows book P176:AfxCallWndProc()如何处理多个消息处理嵌套的? Q:以下代码 /////////////////////////////////////////////// // CMyApp成员函数的实现代码

printf1998的专栏 1828

一、Abaqus CAE 入门操作(薄膜应力计算)

一、Abaqus CAE 入门操作(薄膜应力计算)

A20802013的博客 4368

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

【北大核心-代码复现】基于 VMD-FFCM-iTransformer 光伏功率短期预测

765

UC故事 05/09/2011

Office   1. 修改IP后,启动Client/Server,均现“重新连接” 2. 重启动后,一个Client连接成功,另一个仍“重新连接”。 查看错误信息,有如下:   $20110509 14:39:09.296 2016/1616 info: CConfManage::OnJoinConferenceConfirm $20110509 14:39:09.296 201

printf1998的专栏 1091

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 117

iPhone/iPad Audio Unit声音播放

1. Audio unit或audio graph 当只有一个audio unit的时候,直接使用audio unit的API,不必使用Audio Graph

printf1998的专栏 1045

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

UC故事2011/11/30

今日之事 * 文档完成 * Jiarong例子 * test的例子   1. CRtThreadManager * class definition class RT_API_EXPORT CRtThreadManager  {  ....  static CRtThreadManager* Instance();

printf1998的专栏 1014

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

UC故事 2011/11/24

1. Chat Module接收信息,并演示到UI上面的全过程: STACK TRACE: CChatMainDlg::ReceiveMessage(unsigned long 19923456, WTL::CString & {...}, WTL::CString & {...}, int 1, _charformatw * 0x00119fa8) line 589 CChatMainDl

printf1998的专栏 998

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

UC 故事 05/13/2011 杂记:代码

1. 问题 Q:TP层的架构文档? Q:所有port的种类?不同种类port之间交换信息的业务实例? Q:Channel使用SID来标志,是不是一种特殊port? Q:Channel只和user有关吗?  virtual RtResult JoinChannel(const CInfoSID& userInfoSID, const CInfoSID& channelID) = 0;

printf1998的专栏 967

UC故事2011/11/27 - 2

1. 再次研究线程 * 线程种类     typedef int TType;     enum     {         TT_MAIN,         TT_NETWORK,         TT_DNS,                      // Q:for what ?         TT_CURRENT,           // Q:for what?

printf1998的专栏 906

杂记 05/07/2011-2

Reading source code of Client   1. C函数还是C++函数?             DebugRunOption pRunProc1 = (DebugRunOption)GetProcAddress(hModule1, WT_DEBUG_RUN); 实际定义在../vc98/Include/WINBASE.h中。   WINBASEAPI FARPR

printf1998的专栏 885

UC故事2011/11/26

1. 开发环境恢复 * 处理Info/controller启动问题:Bind $20111126 17:24:29.062 16496/16684 ERROR: CRtAcceptorTcp::StartListen, bind() failed! addr=192.168.1.101 port=1224 err=10048:通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

printf1998的专栏 877

UC故事 2011/10/21

1. Session研究 * CInfoSid 结构有点复杂呢  //channel ID  //[0000 TTTT xxxx xxxx xxxx xxxx xxxx xxxx]  //NodeID  //[xxxx TTTT YYYY YYYY YYYY 0000 0000 0000]  //SessionID and user ID  //[xxxx TTTT YYYY Y

printf1998的专栏 796

UC故事 2012/04/19 Server

1. 读文档与代码  * MCS class IMcs : public IOption { public:   ...  virtual RtResult JoinChannel(const CInfoSID& userInfoSID, const CInfoSID& channelID, IInfoSvrPort* pSrcPort = NULL) = 0;  virtual

printf1998的专栏 778

UC故事2011/11/17

### 搞定UCP4.5-0429开发环境(home) 1. info server * 直接F5 $20111117 18:57:53.828 2264/12320 ERROR: CRtAcceptorTcp::StartListen, bind() failed! addr=192.168.1.100 port=1224 err=10049:在其上下文中,该请求的地址无效。

printf1998的专栏 770

UC故事2011/12/04 总结与规划 (续)

1. 要点总结 * 2011/11/22: Client核心类图及关于XXXSink的理解 * Chat窗口中的信息如何传递到服务器 UI线程:UI上的button消息响应函数 UI线程:得到网络线程的Reactor指针pReactor UI线程:pReactor->PostEvent(SendDataEvent),投递event,并呼叫NotifyHandler通知reactor处理e

printf1998的专栏 703

UC故事 2012/04/26

1. client/server browsing Q: 以下为对应关系? session::CConference gcc::InfoSvrConf session::CConfSession gcc:InfoSvrSession   Note: :CConfDetailInfo is used by both client and gcc !   * biz concep

printf1998的专栏 700
上一篇: UC故事2011/12/04 总结与规划 (续)
下一篇: UC故事 2011/12/05 总结与计划(续2)
printf1998
博客等级 码龄16年 14粉丝 196原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值