我是 QT 编程的新手。现在我有一个项目,它将数据从 Android 手机传输到运行 QT 套接字服务器的本地计算机。我的问题是我知道如何序列化一个对象并将其从 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 是一个对象,其中有四个字符串变量。
Qt 服务器:
void MainWindow::startRead()
{
char* rec = new char[client->readBufferSize()];
qDebug()<<client->readBufferSize();
QByteArray data = client->readAll();
qDebug()<<data;
}