[英]QT QTcpSocket not receiving any data
我正在Qt Creator中編寫一個C ++項目,並且有一個QTcpSocket
。 它連接正常,但是即使我從用C#編寫的另一個項目向它發送數據時, bytesAvailable()
也始終zero
。 我測試了C#項目實際上是通過使用另一個C#項目發送數據的,並且它可以正確發送數據。 這是我的代碼:
#include <QTcpSocket>
#include <QDebug>
void main()
{
QTcpSocket *tcpSocket=new QTcpSocket();
tcpSocket->connectToHost("127.0.0.1",8080);
while(true)
{
if(tcpSocket->bytesAvailable()!=0)
{
qDebug()<<tcpSocket<-bytesAvailable();
}
}
tcpSocket->disconnectFromHost();
}
謝謝。 :d
首先,所有Qt程序都需要一個應用程序對象來建立框架的許多內部結構。 將以下內容作為您的第一條語句:
QCoreApplication app(argc, argv);
其次,在Qt中進行網絡編程的普通方法是使用事件處理系統。 由於您似乎不需要,所以應該改用阻塞函數,以便操作系統有機會告訴您的應用程序數據已經到達。
在嘗試從套接字讀取之前,必須使用waitForReadyRead()
。
閱讀文檔以獲取有關阻塞和非阻塞API函數的更多詳細信息。
你應該換行
if(tcpSocket->bytesAvailable!=0)
至
if(tcpSocket->bytesAvailable()!=0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.