QT中的TCP方法

1.Qt中找不到QTcpSocket.h的解決辦法:

在你的.pro文件中:
QT += network

2.http://blog.sina.com.cn/s/blog_4888f88101014euy.html

  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
    可以實現自動重連接等邏輯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章