CSouthToolSocket流程图
2023-11-24 09:19:05 13 举报
CSouthToolSocket流程图
作者其他创作
大纲/内容
JsonData[\"cmdName\"]
命令对象初始化时注册Mapkey:cmdNamevalue:cmdClass
SouthToolSocket->SendMsg(str)
转为Json数据
JsonData
FALSE
从Header中获取数据包长度dataLen
SouthToolSocket->Close
dataLen>0
根据命令名称获取对象
SouthToolSocket->IsConnected
等待客户端连接
初始化套接字
移除
结束
CSouthToolSocket
发送
SouthToolSocket->AddNotify
SouthToolSocket->InitServer
子线程循环recv数据(阻塞)
创建信号槽信号:msgProcess(recvStr)
dataLen<=0
全局单例SouthToolSocket
Len>0
dataLen-=n
SouthToolSocket->RemoveNotify
注册命令名与对象指针key:cmdNamevalue:cmdClass
TRUE
子线程等待连接(阻塞)
断开信号和槽让recv停止阻塞,子线程退出断开tcp连接清空套接字
发送msgProcess(msgData)
const char *addr(IP地址)ushort port(端口) int waitSec(等待连接时间)
连接成功
recv读取数据接收到n个字节
该类主要实现socket的连接,发送数据与接收数据,并维护一个全局单例。初始化并建立连接以后,开启一个线程接收数据,并发送信号,执行map保存的类里的recvMsg函数调用SendMsg发送Json字符串
Header数据长度=Header大小
msgData
获取命令名称
添加
SouthToolSocket->isValidSocket
返回思维导图
接收到数据
return SOCKET_ERROR != s_accept;
包装数据头数据长度Len
超时
追加接收到的数据
循环发送数据
退出子线程退出
返回s_accept
执行cmdClass.recvMsg(JsonData)
0 条评论
回复 删除
下一页