我在 Windows 上用 Qt 制作了一个 TCP 服务器,我想让我的 android 应用程序与服务器讨论。我能够将我的应用程序与服务器连接,现在我想向服务器发送一个数据包,我找到了一种方法,但我将不得不更改几乎所有服务器代码源。解决方案是在 android 中使用 aoutputStream
或 a DataStream
,我确切地知道如何使用 Qt,但我不知道,我也找不到 Java 的等价物,有人可以帮助我吗?谢谢你 :)
服务器的代码:
QDataStream in(idClient);
if (tailleMessage == 0)
{
if (idClient->bytesAvailable() < (int) sizeof(quint16))
return;
in >> tailleMessage;
}
if (idClient->bytesAvailable() < tailleMessage)
return;
in >> type;
tailleMessage = 0;
我的 Windows 客户端的代码:
QByteArray typeToServer;
QDataStream typeOut(&typeToServer, QIODevice::WriteOnly);
QString type = typeDonnees;
typeOut << (quint16) 0;
typeOut << type;
typeOut.device()->seek(0);
typeOut << (quint16) (typeToServer.size() - sizeof(quint16));
socket->write(typeToServer);
我想用我的安卓应用程序而不是(如果我使用此代码,我将强制更改我的服务器和我的窗口客户端的代码,以便readLine
):
String str = text01.getText().toString();
int a= str.length();
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(a);
out.println(str);