当前位置: 代码迷 >> QT开发 >> Qt tcp 多线程下QTCPsocket不能发送数据~解决办法
  详细解决方案

Qt tcp 多线程下QTCPsocket不能发送数据~解决办法

热度:68   发布时间:2016-04-25 04:51:47.0
Qt tcp 多线程下QTCPsocket不能发送数据~
工程文件MainWindow.pro文件~
在实现QTCPsocket的基本功能(连接服务器,(不循环)发送数据)~
但是接受不到数据(有readyread()信号)

添加qt类     mythread类;并且在mainwindow头文件中包含此类的头文件
(类中包含QTCPsocket文件和QTCPsocket   *p_socket指针,和要发生的数据char   sendbuff[])

在mainwindow类中   实现线程循环时,实例一个mythread的对象,并对其赋值;

mythread.senbuf   =   mainwindow的数组
mythread.p_sendbuff   =   mainwindow的QTCPsocket   指针

我企图用上面的代码来传递指针和要发送的数组;

但是代码怎么也发送不过去~~(mythread数组的值已经传递过来,但是指针的值我不敢确定)

还有就是在mainwindow类中的QTCPsocket   指针读不出来数据(有readyread()信号);

到了现在我实在是无招了~~

所以上来问问,请大仙们给点指导和意见~

还请大仙不灵赐教     (附代码~)


[code=C/C++]
//MAINWINDOW   头文件

#ifndef   MAINWINDOW_H
#define   MAINWINDOW_H
#include   <QSettings>
#include   <QMainWindow>
#include   <QAction>
#include   <QtNetwork/QTcpSocket>
#include   <configdialog.h>
//#include   <QByteArray>
#include   <mythread.h>
#include   <defaultdialog.h>


struct   message_stream{
        unsigned   char               protocol_version;                                               //1BYTE
        QByteArray                           message_type;                                                         //2BYTE
        QByteArray                           message_length;                                                 //2BYTE
        QByteArray                           parameter_type;                                                 //2BYTE
        QByteArray                           parameter_length;                                       //2BYTE
        QByteArray                           parameter_Value;                                         //不定长
};

namespace   Ui   {
class   MainWindow;
}

class   MainWindow   :   public   QMainWindow
{
        Q_OBJECT

public:
        explicit   MainWindow(QWidget   *parent   =   0);
        ~MainWindow();
        QSettings                     *p_longfile;                                     //
  相关解决方案