ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

设置界面 联网后 读取回包 判断有没有联网成功

2022-02-25 21:01:52  阅读:86  来源: 互联网

标签:读取 int SERMSG 联网 connectNetWork 线程 sizeof 回包 定义


一、头文件写入

//服务器回包

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需要写一个槽函数来接收返回值 通过返回值判断有没有登上

 

标签:读取,int,SERMSG,联网,connectNetWork,线程,sizeof,回包,定义
来源: https://www.cnblogs.com/hhy-2216/p/15937757.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有