QTcpSocket 发送数据的几种方法
2024-09-05 07:17:39
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
- //用于暂存要发送的数据
- QByteArray block;
- //使用数据流写入数据
- QDataStream out(&block,QIODevice::ReadWrite);
- //设置数据流的版本,客户端和服务器端使用的版本要相同
- out.setVersion(QDataStream::Qt_4_6);
- //设置发送长度初始值为0
- out << (quint16) 0;
- //设置发送内容
- out<<hash;
- //回到字节流起始位置
- out.device()->seek(0);
- //重置字节流长度
- out << (quint16) (block.size()-sizeof(quint16));
- //往套接字缓存中写入数据,并发送
- tcpSocket->write(block);
3、例子2 write ( const char *, qint64 ) : qint64
- QString *a=new QString;
- tcpSocket->write(a,a->length());
4、例子3 数据流直接使用QIODevice
- QDataStream in(tcpSocket);
- in<< quint16(0xFFFF); //此时QIODevice加载了此数据,而且直接发送出去
- quint16 length = 0;
- QDataStream out(tcpSocket);//如果此时tcpSocket直接有数据发送过来
- out >> length;//length获得第一个整型值,并在tcpSocket中清空该数据
最新文章
- 利用Oracle自带的impdp和expdp进行简单备份
- DSP using MATLAB 示例Example3.23
- PAT乙级 1033. 旧键盘打字(20)
- Virtual Box + CentOS Minimal + Apache搭建Web服务器
- 函数fil_io
- RDD机制实现模型Spark初识
- SQL技巧之排名统计
- Linux回收站[改写rm防止误删文件无法恢复]
- PF_RING packet overwrites
- Intellij IDEA创建Maven Web项目
- Eclipse 配置工程
- es6中对象的类与继承方法
- Java的流程控制结构,细节详解
- 【公众号系列】SAP HANA和区块链
- 小程序之hover-class
- 第15月第29天 ffmpeg AVERROR_EOF
- [LeetCode&;Python] Problem 892. Surface Area of 3D Shapes
- android 自动更新
- BZOJ2337: [HNOI2011]XOR和路径(期望 高斯消元)
- javascript中注册和移除事件的4种方式