編寫一個簡單的應用程序與PC Qt應用程序與Android設備進行通信。在Qt套接字寫入數據未到達服務器
在我的應用程序的初始啓動,成功地能夠連接到Android應用程序。
我的信號:
connect(socket, SIGNAL(connected()),this, SLOT(connected()));
connect(socket, SIGNAL(readyRead()),this, SLOT(readyRead()));
void MyApp::connected()
{
qDebug() << "connected...";
socket->write("Init Connection \n");
socket->flush();
}
void MyApp::readyRead()
{
QString readData;
qDebug() << "reading...";
while(socket->bytesAvailable())
readData= socket->readAll();
qDebug()<<"Read Finished";
if(socket->isWritable())
{
qDebug()<<"Yes Writable";
socket->write("New Data");
socket->flush();
}
else
qDebug()<<"No Writable";
}
在connected
方法socket->write
成功和Android應用程序能夠讀取數據,但在readyRead
,socket->write
將返回寫入的字節數,但沒有達到的Android應用程序。
注意:在應用程序關閉或套接字關閉時,會在運行Android應用程序的服務器端讀取數據。
如果需要更多數據,告訴我。
編輯:
1.Android應用在平板電腦和Qt PC應用程序運行。兩者都在同一個網絡(Intranet)上運行。在一個程序中創建Qtcpscoket
。
3.Created ServerSocket
上機器人應用,並在socket>connectToHost(server_ip,portNo,QIODevice::ReadWrite);
Qt的應用 onConnected
方法是called.subsequently socket->write("Init Connection \n");
在Android應用被讀出。
請多顯示一下,比如你如何創建套接字?它是什麼樣的插座?如果TCP套接字,你如何接受新的連接?你如何收到數據?你怎麼知道'寫'成功了?也許錯誤不在PC C++程序中,而是在Android程序中? – 2014-10-16 10:13:48
@joachim:請參閱我的編輯。 – 2014-10-16 10:24:07
@JoachimPileborg:我認爲Android端沒有問題,因爲同一個應用程序從Android客戶端套接字接收數據。 – 2014-10-16 10:26:49