gpt4 book ai didi

c++ - 如何通过套接字发送 QMap?

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:57 25 4
gpt4 key购买 nike

我有一个 QMap 对象:

QMap<QString, int> map; 

我想通过 TCP 套接字发送它。我必须将其转换为 JSON 然后发送吗?

最佳答案

尝试使用这种方法:

在服务器端使用它来发送 map :

// to send Map
qint64 SendMap(QMap<String, int> map){
QByteArray block;
QDataStream sendStream(&block, QIODevice::ReadWrite);

sendStream << quint64(0) // for size of data
<< map; // your map

sendStream.device()->seek(0); // return back to set data size

sendStream << (quint64)(block.size() - sizeof(quint64)); // set data size

return socket->write(block); // send data
}

在客户端,当您需要 map 时,使用它来读取 map :

// to receive Map
QMap<QString, int> ReceiveMap(QTcpSocket *socket){
QDataStream readStream(socket);
quint64 dataBlockSize = 0;

while(true) {
if (!dataBlockSize) {
if (socket->bytesAvailable() < sizeof(quint64)) { // waiting data size
break; // to be available
}
readStream >> dataBlockSize;
}

if (socket->bytesAvailable() < dataBlockSize) { // waiting full data
break;
}

QMap<QString, int> map;
readStream >> map;

return map;
}
}

关于c++ - 如何通过套接字发送 QMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56359469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com