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