设置界面 联网后 读取回包 判断有没有联网成功
一、头文件写入
//服务器回包
typedef struct sermsg_t
{
int status;
char data[1024];
}SERMSG;
//宏定义 联网后可能发生的3种情况
#define OnLineOK 0 //上线成功
#define OnLineFail -1 //上线失败
#define OnLineFailAlready 1 //上线失败已经上线
二、读线程读取服务器回包
#include <thread/readthread.h>
读线程run()函数里添加结构体并初始化
SERMSG connectNetWork;
bzero(&connectNetWork,sizeof (SERMSG));
run()线程完整版:好像这里不需要宏定义
void ReadThread::run()
{
//int res=0;
SERMSG connectNetWork;
bzero(&connectNetWork,sizeof (SERMSG));
while(1)
{
qDebug()<<"read thread open";
qDebug()<<"sockedfd="<<socketfd;
read(socketfd,&connectNetWork,sizeof (int));
qDebug()<<"connectNetWork.status="<<connectNetWork.status;
emit sendMsg(QString::number(connectNetWork.status));
sleep(5);
}
}
问题:两个文件内都定义同一个结构体,会出现重定义。所以需要一个头文件,包含全部的结构体和宏定义
修改完读线程后 发现读线程读到数据后 通过emit信号将status发送给setwin
所以 在setwin需要写一个槽函数来接收返回值 通过返回值判断有没有登上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具