Qt客户端与Erlang服务器通信(2):多个字符串的获取
2014-06-12 05:57
253 查看
原创文章,转载时请注明出处:http://blog.csdn.net/str999_cn/article/details/30203381
当在一条消息里需要发送多个字符串时,这时要提取每条字符串,需要做一些特殊的处理。上文提到,消息头是表示4字节长度的,那么我们可以利用消息头来截取所需的长度。
看代码:
运行情况如下:
当在一条消息里需要发送多个字符串时,这时要提取每条字符串,需要做一些特殊的处理。上文提到,消息头是表示4字节长度的,那么我们可以利用消息头来截取所需的长度。
看代码:
void Widget::slot_udpReadyRead() { QByteArray byteArray1; while(udpSocket->hasPendingDatagrams()) { byteArray1.resize(udpSocket->pendingDatagramSize()); udpSocket->readDatagram(byteArray1.data(),byteArray1.size()); } //提取服务器回发消息里的信息 QDataStream in1(&byteArray1,QIODevice::ReadOnly); QTextCodec *codec=QTextCodec::codecForName("UTF-16BE"); //myStr1 quint32 Len1; in1>>Len1; qDebug()<<"Len1:"<<Len1; QString myStr1=codec->toUnicode(byteArray1.right(byteArray1.length()-4)); qDebug()<<"myStr1:"<<myStr1; //myStr2 QByteArray byteArray2=byteArray1.right(byteArray1.length()-Len1-4); QDataStream in2(&byteArray2,QIODevice::ReadOnly); quint32 Len2; in2>>Len2; qDebug()<<"Len2:"<<Len2; QString myStr2=codec->toUnicode(byteArray2.right(byteArray2.length()-4)); qDebug()<<"mySt2:"<<myStr2; }
运行情况如下:
相关文章推荐
- Qt客户端与Erlang服务器的通信(3)
- Qt客户端和Erlang服务器通信(1)
- FL2440 通过Socket使开发板作为服务器支持多个客户端连接并与之通信,可通过命令获取当前温度。
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求(1)
- 客户端通过TCP通信分页从服务器获取数据
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求(2)
- qt客户端获取服务器发送视频的方法
- 客户端通过TCP通信分页从服务器获取数据
- Java编写一个简单的TCP通信程序。服务器发送一条字符串,客户端接收该信息并显示。
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求(3)
- 客户端通过TCP通信分页从服务器获取数据
- QT 之 TCP/IP 服务器和客户端(二)(简单的字符串传递版本)
- MFC网络通信传输结构体(服务器获取MYSQL数据库数据传给客户端)
- Qt5--局域网内通信-单服务器多客户端
- 从Qt客户端向Erlang服务器发起数据库分页查询的请求
- Qt/E服务器客户端的通信机制
- 编写Socket客户端和服务器程序,客户端发送一个包含多个数字的字符串给服务器,服务器排序后返回给客户端,要求服务器能连续不断地服务。
- php如何获取经多个服务器转发后的客户端ip
- 如何获取客户端IP、WEB服务器IP
- SEP 11.0 MR 3用于客户端和服务器安装和通信的端口