2013-08-29 34 views
0

我正在使用Qt並嘗試創建客戶端 - 服務器連接。每當我點擊我的客戶端應用程序中的按鈕時,套接字就會連接到服務器併發送一些數據。問題是我不知道如何接收數據。這些是我按鈕的插槽。Qt:服務器從套接字接收數據

void MainWindow::func_button_one(){ 
socket->connectToHost("127.0.0.1", 1324); 

if(socket->waitForConnected(1000)) { 
socket->write("button one has been pressed"); 
socket->waitForBytesWritten(1000); 
} 

else { 
    qDebug() << "Something terrible seems to have happened."; 
} 
} 

現在,在我的服務器應用程序中,我嘗試了這樣的事情。

void MainWindow::newConnection(){ 
QTcpSocket *socket = server->nextPendingConnection(); 

socket->waitForReadyRead(1000); 
qDebug() << "connection received"; 
qDebug() << socket->readAll(); 
socket->close(); 
} 

的連接是所有的權利,因爲「連接接收」消息顯示出來。那麼,我應該如何從客戶端接收數據呢? QTcpServer沒有任何read()函數。

回答

2

連接沒問題,因爲waitForReadyRead返回'true',或者連接不正常,因爲waitForReadyRead在1000ms後返回false。你怎麼知道它的區別?

更好地與信號異步工作。將你的套接字連接到'readyRead()'。或者至少測試waitForReadyRead的返回值。

相關問題