中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做淘寶先在批發(fā)網(wǎng)站上拿貨有趣的軟文

做淘寶先在批發(fā)網(wǎng)站上拿貨,有趣的軟文,即給做網(wǎng)站又給我們做推廣的公司呢,紀(jì)檢網(wǎng)站建設(shè)1、概述 源碼放在文章末尾 該項(xiàng)目實(shí)現(xiàn)了P2P的文件加密傳輸功能,具體包含如下功能: 1、 多文件多線程傳輸 2、rsaaes文件傳輸加密 3、秘鑰隨機(jī)生成 4、斷點(diǎn)續(xù)傳 5、跨域傳輸引導(dǎo)服務(wù)器 項(xiàng)目界面如下所示: 接收界面 發(fā)送界面 RSA秘鑰生成…

1、概述
源碼放在文章末尾

該項(xiàng)目實(shí)現(xiàn)了P2P的文件加密傳輸功能,具體包含如下功能:
1、 多文件多線程傳輸
2、rsa+aes文件傳輸加密
3、秘鑰隨機(jī)生成
4、斷點(diǎn)續(xù)傳
5、跨域傳輸引導(dǎo)服務(wù)器

項(xiàng)目界面如下所示:
接收界面
在這里插入圖片描述

發(fā)送界面
在這里插入圖片描述

RSA秘鑰生成,AES秘鑰生成
在這里插入圖片描述

項(xiàng)目部分代碼如下所示:


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <openssl/ssl.h>
#include <QFile>
#include <QDebug>#include <QString>
#include <openssl/ssl.h>
#include <openssl/sha.h>
#include <openssl/aes.h>#include <iostream>
#include <fstream>
#include<string>
#include<QFileDialog>
#include<QDateTime>
#include<QThread>using namespace std;
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//啟動(dòng)監(jiān)聽但是暫停接收連接serverStatus=false;tcpServer=new QTcpServer(this);//初始化文件接收服務(wù)器if(!tcpServer->listen(QHostAddress::Any,6666)){qDebug()<<tcpServer->errorString();close();}else {qDebug()<<"listening.....................";}connect(tcpServer,SIGNAL(newConnection()),this,SLOT(acceptConnection()));tcpServer->pauseAccepting();rsatool.rsaKeyInit();//初始化非對(duì)稱密鑰aestool.keyInit();//初始化對(duì)稱密鑰ui->aesview->setText(aestool.key);ui->rsapriview->setText(rsatool.priKey);ui->rsapubview->setText(rsatool.pubKey);ui->recvTable->setColumnCount(6);ui->recvTable->setRowCount(0);ui->recvTable->setHorizontalHeaderLabels(QStringList()<<"接收方"<<"發(fā)送方"<<"文件名"<<"文件大小"<<"時(shí)間"<<"進(jìn)度");ui->recvTable->setSelectionBehavior(QAbstractItemView::SelectRows);  //整行選中的方式ui->recvTable->setEditTriggers(QAbstractItemView::NoEditTriggers);   //禁止修改ui->recvTable->setSelectionMode(QAbstractItemView::SingleSelection);  //設(shè)置為可以選中單個(gè)ui->recvTable->verticalHeader()->setVisible(false);   //隱藏列表頭ui->recvTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);ui->recvTable->selectRow(0);ui->sendTable->setColumnCount(2);ui->sendTable->setRowCount(0);ui->sendTable->setHorizontalHeaderLabels(QStringList()<<"文件"<<"進(jìn)度");ui->sendTable->setSelectionBehavior(QAbstractItemView::SelectRows);  //整行選中的方式ui->sendTable->setEditTriggers(QAbstractItemView::NoEditTriggers);   //禁止修改ui->sendTable->setSelectionMode(QAbstractItemView::SingleSelection);  //設(shè)置為可以選中單個(gè)ui->sendTable->verticalHeader()->setVisible(false);   //隱藏列表頭ui->sendTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);}void MainWindow::displayError(QAbstractSocket::SocketError)
{QTcpSocket *tcpSocket = qobject_cast<QTcpSocket *>(sender());qDebug()<<tcpSocket->errorString();
}void MainWindow::acceptConnection(){QTcpSocket *tcpSocket=new QTcpSocket(this);tcpSocket=tcpServer->nextPendingConnection();connect(tcpSocket,SIGNAL(readyRead()),this,SLOT(revData()));connect(tcpSocket,SIGNAL(error(QAbstractSocket::SocketError)),SLOT(displayError(QAbstractSocket::SocketError)));}
//接收字符串
void MainWindow::revData(){QTcpSocket *tcpSocket = qobject_cast<QTcpSocket *>(sender());QString  tmp;QString re;char buf[16]={0},out[16]={0};char tou[sizeof(Head)];if(tableid.count(tcpSocket)==0){//判斷是不是第一次觸發(fā)。如果是就解析head信息int cols=ui->recvTable->columnCount();int rows=ui->recvTable->rowCount();tranStatus temp;Head head;QString path="D:/recv/";tcpSocket->read(tou,sizeof(Head));memcpy(&head, tou, sizeof(head));QString mid="";QFileInfo info((path+mid+QString(head.name)));while(info.exists()){//判斷是否出現(xiàn)重名文件mid=QString::number(rand()%100000);info.setFile(path+mid+QString(head.name));}tableid[tcpSocket].name=(path+mid+QString(head.name));tableid[tcpSocket].size=head.size;tableid[tcpSocket].row=rows;tableid[tcpSocket].step=0;ui->recvTable->insertRow(rows);//更新界面表格數(shù)據(jù)ui->recvTable->setItem(rows,0,new QTableWidgetItem(tcpSocket->localAddress().toString()));//接收ui->recvTable->setItem(rows,1,new QTableWidgetItem(tcpSocket->peerAddress().toString()));//發(fā)送ui->recvTable->setItem(rows,2,new QTableWidgetItem(tableid[tcpSocket].name));//文件名ui->recvTable->setItem(rows,3,new QTableWidgetItem(QString::number(tableid[tcpSocket].size)));//文件大小ui->recvTable->setItem(rows,4,new QTableWidgetItem(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ddd")));//時(shí)間ui->recvTable->setItem(rows,5,new QTableWidgetItem(QString::number(tableid[tcpSocket].step/tableid[tcpSocket].size)+"%"));strcpy(head.key,rsatool.rsaPubEncrypt(aestool.key,head.key).toUtf8());//將自己的對(duì)稱密鑰用公鑰加密發(fā)給對(duì)方tcpSocket->write((char*)&head,sizeof(head));
}ofstream outFile(tableid[tcpSocket].name.toLocal8Bit(),ios::binary |ios::app);  //以二進(jìn)制寫模式打開文件while(tcpSocket->read(out,16)){//每次讀取16個(gè)字節(jié)assert(aestool.aes256_decrypt(out, buf)==0);  //解密for(int j=0;j<buf[15];j++){tmp+=buf[j];outFile.put(buf[j]);tableid[tcpSocket].step++;//文件傳輸進(jìn)度}}outFile.close();//更新進(jìn)度ui->recvTable->setItem(tableid[tcpSocket].row,5,new QTableWidgetItem(QString::number(tableid[tcpSocket].step)+"/"+QString::number(tableid[tcpSocket].size)));}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_addFiles_clicked()
{int cols=ui->sendTable->columnCount();int rows=ui->sendTable->rowCount();QFileDialog *fileDialog = new QFileDialog(this);//定義文件對(duì)話框標(biāo)題fileDialog->setWindowTitle(QStringLiteral("選中文件"));//設(shè)置默認(rèn)文件路徑fileDialog->setDirectory(".");//設(shè)置文件過濾器fileDialog->setNameFilter(tr("File(*.*)"));//設(shè)置可以選擇多個(gè)文件,默認(rèn)為只能選擇一個(gè)文件QFileDialog::ExistingFilesfileDialog->setFileMode(QFileDialog::ExistingFiles);//設(shè)置視圖模式fileDialog->setViewMode(QFileDialog::Detail);//打印所有選擇的文件的路徑QStringList fileNames;if (fileDialog->exec()) {fileNames = fileDialog->selectedFiles();for(int i=0;i<fileNames.size();i++){sendlist.append({fileNames[i],0});ui->sendTable->insertRow(rows);qDebug()<<fileNames[i]<<endl;ui->sendTable->setItem(rows,i,new QTableWidgetItem("new"+QString::number(rows)));ui->sendTable->selectRow(rows);//ui->sendTable->setItem(rows,0,new QTableWidgetItem(tcpSocket->localAddress().toString()));//接收ui->sendTable->setItem(rows,0,new QTableWidgetItem(fileNames[i]));//文件名ui->sendTable->setItem(rows,1,new QTableWidgetItem("null"));rows++;//sendfile(fileNames[i]);}}
}
void MainWindow::on_sendFiles_clicked()
{for(int i=0;i<sendlist.size();i++){if(sendlist[i].second==0){ui->sendTable->setItem(i,1,new QTableWidgetItem("正在發(fā)送"));m_copiers.push_back(new CopyFileThread);m_copiers[m_copiers.size()-1]->set(i,sendlist[i].first,ui->Ipinput->text(),6666,rsatool,my.uid);//設(shè)置發(fā)送文件所需參數(shù)//m_copiers[m_copiers.size()-1]->initConnect();//建立連接,交換對(duì)稱密鑰connect( m_copiers[m_copiers.size()-1], SIGNAL(sendresult(int,int,QString)), this, SLOT(upsendresult(int,int,QString)));//建立發(fā)送結(jié)果回調(diào)m_copiers[m_copiers.size()-1]->start();}}
}void MainWindow::upsendresult(int row,int re,QString log){if(re==1){ui->sendTable->setItem(row,1,new QTableWidgetItem("發(fā)送完成"));}else{ui->sendTable->setItem(row,1,new QTableWidgetItem("發(fā)送失敗"));}ui->sendlog->append(log);sendlist[row].second=1;
}
void MainWindow::on_updateaes_clicked()
{aestool.keyInit();ui->aesview->setText(aestool.key);}void MainWindow::on_updatetrsa_clicked()
{rsatool.rsaKeyInit();ui->rsapriview->setText(rsatool.priKey);ui->rsapubview->setText(rsatool.pubKey);
}void MainWindow::on_onServer_clicked()
{if(serverStatus==false){tcpServer->resumeAccepting();ui->onServer->setText("正在監(jiān)聽....");serverStatus=true;}else{tcpServer->pauseAccepting();ui->onServer->setText("啟動(dòng)監(jiān)聽");serverStatus=false;}}

源碼下載

http://www.risenshineclean.com/news/3904.html

相關(guān)文章:

  • 東莞寮步在哪里北京排名seo
  • 京東網(wǎng)站建設(shè)的意義seo信息網(wǎng)
  • 如何做介紹監(jiān)控公司的網(wǎng)站怎么做網(wǎng)站推廣
  • 保定市做網(wǎng)站百度seo優(yōu)化及推廣
  • 廣州網(wǎng)站建設(shè)設(shè)計(jì)公司信息網(wǎng)頁設(shè)計(jì)效果圖及代碼
  • net做網(wǎng)站軟文推廣代表平臺(tái)
  • 怎樣做seo網(wǎng)站鏈接?xùn)|莞疫情最新情況
  • 在哪個(gè)網(wǎng)站有兼職做免費(fèi)發(fā)布推廣信息的b2b
  • 哈爾濱網(wǎng)站推廣公司有創(chuàng)意的網(wǎng)絡(luò)廣告案例
  • 私人精品貨源網(wǎng)站有哪些360收錄提交入口網(wǎng)址
  • 美術(shù)教育機(jī)構(gòu)網(wǎng)站建設(shè)方案萬網(wǎng)域名注冊(cè)
  • 網(wǎng)站建設(shè)注意哪些內(nèi)容如何百度收錄自己的網(wǎng)站
  • 網(wǎng)站域名空間費(fèi)用windows優(yōu)化大師好用嗎
  • 怎么做優(yōu)惠券網(wǎng)站電子商務(wù)主要干什么
  • 口紅機(jī)網(wǎng)站怎么做免費(fèi)的編程自學(xué)網(wǎng)站
  • 網(wǎng)站建站知識(shí)惠州seo外包平臺(tái)
  • 有哪些制作網(wǎng)站的公司嗎優(yōu)質(zhì)外鏈
  • 幼兒園主題活動(dòng)設(shè)計(jì)網(wǎng)絡(luò)圖優(yōu)化網(wǎng)站平臺(tái)
  • 做的好的中醫(yī)網(wǎng)站網(wǎng)絡(luò)游戲推廣公司
  • 網(wǎng)站應(yīng)用開發(fā)微博營銷案例
  • wordpress文章可見隱藏內(nèi)容全網(wǎng)seo優(yōu)化電話
  • 廣州網(wǎng)站建設(shè)開發(fā)團(tuán)隊(duì)查看百度關(guān)鍵詞價(jià)格
  • 建設(shè)小說網(wǎng)站的系統(tǒng)有哪些目前主流搜索引擎是哪種
  • 私人做網(wǎng)站費(fèi)用如何注冊(cè)域名及網(wǎng)站
  • 做網(wǎng)站1g網(wǎng)頁空間夠嗎百度推廣退款電話
  • 萬戶網(wǎng)站建設(shè)拉新app推廣接單平臺(tái)
  • 上海建筑建材業(yè)網(wǎng)招標(biāo)seo營銷推廣
  • 做家電家具回收用哪個(gè)網(wǎng)站好網(wǎng)絡(luò)營銷服務(wù)商
  • wordpress整合ldap重慶網(wǎng)站優(yōu)化公司
  • 怎么使用服務(wù)器做網(wǎng)站哪里可以引流到精準(zhǔn)客戶呢