开发者社区> 问答> 正文

有哪位大神做过qt socket和java socket互传文件吗??报错

发现qt socket 能连接上java socket,但不能读取数据,arrayData大小为负,用c++ socket就能够接收数据,Qt直接调用C++ socket会报错,客户要求Qt,求有经验的大神教教我

QByteArray arrayData= tcpSocket->readAll();
if (arrayData.isEmpty())
{
        qDebug("receive data success!!!");
}

 

展开
收起
爱吃鱼的程序员 2020-06-06 10:29:10 561 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        网络数据的本质是二进制数据。 跟使用QT,还是JAVA无关。你可以wireshark抓包DEBUG 
                    
    
                        <p>按字节流传输,与语言不相关</p>
                    
    
                        <blockquote> 
    

    QByteArray arrayData= tcpSocket->readAll();
    if (arrayData.isEmpty())
    {
            qDebug("receive data success!!!");
    }

     首先你上面的代码只有在接收不到数据的时候才会打印receive data success!!!,这个逻辑很奇怪;

    其次是socket通讯传输的是二进制数据,看你的代码应该是使用的是tcp协议,如果tcp连接成功的情况下,不会收不到数据,这和你使用什么语言没有关系

                        <p>看下是不是有大小端区别?</p>
    
    2020-06-06 10:29:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载

相关镜像