WYJ开怪 2020-09-07 10:33 采纳率: 0%
浏览 190
已采纳

QT使用QTcpSocket创建的客户端,出现野指针,怎么解决。

mainwindow.cpp

#include"QDebug"
#include"QRadioButton"
#include"Login.h"
#include"string.h"
#include <QtNetwork>
#include<QTcpSocket>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //建立套接字
    QTcpSocket *client = new QTcpSocket(this);
    Login login;
    //连接服务器
    client->connectToHost(QHostAddress("192.168.3.17"), 1234);
    client->open(QIODevice::ReadWrite);
        connect(ui->Login_pushButton,&QPushButton::clicked,[&](){
        if(ui->Teacher_Login_radioButton->isChecked() == true){

            //赋值id
            login.id = ui->User_ID_LienEdit->text().toInt();
            //赋值名字
            const char *strName = ui->User_Name_LienEdit->text().toLatin1().data();//用QStirng类型的toLatin1成员函数获得QByteArray类,然后通过QByteArray的data()成员函数获得这个数组的首地址
            strcpy_s(login.UserName,ui->User_Name_LienEdit->text().size()+1,strName);

            //赋值密码
            const char *strPW = ui->User_PassWord_LienEdit->text().toLatin1().data();//用QStirng类型的toLatin1成员函数获得QByteArray类,然后通过QByteArray的data()成员函数获得这个数组的首地址
            strcpy_s(login.PassWord,ui->User_Name_LienEdit->text().size()+1,strPW);
            qDebug()<<"工号为"<<login.id<<"的"<<login.UserName<<"老师登入"<<endl;

            const char * sendBuf = (const char*)&login;
            client->write(sendBuf);

            char recvBuf[1024] = {};

            int recvLen = client->read(recvBuf, sizeof(dataHeader));
            if (recvLen <= 0)
            {
                qDebug() << "已和服务器断开连接" << endl;
            }
            else
                {
                    dataHeader* dheader = (dataHeader *)recvBuf;
                     client->read(recvBuf + sizeof(dataHeader), dheader->datalength - sizeof(dataHeader));
                    LoginResult* ret = (LoginResult*)recvBuf;

                    if (ret->result == 1)
                    {
                        qDebug() << "登入成功" << endl;
                    }
                    else
                    {
                        qDebug() << "登入失败,请重新登入" << endl;
                    }
                }
        }

    });

}
  • 写回答

1条回答 默认 最新

  • 芒种、 2020-09-07 17:33
    关注

    哪里出现野指针,调试报错上传一下问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题