QTcpSocket可以传输任何类型的二进制数据,包括但不限于整型、浮点型、字符型、自定义结构体、文件等。在发送数据时,需要先将数据序列化成二进制数据,然后再通过QTcpSocket发送。在接收数据时,需要将接收到的二进制数据反序列化成对应的数据类型。常用的序列化和反序列化方法包括QDataStream、QJsonDocument等。
使用QTcpSocket传递自定义的结构体时,需要先将结构体类型的数据内容转换成二进制数据类型QByteArray,这里要借助数据流QDataStream:
#
如果想要直接在<<后面跟结构体,就可以进行运算符重载:
#
使用QTcpSocket接收自定义的结构体: