博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QTcpSocket 发送和接收数据的几种方法
阅读量:6149 次
发布时间:2019-06-21

本文共 1190 字,大约阅读时间需要 3 分钟。

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.   
  8. //设置发送长度初始值为0  
  9. out << (quint16) 0;  
  10. //设置发送内容  
  11. out<<hash;  
  12.   
  13. //回到字节流起始位置  
  14. out.device()->seek(0);  
  15. //重置字节流长度  
  16. out << (quint16) (block.size()-sizeof(quint16));  
  17.   
  18. //往套接字缓存中写入数据,并发送  
  19. 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.   
  4. quint16 length = 0;  
  5. QDataStream out(tcpSocket);//如果此时tcpSocket直接有数据发送过来  
  6. out >> length;//length获得第一个整型值,并在tcpSocket中清空该数据  

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

转载地址:http://ffmya.baihongyu.com/

你可能感兴趣的文章
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>