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

ドキュメントには、書き込み関数が1つの関数でオーバーロードされていることが示されているためqint64 QIODevice::write ( const char * data, qint64 maxSize )、にキャストするconst char*だけで十分です。

于 2012-05-03T09:15:50.860 に答える
0

toQBytearrayを追加し、bytearrayを分割する構造体にコンストラクターを追加してデータを変換する構造体に追加するだけです。#や;のようなsplitvalueを入れてください データセット間でサーバー上でデータを受信するときは、上記のコンストラクターを使用するだけです

于 2012-05-03T09:07:20.677 に答える