我正在编写Qt TCP / IP客户端。我想在将数据发送到服务器之前检查与服务器的连接状态。 据我所知,我可以通过以下方法来做到这一点
哪个是好习惯。或任何其他方法。
提前致谢。
答案 0 :(得分:8)
QTCPSocket
派生自QAbstractSocket
,提供state()
功能。这将返回以下枚举之一: -
enum SocketState { UnconnectedState, HostLookupState, ConnectingState, ConnectedState, ..., ListeningState }
因此,假设m_pSocket是QTcpSocket
,你只需要检查它是否已连接: -
bool connected = (m_pSocket->state() == QTcpSocket::ConnectedState);
您可以添加布尔值并跟踪状态,但如果发生网络错误,您需要确保它始终与实际连接状态同步。