QTcpSocket 相关知识总结
1. 连接服务器
m_tcpSocket->connectToHost("127.0.0.1", 9877);
connected = m_tcpSocket->waitForConnected();
只有使用waitForConnected()后,QTcpSocket才真正尝试连接服务器,并返回是否连接的结果。
2. 写数据
m_tcpSocket->write(str.toStdString().c_str(),
strlen(str.toStdString().c_str()));
m_tcpSocket->waitForBytesWritten();
当使用waitForBytesWritten()后,QTcpSocket才真正发送数据。
m_tcpSocket->write(str1.toStdString().c_str(),
strlen(str1.toStdString().c_str()));
m_tcpSocket->write(str2.toStdString().c_str(),
strlen(str2.toStdString().c_str()));
的结果是发送了str1str2
3. 断开与服务器的连接
m_tcpSocket->disconnectFromHost()
m_tcpSocket->waitForDisconnected()
4. 善于使用QTcpSocket的SIGNAL:connected(), disconnected(),
error(QAbstractSocket::SocketError)
配合自定义私有开关变量bool connected, QTimer
可以实现自动重连接等逻辑。