#include "clientwidget.h"
#include "ui_clientwidget.h"
#include <QDebug>
#include <QMessageBox>
#include <QHostAddress>
ClientWidget::ClientWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ClientWidget)
{
    ui->setupUi(this);
    tcpSocket =new QTcpSocket(this);
    isStart=true;
    connect(tcpSocket,&QTcpSocket::readyRead,
            [=]()
    {
    //取出接受的内容
        QByteArray  buf= tcpSocket->readAll();
        if(true==isStart )
        {//接收头
            isStart=false;
            //解析头部信息       QString buf="hello##1024"
            //QString str="hello##1024";
            //str.section("##",0,0)以##间隔开,第零行开始,第零行结束
            //初始化
            fileName =QString(buf).section("##",0,0);
            fileSize= QString(buf).section("##",1,1).toInt();
            recvSize  = 0;
            //打开文件
            file.setFileName(fileName);
            bool isOK=file.open(QIODevice::WriteOnly);
            if(false==isOK)
            {
                qDebug()<<"WriteOnly error 38";
            }
        }
        else   //文件信息
        {
           qint64  len= file.write(buf);
            recvSize+=len;
            if(recvSize==fileSize)
            {
                file.close();
                QMessageBox::information(this,"完成","文件接收完成");
            }
        }
}
            );
   }
ClientWidget::~ClientWidget()
{
    delete ui;
}
void ClientWidget::on_buttonconnect_clicked()
{
    //获取服务器ip和端口
        QString ip=ui->lineEditIP->text();
        qint16 port=ui->lineEditPort->text().toInt();
        //主动和服务器建立连接
        tcpSocket->connectToHost(QHostAddress(ip),port);
}