QTcpSocket写一个数据结构

时间:2012-05-03 09:00:29

标签: c++ qt struct qtcpsocket

我曾经用C ++套接字发送一个结构,现在我正在尝试使用QTcpSockets。这是结构:

const unsigned int uiMessageSize = 4;
    typedef struct {
        unsigned char uc_stx;
        unsigned char uc_add;
        unsigned char uc_state;
        unsigned char uc_eot;
        unsigned char uc_unused_padding[1024];
    } st_message;

那么,为了写作,我曾经打电话给write(sockfd, &messageToSend, uiMessagePcToMastSize);

现在我正在尝试:socket->write(&messageToSend, uiMessagePcToMastSize);并且不起作用:没有匹配函数来调用'QTcpSocket :: write(mastControl :: st_messagePcToMast *,const unsigned int&)

我搜索了更多信息,看起来我应该将结构转换为QDataStrem,或者仅仅是QByteArray。我真的不知道该怎么做。

任何帮助?

2 个答案:

答案 0 :(得分:1)

documentation显示写函数被重载,其中1个函数为qint64 QIODevice::write ( const char * data, qint64 maxSize ),因此转换为const char*就足够了。

答案 1 :(得分:0)

只需添加一个toQBytearray并在struct中添加一个构造函数,将bytearray拆分为转换数据的struct。放一个splitvalue就像#或;在数据集之间以及在服务器上接收数据时,只需使用上面提到的构造函数