私はQTプログラミングの初心者です。これで、Android フォンから QT ソケット サーバーが実行されているローカル コンピューターにデータを転送する 1 つのプロジェクトができました。私の問題は、オブジェクトをシリアル化して Android フォンから送信する方法を知っていますが、QT エンドでそれを受信する方法がわかりません。どんな助けでも私にとって素晴らしいでしょう、ありがとう!
コードの一部を以下に示します: Android コード:
public void SendDataToNetwork(Infor std_infor) throws IOException { //You run this from the main thread.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(std_infor);
oos.close();
byte[] bytes = baos.toByteArray();
try {
if (nsocket.isConnected()) {
nos.write(bytes);
} else {
Log.i("AsyncTask", "SendDataToNetwork: Cannot send message. Socket is closed");
}
} catch (Exception e) {
Log.i("AsyncTask", "SendDataToNetwork: Message send failed. Caught an exception");
}
}
}
std_infor は、4 つの文字列変数を持つオブジェクトです。
Qt サーバー:
void MainWindow::startRead()
{
char* rec = new char[client->readBufferSize()];
qDebug()<<client->readBufferSize();
QByteArray data = client->readAll();
qDebug()<<data;
}