`
qimo601
  • 浏览: 3445209 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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

    博客分类:
  • Qt
阅读更多

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

 

    //用于暂存要发送的数据
    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中清空该数据
 

 

0
0
分享到:
评论
1 楼 tadpole_java 2015-02-11  

看帖不回不好,
下载了资源还不回,更是不好。

相关推荐

    QT之TCP网络数据(文本和图像数据)传输

    QTcpSocket提供了read()和write()方法,分别用于接收和发送数据。 4. **文本数据传输**:在TCP网络通信中,文本数据通常以字符串或字节流的形式传输。QT提供QByteArray类用于存储字节数据,可以将字符串转换为...

    Qt使用TCP传输文件(带UI),qt文件的发送与接收,QT

    4. **文件接收**:服务器端需要监听`readyRead()`信号,当有足够的数据可读时,使用`read()`或`readAll()`方法接收数据,并保存到本地文件。 客户端的实现同样涉及`QTcpSocket`,但其功能更偏向于发起连接和接收/...

    TCP收发json. 客户端和服务端

    在IT行业中,网络通信是软件开发中的重要环节,TCP(Transmission Control Protocol)作为一种可靠的传输协议,广泛用于数据的发送和接收。在这个例子中,我们关注的是如何通过TCP协议在客户端和服务端之间收发JSON...

    QT tcp接收数据 存数据库,然后显示成曲线

    通过创建socket对象,连接到指定的服务器地址和端口,然后使用write()方法发送数据,read()方法接收数据。 2. **数据接收与处理**:在TCP连接建立后,我们需要监听socket的readyRead()信号,当有新的数据可读时,...

    FileTransferSocket.rar

    QTcpSocket是客户端组件,用于建立与服务器的连接并发送和接收数据;QTcpServer则是服务器端组件,负责监听连接请求并处理来自客户端的连接。 TCP是一种面向连接的、可靠的传输协议,它保证了数据的顺序和完整性。...

    qt网络编程

    在实际编程中,客户端会创建一个QTcpSocket对象,然后连接到服务器的IP地址和端口号,之后就可以通过write()方法发送数据,并通过read()方法接收数据。 在这个初级阶段,我们通常会从简单的字符串传输开始,逐步...

    UDP数据绘动态图_qtudp_QtUDP动态图_UDP接收qt_udpqt_udp生动动图_源码.rar

    `QUdpSocket`类是用于发送和接收UDP数据报的,它不需要建立连接,直接将数据发送到指定的IP地址和端口号。 动态图的实现可能利用了Qt的图形视图框架(Graphics View Framework),它可以方便地创建和管理复杂的2D...

    QT中利用TCP协议实现了一个多线程的文件互传系统

    TCP是一种面向连接的、可靠的传输协议,它通过三次握手建立连接,保证数据的有序和无损传输。在QT中,我们可以使用QNetworkAccessManager和QTcpSocket等类来操作TCP连接。 创建TCP服务器端: 1. 首先,我们需要...

    QT+TCP通信Client端

    在实际开发中,为了代码的清晰和可维护性,通常会封装一个TCPClient类,包含必要的成员变量(如QTcpSocket对象)和方法(如connectToServer(), sendData(), receiveData(), disconnectFromServer()等),并将这些...

    QTcpSocketFile

    我们可以通过它发送和接收数据,以及管理连接状态。 3. **QFile**:客户端发送文件或目录路径后,服务器端会使用QFile来打开并读取文件内容。QFile提供了丰富的文件操作函数,如`open()`, `read()`, `write()`等。 ...

    客户端发送文件服务端收.rar

    在Qt中,我们可以使用QTcpSocket类来处理TCP连接和数据传输。 在"客户端发送文件服务端收.rar"的压缩包中,有两个关键的文件:TcptransferServerDemo和TcpTransferClientDemo,分别代表服务端和客户端的实现。 1. ...

    Qt线程之间通信、线程和进程之间通信实例

    这个例子中,`ThreadA`发送数据,`ThreadB`接收数据,展示了线程间的信号和槽通信。 请注意,实际项目中应根据需求选择合适的通信方式,考虑性能、安全性以及平台兼容性等因素。在编写多线程或多进程代码时,正确...

    qt下的tcp客户端 并即时通信 .rar

    即时通信(Instant Messaging, IM)是一种允许用户即时发送和接收消息的服务。在QT中,我们可以利用TCP客户端实现IM服务的基础部分,如登录认证、消息发送和接收。具体实现可能包括以下几个步骤: 1. 用户注册与...

    Tcp实现的简单通讯

    接收方通过发送确认应答来确认收到的数据,确保数据的正确接收。 6. **错误检测与纠正**:TCP使用CRC校验或其他校验和来检测传输中的错误,如果发现错误则丢弃该报文段,并请求重传。 7. **TCP套接字(TcpSocket)...

    c++ 编程 udp模块示例

    总的来说,C++中的UDP编程涉及套接字的创建、绑定、发送和接收数据等步骤。在本示例中,利用Qt库的`QUdpSocket`类,可以更轻松地实现局域网聊天应用,提供用户友好的图形界面。不过,具体的实现细节需要查看源代码...

    QT项目之TCP通信的实现

    4. **数据传输**:一旦连接建立,就可以使用`QTcpSocket`的`write()`方法发送数据,使用`read()`或`readAll()`方法接收数据。注意,TCP是字节流,所以需要自己处理数据分包和重组。例如: ```cpp QByteArray data;...

    qt-socket.rar-socket简单使用(tcp udp)

    `QTcpSocket`类是Qt提供的用于TCP通信的类,它提供了连接服务器、发送和接收数据以及断开连接等方法。例如,我们可以通过调用`connectToHost()`方法建立到服务器的连接,`write()`方法发送数据,`read()`方法接收...

    TCP(QT5.5).rar_JQS_QT TCP_TCP传输(包括客户端和服务端)_qt5 tcp通讯_tcp

    总结来说,在QT5.5中实现TCP通信涉及以下几个关键步骤:创建QTcpSocket或QTcpServer对象,建立连接,实现数据的发送和接收,创建和绑定用户界面,处理错误和异常,以及可能的多线程实现。理解这些概念和技术,开发者...

    QT实现基于TCP协议的文件传输

    4. **网络通信**:在发送和接收文件数据时,我们可以利用QTcpSocket的write()方法发送数据,read()方法接收数据。通常,我们需要使用异步模式,因为TCP通信可能涉及多个小的数据块,需要在接收到所有数据后进行组合...

    Qt下tcp和udp的编程例子

    3. 使用recvFrom()方法读取来自服务器的数据,该方法会返回发送者的地址和端口信息。 在实践中,TCP适合需要高度可靠性的应用,如文件传输、网页浏览等;而UDP适用于实时性要求高但数据丢失可以容忍的情况,如在线...

Global site tag (gtag.js) - Google Analytics