FTP文件管理项目 项目日报(六)

FTP文件管理项目 项目日报(六)

进度

计划完成
用户注册,找回密码,修改密码的发包和解包用户注册,找回密码,修改密码的发包和解包

问题

暂无

解决方案

暂无

明日计划

1.了解Qt下文件操作部分的内容
2.了解Qt线程类的内容

技术点记录

//用户修改密码的发送和修改密码应答包的解析

//修改密码按钮槽函数
connect(this->amend_btn,SIGNAL(clicked()),this,SLOT(amend()));

//发送修改密码请求
void Amend_widget::amend()
{
    sendamend = new SendPack;

    //获取包体数据,此处为id和密码
    char* phone;
    QByteArray ba = phone_edit->text().toLatin1();
    phone=ba.data();

    sendamend->send_amendpack(id_edit->text().toInt(),pwd_edit->text().toInt(),phone);

    tcpclient->write(sendamend->getData());

    C_Pwd_t *nbody = (C_Pwd_t*)sendamend->getBody();
    qDebug()<<"再次确认发送的id"<<nbody->id;
    qDebug()<<"再次确认发送的pwd"<<nbody->pwd;
    qDebug()<<"再次确认发送的phone"<<nbody->phone;

    //开启读取应答包
    connect(tcpclient,SIGNAL(readyRead()),this,SLOT(readamend()));
}

//读取修改密码应答包
void Amend_widget::readamend()
{
//这里打包和解包 是用的用一个对象,这样可以直接调用,省的分别用两个打包解包的对象去打包解包
    sendamend->unpack();

    res_cpwd_t * body = (res_cpwd_t*)sendamend->getBody();

    qDebug()<<body->change_ret;

    //判断修改密码标志位
    if(body->find_ret == 0)
    {
        if(QMessageBox::Ok==QMessageBox::question(this,"提示","密码修改成功",QMessageBox::Ok))
        {
            disconnect(tcpclient,SIGNAL(readyRead()),this,SLOT(readamend())); //关闭当前读取函数
            return;
        }
    }
    else
    {
        if(QMessageBox::Ok==QMessageBox::question(this,"提示","密码修改失败",QMessageBox::Ok))
        {
            disconnect(tcpclient,SIGNAL(readyRead()),this,SLOT(readamend()));
            return;
        }
    }
}

//打包
bool PacketBase::pack()
{
    memcpy(m_Data, &this->Head, sizeof(packet_header_t));
    memcpy(m_Data + sizeof(packet_header_t), this->Body, sizeof(Body)); //这个Body长度在封包的时候定
    memcpy(m_Data + sizeof(packet_header_t) + sizeof(Body), &this->Tail, sizeof(packet_tali_t));
    return true;
}

//解包
bool PacketBase::unpack()
{
    Body = new char[m_Size];    //防止越界可以在这里下手
    memcpy(&this->Head, m_Data, sizeof(packet_header_t));
    memcpy(Body, m_Data + sizeof(packet_header_t), sizeof(Body));
    memcpy(&this->Tail, m_Data + sizeof(packet_header_t) + sizeof(Body), sizeof(packet_tali_t));
    return true;
}

感想

这两周一直在做模数电实验,明后天又要模电数电考试了,接下来两天的进度应该会慢下来。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值