netts之 CTWSocket代码流程分析(整体是客户端请求式的)
netts之 CTWSocket代码流程分析(整体是客户端请求式的)
1、外部程序载入调用 netts.dll
2、外部程序调用 netts实现的Stock_Init_Nodialog,(Stock_Init多了个界面交互,后面一致)
3、CTSWnd::GetInstance() ,启动数据转发TSDispatchThreadMain,
线程循环读取CTSCache::的数据,PopPacket()。sleep(1000)
4、CTWSocket::GetInstance(),构造CTWSocket
5.1、CTWSocket(), 初始化数据,设置是否自动更新报价,启动TWAutoReportThreadMain线程
CTWSocket ::SetAutoReport( int bAutoReport = FALSE ); 默认是不自动更新的 与stockdrv中的413行说明有出入,// 设置接收引擎是否自动定期刷新RCV_REPORT信息,缺省为TRUE
5.2、启动登录验证工作
构建登录命令,用户名密码ConstructLoginBuffer
发送命令
接受返回数据,确认是否通过验证IsLoginOK( m_rbuffer, lenRcv )
通过后,读入市场数据 默认dat/report.now
发送初始请求数据,RequestInit()
初始化数据ConstructAskInitBuffer(),
6、TWAutoReportThreadMain,主要否则自动更新报价和请求命令发送
总循环,30秒一次
6.1 如果自动更新报价
没160个数据作为请求RequestReport,Sleep( 10000 );(长)
6.2 空闲状态
取出缓存命令,(int WINAPI RequestStockData 外部程序调用驱动时存入的命令)
发送请求数据
7、数据接收
OnReceive,CAsyncSocket通知到收据接受,
读取socket数据 Receive
缓存数据CTSCache::GetInstance().OnReceive 来接收数据处理
1、读取socket数据
2、解包DecodePacket,大包循环解。
3、TryGetPacket,分析数据类型,推入数组
到3、有tswnd转发给外部窗口。
netts之 CTWSocket代码流程分析(整体是客户端请求式的)相关推荐
- android加载efi分区,高通Android UEFI XBL 代码流程分析
高通Android UEFI XBL 代码流程分析 背景 之前学习的lk阶段点亮LCD的流程算是比较经典,但是高通已经推出了很多种基于UEFI方案的启动架构. 所以需要对这块比较新的技术进行学习.在学 ...
- android uefi 编译报错,【Android SDM660开机流程】- UEFI XBL 代码流程分析
[Android SDM660开机流程]- UEFI XBL 代码流程分析 一.UEFI XBL 1.1 boot_images代码目录 1.2 UEFI代码运行流程 1.3 SEC (安全验证) 1 ...
- 全志 android 编译,全志A20启动代码流程分析 ——Android
现在的CPU都固化了内部 ROM,内部 ROM中有一般都有一段程序,一般有如下几个功能: 1,初始化,部分外设,如USB,SDCARD 2,初始化DDR(内存)和NandFlash 3,加载boot( ...
- 全志android 编译,全志A20启动代码流程分析 ——Android
现在的CPU都固化了内部 ROM,内部 ROM中有一般都有一段程序,一般有如下几个功能: 1,初始化,部分外设,如USB,SDCARD 2,初始化DDR(内存)和NandFlash 3,加载boot( ...
- Slub代码流程分析
Slub代码流程分析: slub的代码晦涩难懂,在看书或者相关资料时看似简单,再去对照代码分析时会发现被打回原形,就像数学老师推导公式和自己去推导公式一样.因此,需要静下来心来仔细研读,看完原理之后分 ...
- 【SemiDrive源码分析】【X9芯片启动流程】26 - R5 SafetyOS 之 LK_INIT_LEVEL_TARGET 阶段代码流程分析(TP Drvier、Audio Server初始化)
[SemiDrive源码分析][X9芯片启动流程]26 - R5 SafetyOS 之 LK_INIT_LEVEL_TARGET 阶段代码流程分析(TP Drvier.Audio Server初始化) ...
- Android原生音频变调代码流程分析
会说话的Tom猫是一款非常经典的终端游戏,可爱的Tom猫可以发出不同音调的声音. 之前用过一个非常著名的开源库SoundTouch可以实现音频的变速变调功能,具体可参考: https://blog.c ...
- EasyDarwin使用udp方式推流实现摄像头直播代码流程分析
EasydDarwin作为当前国内主要开源流媒体服务器之一,支持RTSP流(传输RTP包)的两种传输方式 RTP/AVP/UDP RTP/AVP/TCP 采用哪种传输方式是由客户端决定. 用ffmpe ...
- Android恢复出厂设置代码流程分析
工作中排查到了恢复出厂设置的bug, 有一些细节是需要注意的,于是把这块的代码流程看一下: 代码基于:Android9.0 应用层: 就发送MASTER_CLEAR的广播, 这里没有带参数的 priv ...
最新文章
- Xcode10新变化
- streaming优化:spark.default.parallelism调整处理并行度
- CMD命令名详细大全
- Ascii码 、16进制与 char
- centos php5.2安装教程,CentOS 5.2 x86 64(AMD)编译安装PHP小记
- 有关UNICODE、ANSI字符集和相关字符串操作的总结[转]
- 创建水印文字_推荐免费物业现场品质管理新工具—马克水印相机
- 封装javascript分页插件——可以使用的测试版(β版)
- windows2003管理组创建
- mysql 数据增量备份_MySQL数据库之mysql全量备份、增量备份实现方法
- 一代经典框架 Layui 落幕,是否预示着一个时代的结束?
- surface远程登录桌面字小_office365账号赠送(office桌面版+5Tonedrive)
- 量子统计巨正则系综应用理想费米气体与波色气体性质详解
- CFS三层内网环境 渗透流程
- 校园英语杂志校园英语杂志社校园英语编辑部2022年第15期目录
- java怎么实现分享链接_分享Java
- 教你用Python画了一棵圣诞树
- Linux网卡灯橙色,Ubuntu下网卡灯不亮,是网卡物理损坏了?
- 4.19内核SLUB内存分配器
- pcie转m2装系统win10_操作方法:M.2 PCIE SSD WIN10安装教程(通用)