java qt服务器/客户端数据传输

发布于 2025-01-01 16:59:57 字数 696 浏览 3 评论 0原文

我创建了一个客户端(由JAVA创建)和一个服务器(由qt/c++创建),但是我遇到了数据传输问题(我认为格式有问题)。

服务器端代码:

void Pirate::DateArrived()
{
QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());  
QDataStream in (socket);
qDebug()<< socket->bytesAvailable();// here it give me the number of chars i sent in this ex:3
QString cmd ;
in >> cmd;
qDebug()<< cmd.size(); // here it always stay 0
qDebug() << cmd; // always ""

}
public void SendData(String data) throws IOException
    {
        OutputStream theOutput = socket.getOutputStream();
        OutputStreamWriter out = new OutputStreamWriter(theOutput);
        out.write("abc");
        out.flush();
    }

I created a client (created by JAVA) and a server (by qt/c++), but I have a data transfer problem (something wrong with format I think).

The server side code:

void Pirate::DateArrived()
{
QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());  
QDataStream in (socket);
qDebug()<< socket->bytesAvailable();// here it give me the number of chars i sent in this ex:3
QString cmd ;
in >> cmd;
qDebug()<< cmd.size(); // here it always stay 0
qDebug() << cmd; // always ""

}
public void SendData(String data) throws IOException
    {
        OutputStream theOutput = socket.getOutputStream();
        OutputStreamWriter out = new OutputStreamWriter(theOutput);
        out.write("abc");
        out.flush();
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

本宫微胖 2025-01-08 16:59:57

根据 docs,当您反序列化 QString,预计数据将包含以字节为单位的字符串长度 (quint32),后跟 UTF-16 格式的数据。

According to the docs, when you deserialize a QString, it is expected that the data will consist of the string length in bytes (quint32) followed by the data in UTF-16.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文