91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .bz2
    金幣: 2
    下載: 2 次
    發布日期: 2023-02-06
  • 語言: 其他
  • 標簽: QT??TCP??Network??

資源簡介

我做的一個TCP文件傳輸的工具,可以在網絡上傳輸任意大小的文件,最近在學習QT,希望有興趣的朋友一起交流一下。如果對這個工具的代碼有什么建設的發個郵件給我heqiangpc@sohu.com謝謝了。

資源截圖

代碼片段和文件信息

#include?“dialog.h“
#include?“ui_dialog.h“
#include?“nfclient.h“
#include?
#include?
#include?

Dialog::Dialog(QWidget?*parent)?:
????QDialog(parent)
????ui(new?Ui::Dialog)
{
sendBytes?=?0;
blockNumber?=?0;
maxBytes?=?0;
cleanQuit?=?true;
????ui->setupUi(this);
ui->progressBar->setRange(0?1000);
ui->progressBar->setValue(0);
}

Dialog::~Dialog()
{
????delete?ui;
}

void?Dialog::on_pushButtonBrow_clicked()
{
ui->lineEditFile->setText(QFileDialog::getOpenFileName(this?tr(“Open?File“)?tr(“.“)?tr(“All?Files?(*)“)));
}

void?Dialog::on_pushButtonSend_clicked()
{
cleanQuit?=?false;
sendBytes?=?0;
blockNumber?=?0;
maxBytes?=?0;
if(ui->lineEditTag->text().isEmpty()?||?ui->lineEditFile->text().isEmpty())
{
QMessageBox::information(this?tr(“Error“)?tr(“Tag?and?File?can?not?be?empty.“));
return;
}
ui->pushButtonSend->setEnabled(false);
nfClient*?client?=?new?nfClient(this);
connect(client?SIGNAL(disconnected())?client?SLOT(deleteLater()));
connect(client?SIGNAL(disconnected())?this?SLOT(on_socketDisconnected()));
connect(client?SIGNAL(fileSize(qint64))?this?SLOT(setProccessBar(qint64)));
connect(client?SIGNAL(bytesWritten(qint64))?this?SLOT(updateProccessBar(qint64)));
connect(client?SIGNAL(message(QString))?this?SLOT(updateStatusLabel(QString)));
connect(client?SIGNAL(onerror(qint32))?this?SLOT(on_socketError(qint32)));
client->sendFile(ui->lineEditFile->text()?ui->lineEditTag->text());
}

void?Dialog::updateProccessBar(qint64?v)
{
blockNumber?++;
sendBytes?+=?v;
ui->progressBar->setValue(sendBytes);
qDebug()?< <}

void?Dialog::updateStatusLabel(const?QString?&status)
{
QString?st;
st?=?“Status:?“?+?status;
ui->labelStatus->setText(st);
}

void?Dialog::setProccessBar(qint64?r)
{
maxBytes?=?r;
ui->progressBar->setRange(0?r-1);
}

void?Dialog::on_socketDisconnected()
{
ui->progressBar->setRange(0?100);
ui->progressBar->setValue(100);
ui->pushButtonSend->setEnabled(true);
cleanQuit?=?true;
}

void?Dialog::on_pushButtonQuit_clicked()
{
if(cleanQuit)
close();
else
{
if(QMessageBox::warning(this?tr(“Are?you?sure!“)
?tr(“You?have?file?transting.\nAre?you?sure?you?want?quit?“)
?QMessageBox::Ok?QMessageBox::Cancel)?==?QMessageBox::Ok)
close();
}
}

void?Dialog::on_socketError(qint32?e)
{
switch(e)
{
case?1:
QMessageBox::warning(this?tr(“Error“)
?QString::fromUtf8(“目標名錯誤!\n請輸入有效的主機名或IP地址。“)
?QMessageBox::Close);
break;
case?2:
QMessageBox::warning(this?tr(“Error“)
?QString::fromUtf8(“文件名錯誤!\n請輸入有效的文件名及路徑。“)
?QMessageBox::Close);
break;
case?3:
QMessageBox::warning(this?tr(“Error“)
?QString::fromUtf8(“連接目標服務器失敗!\n請檢查網絡連接,如果問題依然存在請聯系目標服務器管理員。“)
?QMessageBox::Close);
}
ui->pushButtonSend->setEnabled(true);
}

評論

共有 條評論