QTcp相关的类解析

文章目录

  • 1 QTcpServer Class
    • 1.2 Detailed Description
  • 2 QTcpSocket Class
    • 2.1 Detailed Description
  • 3 QUdpSocket Class
    • 3.1 Detailed Description

1 QTcpServer Class

QTcpServer类提供了及基于TCP的服务
需要在qmake中 += network
继承于QObject
其派生类为QSctpServer

1.2 Detailed Description

QTcpServer类提供了基于TCP的服务
此类允许接收TCP的连接,你可以指定port口,或者有QTcpServer来自动挑选一个,你可以监听指定的或者机器上左右的地址。
通过调用listen()函数来获得所有输入的连接的家庭,信号newConnection()在连接到新服务器的时候会发射。
调用nextPendingConnection()函数来接收作为连接到QTcpSocket的挂起的连接,此函数返回一个在QAbstractSocket::ConnectedState的QTCPSocket的指针,你可以使用它来和客户端进行通信。
如果发生了故障,函数serverError()可以返回故障的类型,函数errorString()可以获得一个可读的问题的描述信息。
当监听连接的时候,服务器所监听的地址和port口作为serverAddress()和serverPort()。
调用函数close()来让QTCPServer停止监听进入的连接。
尽管QTcpServer通常用在事件循环中,不用也是可以的,这种情况下,你必须使用waitForNewConnection(),直到一个连接是有效的或者超时情况发生的时候都将会阻塞。

2 QTcpSocket Class

QTcpSocket类提供了一个TCP套接字
qmake需要添加 += network
继承于QAbstractSocket

2.1 Detailed Description

QTcpSocket类提供了一个TCP套接字
TCP(Transmission Control Protocol)是一个可信的,流式的传输协议,它尤其适用于传输连续的数据
QTcpSocket是QAbstractSocket的便利子类,允许你创立一个TCP的连接,然后传输流式的数据,详细的请看QAbstractSocket介绍的文档。

3 QUdpSocket Class

QUdpSocket 类提供了一个UDP套接字
qmake中需要添加 += network
继承于QAbstractSocket

3.1 Detailed Description

QUdpSocket提供了一个UDP套接字
UDP(User Datagram Protocol)是一个轻量级,不可靠,数据电报导向的,非连接式的协议,它可以用在数据的可靠性不是那么重要的环境中,QUdpSocket是一个QAbstractSocket的子类,允许接收和发动UDP数据场。
使用此类的最常见的方式是使用bind()函数来绑定一个地址和port口,然后调用函数writeDatagram()函数和readDatagram()函数/receiveDatagram()来传输数据,如果你想使用标准的QIODevicede的函数read(),readLine(),write()等,你一定首先需要调用connectToHost()函数连接套接字到对等端。
套接字在每一次一个数据场写入网络的时候都会发射信号bytesWritten(),如果你仅仅是发射数据场,你不需要调用bind函数
信号readyRead()在数据场到大的时候都会发出,在这种情况下,函数hasPendingDatagrams()都会返回true,调用panedingDatagramSIze()函数来获得第一个挂起的数据场,然后使用函数readDatagram()和receiveDatagram()函数来读取它。

你可能感兴趣的:(Qt)