簡體   English   中英

QT QTcpSocket沒有收到任何數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM