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. Websockets無法連接到服務器
- 2. Qt無法連接到服務器
- 3. 碼頭Websockets無法連接到服務器
- 4. WebSockets服務器
- 5. 服務器到服務器的連接
- 6. WebSockets的服務器
- 7. 連接到UDP服務器
- 8. iphone連接到服務器
- 9. 連接到服務器
- 10. 連接到FTPS服務器
- 11. 連接到Linux服務器
- 12. 連接到SignalR服務器
- 13. Socket.io連接到服務器
- 14. 未連接到服務器
- 15. 連接到ftp服務器
- 16. 連接到服務器
- 17. Android服務連接到服務器
- 18. 碼頭9,websockets和服務器端關閉websocket連接
- 19. 爲什麼WebSockets使用握手與服務器連接?
- 20. jquery stomp websockets服務器重新連接重新初始化
- 21. websockets,express.js並且無法建立與服務器的連接
- 22. Websockets - 與另一臺服務器斷開連接?
- 23. 如何使用websockets連接兩個node.js服務器?
- 24. Qt客戶端 - 連接到C服務器
- 25. 爲什麼客戶端不連接到服務器? Qt
- 26. 是否可以連接QT到網絡遠程服務器?
- 27. Qt Visual Studio插件 - 「無法連接到QtAppWrapper服務器」
- 28. 將Qt與SSL連接到碼頭服務器
- 29. 將MySQL作爲鏈接服務器連接到SQL服務器
- 30. 部署python websockets服務器到Ubuntu
這是怎麼處理握手和東西?它是自動的嗎? – 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