2016-05-17 2 views
0

私はQUdpSocket 2または3 QVectorを経由して送信したいと思います:UDP経由でQVectorを交換することはできますか?

  • 一つQVector <ブール>
  • 一つQVector <整数>
  • 一つQVector <フロート>

がそれですそれを行うことができる、そしてもしそうなら、それを行う方法? Qtのドキュメントから

+1

[それをシリアル化](https://en.wikipedia.org/wiki/Serialization)。 – user4581301

答えて

3

QtのコンテナクラスもQDataStreamにシリアライズすることができます。これには、QList、QLinkedList、QVector、QSet、QHash、およびQMapが含まれます。ストリーム演算子は、クラスの非メンバーとして宣言されます。

あなたはそうのような 'QDataStream' を使用してそれを行うことができます。

QBuffer buffer; 
buffer.open(QIODevice::ReadWrite); 
QDataStream out(&buffer); 
out.setVersion(QDataStream::Qt_5_6); 
out << m_your_data; 
out.device()->seek(0); 
if(!write(buffer.data())) 
{ 
    // handle your error 
} 
buffer.close(); 
+0

バッファとして[QByteArray](http://stackoverflow.com/questions/23271029/append-a-qbytearray-to-qdatastream)を使用し、[QUdpSocket :: writeDatagram](http:// www。 qtforum.org/article/34385/qudpsocket-broadcast-example.html)それは入力としてQByteArrayを受け取ります..多分QBufferで行うことができます..私は自分の答えを書くのは怠惰です。 – nayana

関連する問題