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中清空该数据

转自:http://www.lofter.com/tag/qtcpsocket

最新文章

  1. 运用泛型,冒泡排序实现JDK引用类型数组的排序
  2. Android USB Gadget复合设备驱动(打印机)测试方法
  3. 原生态的ajax 及json和gson学习资源
  4. Orleans 高级特性-目录
  5. mybatis-generator-core自动生成do、mapping、dao 代码
  6. 【Android - 框架】之Retrofit的使用
  7. Flask01 初识flask、flask配置
  8. python基础之七种运算符
  9. pycharm 2017新建文件添加编码方式等
  10. 【Bzoj 1835 基站选址】
  11. Dynamics CRM2016 Web API之获取查找字段的text及选项集的text
  12. [已解决]报错:Required request body is missing
  13. CentOS7中启动Chrome报错ERROR:zygote_host_impl_linux.cc
  14. SQL Server datetime类型转换超出范围的报错
  15. httpstatus类的状态有哪些
  16. GridView不执行RowCommand事件
  17. Python类的部分
  18. SQL优化之踩过的坑【一】
  19. Core Animation-1:图层树
  20. java中 列表,集合,数组之间的转换

热门文章

  1. oracle trim函数用法详解
  2. jstypeof方法判断undefined类型
  3. java解析邮箱中的邮件信息
  4. C++11 强枚举类型
  5. 此编译单元不包含在frame元数据中指定的factoryClass,无法加载配置的运行时共享库
  6. python中redis查看剩余过期时间以及用正则通配符批量删除key的方法
  7. 【MyBean调试笔记】接口的使用和清理
  8. Delphi下IOCP开源框架:DIOCP 成功应用案例分享
  9. 第二章 使用接口(Using Interfaces)-书籍翻译
  10. XCode 7 运行 cocos2dx 2.2.6问题小节