• 2990阅读
  • 1回复

[提问]tcpserver接收数据 [复制链接]

上一主题 下一主题
离线shire
 

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

只看该作者 1楼 发表于: 2017-01-07
数据流,应使用QByteArray存放,然后再按数据格式逐个解析出来,
以下是我从微耕门禁中,读取UDP数据的一段代码,希望对你有用:
  1. QByteArray datagram;
  2.         datagram.resize(MSG_SIZE);
  3.         m_udpServer.readDatagram(datagram.data(), MSG_SIZE);
  4.         swing.index     = *(quint32*)(datagram.data()+ 8);
  5.         swing.action    = *(quint8 *)(datagram.data()+12);
  6.         swing.valid     = *(quint8 *)(datagram.data()+13);
  7.         swing.door      = *(quint8 *)(datagram.data()+14);
  8.         swing.direction = *(quint8 *)(datagram.data()+15);
  9.         swing.card      = *(quint32*)(datagram.data()+16);
  10.         swing.dt        = transformDateTime(datagram.data()+20);
  11.         swing.reason    = *(quint32*)(datagram.data()+27);

快速回复
限100 字节
 
上一个 下一个