《十六》QT TCP协议工作原理和实战

        Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTcpSocket组件实现基于TCP的网络通信功能。

   QTcpSocketQTcpServer是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。

以下是QTcpSocket类的一些常用函数:

函数 描述
QTcpSocket() 构造函数,创建一个新的QTcpSocket对象。
~QTcpSocket() 析构函数,释放QTcpSocket对象及其资源。
void connectToHost(const QString &hostName, quint16 port) 尝试与指定主机名和端口建立连接。
void disconnectFromHost() 断开与主机的连接。
QAbstractSocket::SocketState state() const 返回套接字的当前状态。
QHostAddress peerAddress() const 返回与套接字连接的远程主机的地址。
quint16 peerPort() const 返回与套接字连接的远程主机的端口。
QAbstractSocket::SocketError error() const 返回套接字的当前错误代码。
qint64 write(const char *data, qint64 maxSize) 将数据写入套接字,返回实际写入的字节数。
qint64 read(char *data, qint64 maxSize) 从套接字读取数据,返回实际读取的字节数。
void readyRead() 当套接字有可供读取的新数据时发出信号。
void bytesWritten(qint64 bytes) 当套接字已经写入指定字节数的数据时发出信号。
void error(QAbstractSocket::SocketError socketError) 当套接字发生错误时发出信号。

以下是QTcpServer类的一些常用函数及其简要解释:

函数   

描述
QTcpServer()   构造函数,创建一个新的QTcpServer对象。
~QTcpServer()    析构函数,释放QTcpServer对象及其资源。
bool listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0)    开始监听指定的地址和端口。
void close()      停止监听并关闭服务器。
bool isListening() const   返回服务器是否正在监听连接。
QList<QTcpSocket*> pendingConnections()    返回等待处理的挂起连接的列表。
virtual void incomingConnection(qintptr socketDescriptor)      当有新连接时调用,可以在子类中实现以处理新连接。
void maxPendingConnections() const    返回允许的最大挂起连接数。
void setMaxPendingConnections(int numConnections)    设置允许的最大挂起连接数。
QNetworkProxy proxy() const    返回服务器的代理设置。
void setProxy(const QNetworkProxy &networkProxy)    设置服务器的代理设置。
QAbstractSocket::SocketError serve
  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值