写了一个QT程序和一个C程序,如何把QT程序里发出的QByteArray类型数据,让C程序接收到或者是处理识别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写了一个QT程序和一个C程序,如何把QT程序里发出的QByteArray类型数据,让C程序接收到或者是处理识别?相关的知识,希望对你有一定的参考价值。

部分程序如下:(用到了tcp协议)
QT部分:
QByteArray bump;
QTcpSocket->write(bump);

C部分:
uchar GsmRcvAt[50];

就是把bump 数据装到 GsmRcvAt 就行,(我不知道如何变换类型)

参考技术A 首先先写好cpp和头文件,在当前目录下依次执行qmake -project,qmake,make即可编译。追问

程序我基本写好了,从单片机传过来的数据在qt上能识别,但是qt传数据给单片机,不知道如何处理了。。。。。。

QT程序socket的readyRead信号不触发

我写了一个qt网络程序,在程序里有一个线程thread,thread的run中new了一个qtcpsocket。
代码很长,我大概意思一下:
run()

socket = new QTcpSocket();
connect(socket,SIGNAL(readyRead()),this,SLOT(onRead()));
while(1)

死循环



编译通过以后,运行时发现readyRead信号根本没有发出,但是用端口监听工具可以看到这个socket是有接收到数据的。
是否跟死循环有关?不改变线程的死循环结构的话,我应该怎样做才能让socket发出readyRead信号?

参考技术A 不要随便搞死循环,这是一个不好的习惯,还有你要先监听啊,才能连接这个函数,还有我这个项目刚做过,和你的定义差不多,你也是做后台的?追问

这是qtcpsocket不是qtcpserver,不需要listen的吧。
这个死循环是功能决定的,没办法。

追答

m_tcpSocket = m_tcpServer->nextPendingConnection(); //得到每个连进来的socket
自己看吧,

本回答被提问者采纳
参考技术B run()exec();

以上是关于写了一个QT程序和一个C程序,如何把QT程序里发出的QByteArray类型数据,让C程序接收到或者是处理识别?的主要内容,如果未能解决你的问题,请参考以下文章

用qt如何创建多文档界面的应用程序

我在windows下用QT写了个程序,把这个源代码直接在linux下编译可以吗?

QT程序socket的readyRead信号不触发

QT C++,如何在在一个CPP里直接调用到另一个CPP里的函数

qt中如何同步应用程序和显示器的刷新率?

QT应用程序(动态编译)如何查看链接了哪些.dll文件?