打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
QTcpSocket 发送和接收数据的几种方法

1、QTcpSocket 继承于QAbstractSocket继承于QIODevice

2、QTcpSocket 提供的几种接收和发送数据方法

  • write ( const char *, qint64 ) : qint64

  • write ( const char * ) : qint64

  • write ( const QByteArray & ) : qint64

  • writeData ( const char *, qint64 ) : qint64

  • read ( char * data, qint64 maxSize ): qint64 

  • read ( qint64 maxSize ):QByteArray

  • readAll ():QByteArray

  • readLine ( char * data, qint64 maxSize ):qint64

  • readLine ( qint64 maxSize = 0 ):QByteArray


3、例子1  write ( const QByteArray & ) : qint64

Cpp代码 
  1. //用于暂存要发送的数据  

  2. QByteArray block;  

  3. //使用数据流写入数据  

  4. QDataStream out(&block,QIODevice::ReadWrite);  

  5. //设置数据流的版本,客户端和服务器端使用的版本要相同  

  6. out.setVersion(QDataStream::Qt_4_6);  

  7. //设置发送长度初始值为0  

  8. out << (quint16) 0;  

  9. //设置发送内容  

  10. out<<hash;  

  11. //回到字节流起始位置  

  12. out.device()->seek(0);  

  13. //重置字节流长度  

  14. out << (quint16) (block.size()-sizeof(quint16));  

  15. //往套接字缓存中写入数据,并发送  

  16. tcpSocket->write(block);  

 

3、例子2  write ( const char *, qint64 ) : qint64

Cpp代码 
  1. QString *a=new QString;  

  2. tcpSocket->write(a,a->length());  

4、例子3  数据流直接使用QIODevice

Cpp代码 
  1. QDataStream in(tcpSocket);  

  2. in<< quint16(0xFFFF); //此时QIODevice加载了此数据,而且直接发送出去  

  3. quint16 length = 0;  

  4. QDataStream out(tcpSocket);//如果此时tcpSocket直接有数据发送过来  

  5. out >> length;//length获得第一个整型值,并在tcpSocket中清空该数据  

 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Qt学习 之 Socket通信(世界上最简单的例子了)
Qt 搭建c/s框架总结
认清基本数据类型和Qt串口通信数据类型转换
(转)4.3加载和保存(LoadingandSaving)
【QT】QT串口接收一帧长字节数据不完整,需要接收两次
Qt 文件处理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服