c++ - QTcpSocket 写入数据结构

标签 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。我真的不知道如何删除这个。

有什么帮助吗?

最佳答案

documentation表明写入函数重载了 1 个函数 qint64 QIODevice::write (const char * data, qint64 maxSize),因此转换为 const char* 应该就足够了。

关于c++ - QTcpSocket 写入数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10428156/

相关文章:

c++ - 模板和信息丢失

c++ - 是否可以使用 begin() 和 end() 创建 std::array?

c++ - 如何让一个函数在 Qt 中暂时成为一个槽?

javascript - 在QtWebkit中,如何设置从C++到Javaobject窗口的回调?

c++ - 无法在 C++ 中创建结构 vector

arrays - 是否可以创建一个结构实例数组?

c - 结构有两个字段,每个字段都是一维数组。将结构对象传递给没有指针的函数,会改变结构对象吗?

c++ - 为什么 lambda 函数默认删除推导的返回类型引用?

c++ - SDL_RenderReadPixels 返回一个黑色矩形?

c++ - 在C++中的循环中读取QML对象(CheckBox)属性:始终相同的值