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


一、头文件写入

//服务器回包

typedef struct sermsg_t
{
int status;
char data[1024];
}SERMSG;

//宏定义 联网后可能发生的3种情况


#define OnLineOK 0 //上线成功
#define OnLineFail -1 //上线失败
#define OnLineFailAlready 1 //上线失败已经上线

二、读线程读取服务器回包

#include

读线程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="<

read(socketfd,&connectNetWork,sizeof (int));
qDebug()<<"connectNetWork.status="< emit sendMsg(QString::number(connectNetWork.status));
sleep(5);
}
}

问题:两个文件内都定义同一个结构体,会出现重定义。所以需要一个头文件,包含全部的结构体和宏定义

修改完读线程后 发现读线程读到数据后 通过emit信号将status发送给setwin

所以 在setwin需要写一个槽函数来接收返回值 通过返回值判断有没有登上

相关