QT自带的QDataStream只能传递它自己要求的数据类型。但是我们可以自己重载QDataStream& operator<<()和QDataStream& operator>>();
mydatastream.h
#ifndef MYDATASTREAM_H
#define MYDATASTREAM_H
#include <QDataStream>
struct UserInfor{
QString id;
QString state;
QString ip;
QString port;
QString nickName;
QByteArray headPhoto;
QString discription;
};
inline QDataStream& operator<<(QDataStream& out, const UserInfor& userInfor)
{
out<<userInfor.id<<userInfor.state<<userInfor.ip<<userInfor.port<<
userInfor.nickName<<userInfor.headPhoto<<userInfor.discription;
return out;
}
inline QDataStream& operator>>(QDataStream& in,UserInfor& userInfor)
{
in>>userInfor.id>>userInfor.state>>userInfor.ip>>userInfor.port>>userInfor.nickName
>>userInfor.headPhoto>>userInfor.discription;
return in;
}
#endif // MYDATASTREAM_H
这样我们就可以传递struct的类型了