赞
踩
功能:
- QTcpSocket类提供一个TCP套接字
引入:
头文件 #include <QTcpSocket>
qmake QT += network
继承 QAbstractSocket 继承者 QSctpSocket 、QSslSocket 详细说明:
- TCP (Transmission Control Protocol)是一种可靠的、面向流的、面向连接的传输协议。它特别适合于数据的连续传输。
- QTcpSocket是QAbstractSocket的一个方便的子类,它允许您建立TCP连接并传输数据流。请参阅
QAbstractSocket
文档了解详细信息。- 注意:TCP套接字不能在
QIODevice::Unbuffered
模式下打开。
原型:
QTcpSocket::QTcpSocket(QObject *parent = nullptr)
- 1
功能:
- 创建状态为UnconnectedState的QTcpSocket对象
*See alsosocketType().
原型:
[virtual]QTcpSocket::~QTcpSocket()
- 1
功能:
- 销毁套接字,必要时关闭连接。
- See also
close().
功能:
- QTcpServer类提供了一个基于TCP的服务器。
引入:
头文件 #include <QTcpServer>
qmake QT += network
继承 QObject 继承者 QSctpServer 详细说明:
- 此类可以接受传入的TCP连接。您可以指定端口或让QTcpServer自动选择一个端口。您可以监听一个特定的地址或所有机器的地址。
- 调用listen()让服务器侦听传入的连接。然后,每当客户端连接到服务器时,就会发出newConnection()信号。
- 调用nextPendingConnection()接受挂起的连接作为已连接的QTcpSocket。该函数返回一个指向QAbstractSocket::ConnectedState中的QTcpSocket的指针,您可以使用该指针与客户端通信。
- 如果发生错误,serverError()返回错误的类型,可以调用errorString()来获取对发生的事情的人类可读的描述。
- 当侦听连接时,服务器正在侦听的地址和端口作为serverAddress()和serverPort()可用。
- 调用close()使QTcpServer停止侦听传入的连接。
- 尽管QTcpServer主要是为与事件循环一起使用而设计的,但也可以不使用事件循环而使用它。在这种情况下,您必须使用waitForNewConnection(),它将阻塞直到连接可用或超时。
原型:
QTcpServer::QTcpServer(QObject *parent = nullptr)
- 1
功能:
- 构造一个QTcpServer对象
- See also
listen()
andsetSocketDescriptor().
原型:
[virtual]QTcpServer::~QTcpServer()
- 1
功能:
- 销毁QTcpServer对象。如果服务器正在监听连接,套接字将自动关闭。
- 在删除服务器之前,任何仍然连接的客户端qtcpsocket必须断开连接或重新连接
- 参见
close()
。
原型:
void QTcpServer::close()
- 1
功能:
- 关闭服务器。服务器将不再监听传入的连接。
- See also
listen().
原型:
[signal]void QTcpServer::acceptError(QAbstractSocket::SocketError socketError)
- 1
功能:
- 这是一个信号
- 接受新连接导致错误时,将发出此信号。该socketError参数描述错误的发生的类型。
- 这个函数是在Qt 5.0中引入的。
- See also
pauseAccepting()
andresumeAccepting().
原型:
QString QTcpServer::errorString() const
- 1
功能:
- 返回上次发生的错误的错误码。
- 另请参见
errorString()
。
原型:
QAbstractSocket::SocketError QTcpServer::serverError() const
- 1
功能:
- 返回最近发生的错误的人类可读的描述。
- 另请参见
serverError()
。
原型:
[signal]void QTcpServer::newConnection()
- 1
功能:
- 这是一个信号
- 每当有新的连接可用时,都会发出此信号。
- See also
hasPendingConnections()
andnextPendingConnection().
原型:
void QTcpServer::setMaxPendingConnections(int numConnections)
- 1
功能:
- 将待处理的接受连接的最大数量设置为numConnections。在调用nextPendingConnection()之前,QTcpServer最多接受numConnections个传入连接。默认情况下,限制为30个挂起的连接。
- 服务器达到其最大未决连接数后,客户端仍可能能够连接(即QTcpSocket仍可以发出connectd()信号)。QTcpServer将停止接受新连接,但是操作系统仍可以将它们保持在队列中。
- 另请参见maxPendingConnections()和hasPendingConnections()。
原型:
[virtual]bool QTcpServer::hasPendingConnections() const
- 1
功能:
- 如果服务器有挂起的连接,则返回true;否则返回false。
- 另请参见
nextPendingConnection()
和setMaxPendingConnections()。
原型:
[protected]void QTcpServer::addPendingConnection(QTcpSocket *socket)
- 1
功能:
- 该函数由QTcpServer :: incomingConnection()调用,以将套接字添加到未决传入连接的列表中。
- 注意:如果你不想破坏挂起的连接机制,不要忘记从重新实现的incomingConnection()调用这个成员。
- 此功能在Qt 4.7中引入。
- 另请参见
incomingConnection()
。
原型:
int QTcpServer::maxPendingConnections() const
- 1
功能:
- 返回待处理的已接受连接的最大数目。默认值为30。
原型:
[virtual]QTcpSocket *QTcpServer::nextPendingConnection()
- 1
功能:
- 返回下一个挂起的连接,作为连接的QTcpSocket对象。
- 套接字是作为服务器的一个子对象创建的,这意味着当QTcpServer对象被销毁时,它会被自动删除。在使用完对象后,显式地删除它仍然是一个好主意,以避免浪费内存。
- 如果在没有挂起的连接时调用此函数,则返回nullptr。
- 注意:返回的QTcpSocket对象不能在另一个线程中使用。如果要使用来自另一个线程的传入连接,则需要重写incomingConnection()。
- 另请参见
hasPendingConnections()。
原型:
[virtual protected]void QTcpServer::incomingConnection(qintptr socketDescriptor)
- 1
功能:
- 当新连接可用时,此虚拟函数将由
QTcpServer
调用。该socketDescriptor
参数是接受的连接本地套接字描述符。- 基本实现创建一个QTcpSocket,设置套接字描述符,然后将QTcpSocket存储在挂起连接的内部列表中。最后,发出newConnection()。
- 重新实现此函数,以在连接可用时改变服务器的行为。
- 如果这个服务器正在使用QNetworkProxy,那么socketDescriptor可能不能用于本机套接字函数,而应该仅与QTcpSocket::setSocketDescriptor()一起使用。
- 注意:如果在重新实现该方法时创建了另一个套接字,则需要通过调用
addPendingConnection()
将其添加到挂起连接机制中。- 注意:如果您想在另一个线程中将传入的连接作为一个新的QTcpSocket对象来处理,您必须将socketDescriptor传递给另一个线程,并在那里创建QTcpSocket对象,并使用其setSocketDescriptor()方法。
- 另请参阅newConnection()、nextPendingConnection()和addPendingConnection()。
原型:
bool QTcpServer::waitForNewConnection(int msec = 0, bool *timedOut = nullptr)
- 1
功能:
- 最多等待msec毫秒,或直到传入连接可用。
- 如果连接可用则返回true;否则返回false。
- 如果操作超时且timedOut不是nullptr, *timedOut将被设置为true。
- 这是一个阻塞函数调用。在单线程GUI应用程序中不建议使用它,因为整个应用程序将停止响应,直到函数返回为止。waitForNewConnection()在没有事件循环时非常有用。
- 非阻塞替代方法是连接到newConnection()信号。
- 如果毫秒为-1,则此功能不会超时。
- 另请参见
hasPendingConnections()
和nextPendingConnection()。
原型:
void QTcpServer::pauseAccepting()
- 1
功能:
- 暂停接受新的连接。排队的连接将保留在队列中。
- 此功能是在Qt 5.0中引入的。
- 另请参见
resumeAccepting()
。
原型:
void QTcpServer::resumeAccepting()
- 1
功能:
- 恢复接受新连接
- 此功能是在Qt 5.0中引入的。
- 另请参见
pauseAccepting()
。
原型:
bool QTcpServer::setSocketDescriptor(qintptr socketDescriptor)
- 1
功能:
- 设置该服务器侦听到socketDescriptor的传入连接时应使用的套接字描述符。如果成功设置套接字,则返回true;否则返回false。
- 假定套接字处于侦听状态
- 另请参见
socketDescriptor()
和isListening()
。
原型:
qintptr QTcpServer::socketDescriptor() const
- 1
功能:
- 返回服务器用来监听传入指令的本机套接字描述符,如果服务器没有监听,则返回-1。
- 如果服务器正在使用QNetworkProxy,则返回的描述符可能不能用于本机套接字函数。
- 另请参见
setSocketDescriptor()
和isListening()
。
原型:
QHostAddress QTcpServer::serverAddress() const
- 1
功能:
- 如果服务器正在监听连接,则返回服务器的地址;否则返回QHostAddress::Null.。
- See also
serverPort()
andlisten().
原型:
quint16 QTcpServer::serverPort() const
- 1
功能:
- 如果服务器正在监听连接,则返回服务器的端口;否则返回0。
- See also
serverAddress()
andlisten().
原型:
bool QTcpServer::isListening() const
- 1
功能:
- 如果服务器当前正在监听传入的连接,则返回true;否则返回false。
- See also
listen().
原型:
bool QTcpServer::listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0)
- 1
功能:
- 告诉服务器侦听地址address和port port上的传入连接。如果port为0,则自动选择一个端口。如果address为QHostAddress :: Any,则服务器将在所有网络接口上侦听。
原型:
QNetworkProxy QTcpServer::proxy() const
- 1
功能:
- 返回此套接字的网络代理。默认情况下使用QNetworkProxy::DefaultProxy。
- 这个函数是在Qt 4.1中引入的。
- 另请参阅
setProxy()
和QNetworkProxy。
原型:
void QTcpServer::setProxy(const QNetworkProxy &networkProxy)
- 1
功能:
- 将此套接字的显式网络代理设置为networkProxy。
- 要禁用对此套接字使用代理,请使用·QNetworkProxy :: NoProxy代理类型:
server->setProxy(QNetworkProxy::NoProxy);
- 1
- 此功能在Qt 4.1中引入。
- 另请参见
proxy()
和QNetworkProxy。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。