2
A
回答
3
在Qt中,至少有兩種方法。使用阻塞或非阻塞呼叫。如果使用非阻塞調用,則將您的信號「連接」到您正在使用的TcpSocket類的插槽。當某些數據到達時,您將觸發事件/回調。這不是一個完整的例子:
在您的.h文件中聲明
#include <QtNetwork>
...
class MyClient : public QObject
{
std::unique_ptr<QTcpSocket> tcpSocket_;
...
public slots:
void readTcpData();
...
然後在.cpp文件做這樣的事情:
MyClient::MyClient()
{
tcpSocket_ = std::unique_ptr<QTcpSocket>(new QTcpSocket(this));
connect(tcpSocket_.get(), SIGNAL(readyRead()), this, SLOT(readTcpData()));
}
void MyClient::readTcpData()
{
QByteArray rawData = tcpSocket_->readAll();
QString textData(rawData);
... do something with the received data.
}
要寫出你可以使用tcpSocket_-數據>寫(...)。 因此,只要數據到達,readReady()信號就會觸發readTcpData()函數,並且您知道有一些數據可用於從套接字讀取。 希望它有助於解決您的問題。祝你好運!
0
你可以看看QWebSockets,它使用Qt實現websockets。我也構建了客戶端和服務器socket.io類,這些類將很快開放。
相關問題
- 1. Qt無法連接到服務器
- 2. 服務器到服務器的連接
- 3. WebSockets的服務器
- 4. 如何讓nginx代理websockets沒有連續連接到後端服務器?
- 5. 連接到UDP服務器
- 6. 連接到服務器
- 7. iphone連接到服務器
- 8. Socket.io連接到服務器
- 9. 連接到服務器
- 10. 未連接到服務器
- 11. 連接到SignalR服務器
- 12. Android服務連接到服務器
- 13. 碼頭9,websockets和服務器端關閉websocket連接
- 14. jquery stomp websockets服務器重新連接重新初始化
- 15. Websockets - 與另一臺服務器斷開連接?
- 16. 爲什麼WebSockets使用握手與服務器連接?
- 17. 如何使用websockets連接兩個node.js服務器?
- 18. websockets,express.js並且無法建立與服務器的連接
- 19. 是否可以連接QT到網絡遠程服務器?
- 20. Qt Visual Studio插件 - 「無法連接到QtAppWrapper服務器」
- 21. Websockets發送垃圾到服務器
- 22. 將MySQL作爲鏈接服務器連接到SQL服務器
- 23. 通過Websockets連接到MySQL
- 24. 跨服務器的WebSockets
- 25. PHP服務器和websockets
- 26. websockets的主機服務器
- 27. Android模擬器連接到服務器
- 28. (psycopg2.OperationalError)無法連接到服務器:連接被拒絕服務器
- 29. 用於服務器到服務器連接的單個持久性TCP連接
- 30. MySQL連接器C API無法連接到MySQL服務器
這是怎麼處理握手和東西?它是自動的嗎? – James 2012-04-11 18:44:36
@詹姆斯是的。 QTcpSocket處理。它有幾個函數,如connectToHost(...,...),waitForConnected(),close()等。非常便利。使用QtAssistant並搜索QTcpSocket,或訪問Qt網站。 – mantler 2012-04-11 18:51:43
謝謝!我會看看並回復你。我已經upvoted暫時:) – James 2012-04-12 08:21:11