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

QTcpSocket 发送和接收数据的几种方法的更多相关文章

  1. python网络编程调用recv函数完整接收数据的三种方法

    最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...

  2. [Socket网络编程]由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

    原文地址:http://blog.sina.com.cn/s/blog_70bf579801017ylu.html,记录在此方便查看 解决办法: MSDN的说明: Close 方法可关闭远程主机连接, ...

  3. Netty——高级发送和接收数据handler处理器

    netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler 和 ChannelInboundHandlerAdapter 一般用netty来发送和 ...

  4. netty发送和接收数据handler处理器

    netty发送和接收数据handler处理器 主要是继承 SimpleChannelInboundHandler 和 ChannelInboundHandlerAdapter 一般用netty来发送和 ...

  5. 手把手教你Android手机与BLE终端通信--连接,发送和接收数据

    假设你还没有看上一篇 手把手教你Android手机与BLE终端通信--搜索,你就先看看吧,由于这一篇要接着讲搜索到蓝牙后的连接.和连接后的发送和接收数据. 评论里有非常多人问假设一条信息特别长,怎么不 ...

  6. udp网络程序-发送、接收数据

    1. udp网络程序-发送数据 创建一个基于udp的网络程序流程很简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: #coding=utf-8from socket im ...

  7. socket 错误之:OSError: [WinError 10057] 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。

    出错的代码 #server端 import socket import struct sk=socket.socket() sk.bind(('127.0.0.1',8080)) sk.listen( ...

  8. HttpServletRequest接收参数的几种方法

    HttpServletRequest接收参数的几种方法 我们经常用servlet和jsp, 经常用request.getParameter() 来得到数据. request.getParameter( ...

  9. PHP获取POST数据的几种方法汇总

    一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...

随机推荐

  1. 【Unity】5.2 天空盒

    分类:Unity.C#.VS2015 创建日期:2016-04-20 一.简介 Unity中的天空盒实际上是一种使用了特殊类型Shader的材质,这种类型的材质可以笼罩在整个游戏场景之外,并根据材质中 ...

  2. C++中的static 成员变量的一些注意点

    C++中的static成员变量主要用来为多个对象共享数据 例: #include <iostream> using namespace std; class Student{ public ...

  3. 关于CAE的那点儿破事儿

    CAE是计算机辅助工程的英文简写,所涵盖的范围甚是广泛.现在很多人提到CAE,总是联想到结构有限元计算,更有甚者认为有限元就是CAE.还有人把所有的工程数值计算都称作有限元.本文就这一话题,来谈谈关于 ...

  4. 【Linux技术】Windows与Linux系统下的库·初探

    库的定义  库文件是一些预先编译好的函数的集合,那些函数都是按照可再使用的原则编写的.它们通常由一组互相关联的用来完成某项常见工作的函数构成,从本质上来说库是一种可执行代码的二进制形式,可以被操作系统 ...

  5. MediaType是application/x-www-form-urlencoded的接口测试方法

    先看接口: @POST @Path("/deleteById") //@Consumes(MediaType.APPLICATION_JSON) @Consumes(MediaTy ...

  6. vue实现点击区域外部的区域,关闭该区域

    var _this = this; document.addEventListener('click',function(e){ console.log(_this.$refs.configforms ...

  7. webpack配置提取公共代码

    公共代码提取功能是针对多入口文件的: 背景:在pageA.js和pageB.js中分别引用subPageA.js和subPageB.js webpack.config.js文件: var path = ...

  8. MFC中获取命令行参数的几种方法

    在MFC程序中,可以用以下几种方法来获取命令行参数. 为方便说明,我们假设执行了命令:C:\test\app.exe -1 -2 方法一 ::GetCommandLine(); 将获取到 " ...

  9. visual c++中预定义的宏

    一.主要目标 (由于visual studio通常包含很多开发环境,通常将其中c/c++的ide称为visual c++ 20xx) 整理下visual c++ 2010下预定义的宏.做一下备忘和了解 ...

  10. 【机器学习】K近邻算法——多分类问题

    给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该类输入实例分为这个类. KNN是通过测量不同特征值之间的距离进行分类.它的的思路是:如 ...