最近在写一个Tcp通信小软件,其中涉及到2个头文件,分别是“clientSocket.h”和“information.h”
其中information.h文件中定义一些通信的数据结构体和一些常变量,因此在客户端套接字定义时需要包含“information.h”,即如下所示
#ifndef CLIENTSOCKET_H
#define CLIENTSOCKET_H
#include <QtNetwork\qtcpsocket.h>
#include "information.h"
对于information.h来说,其定义的TranssionInfo结构体中需要用到clientSocket类对象指针,如下
//传输信息
struct TranssionInfo
{
qint32 RequestCommand; //请求命令
qint32 ReplyCommand; //回复命令
clientSocket* ClientSocket; //客户端套接字
qint32 Status; //用户状态
QVector<FriendInformation> FriendVec; //朋友列表
QVector<QString> AccountVec; //账户列表
QString ClientId; //用户ID
QString Password; //用户密码
};
因此,第一想法当然是理所当然的在头文件包含了“clientSocket.h”(当然这样做是错的ÿ