0

我曾经使用 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。我真的不知道如何处理这个问题。

有什么帮助吗?

4

2 回答 2

1

文档显示 write 函数被 1 个函数重载,qint64 QIODevice::write ( const char * data, qint64 maxSize )因此转换为const char*应该足够了。

于 2012-05-03T09:15:50.860 回答
0

只需添加一个 toQBytearray 并在将 bytearray 拆分为转换 data 的结构的结构中添加一个构造函数。放置一个拆分值,例如 # 或 ; 在数据集之间,当您在服务器上收到数据时,只需使用上述构造函数

于 2012-05-03T09:07:20.677 回答