首页| 论坛| 消息

标题:tcpserver接收数据
作者:shire
日期:2017-01-07 14:40
内容:

我tcp客户端每次发两百个数据到服务器,服务器这边应该怎么接收啊?是用QString吗?Qstring globalString+=this->readWriteSocket->readAll();客户端发送的数据是1234并不是“1234”,怎么把globalstring数据正确显示出来?本来想globalString+=QString::number(this->readWriteSocket->readAll(),10);这样将数据转换成字符串可是报错,qt中tcpserver该怎么接收一个长数据呢?是1234这种类型不是“1234”这种类型


#1 [圣域天子 01-07 21:12]
数据流,应使用QByteArray存放,然后再按数据格式逐个解析出来,
以下是我从微耕门禁中,读取UDP数据的一段代码,希望对你有用:QByteArray datagram;
datagram.resize(MSG_SIZE);
m_udpServer.readDatagram(datagram.data(), MSG_SIZE);
swing.index = *(quint32*)(datagram.data()+ 8);
swing.action= *(quint8 *)(datagram.data()+12);
swing.valid = *(quint8 *)(datagram.data()+13);
swing.door= *(quint8 *)(datagram.data()+14);
swing.direction = *(quint8 *)(datagram.data()+15);
swing.card= *(quint32*)(datagram.data()+16);
swing.dt= transformDateTime(datagram.data()+20);
swing.reason= *(quint32*)(datagram.data()+27);

回复 发表
主题 版块