freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

課程設(shè)計(jì)--基于qt的局域網(wǎng)聊天室(編輯修改稿)

2024-12-13 20:33 本頁面
 

【文章內(nèi)容簡介】 break。 金陵科技學(xué)院課程設(shè)計(jì)報(bào)告 11 case ParticipantLeft: in userName localHostName。 participantLeft(userName,localHostName,time)。 break。 case FileName: break。 case Refuse: break。 } } } 服務(wù)器端主要程序代碼分析 // 開始發(fā)送數(shù)據(jù) void TcpServer::sendMessage() //是 connect 中的槽函數(shù) { uiserverSendBtnsetEnabled(false)。 //當(dāng)在傳送文件的過程中,發(fā)送按鈕不可用 clientConnection = tcpServernextPendingConnection()。 //用來獲取一個(gè)已連接的 TcpSocket //bytesWritten 為 qint64 類 型,即長整型 connect(clientConnection, SIGNAL(bytesWritten(qint64)), //? this, SLOT(updateClientProgress(qint64)))。 uiserverStatusLabelsetText(tr(開始傳送文件 %1 ! ).arg(theFileName))。 localFile = new QFile(fileName)。 //localFile 代表 的是文件內(nèi)容本身 if(!localFileopen((QFile::ReadOnly))){ QMessageBox::warning(this, tr(應(yīng)用程序 ), tr(無法讀取文件 %1:\n%2) .arg(fileName).arg(localFileerrorString()))。//errorString是系統(tǒng)自帶的信息 return。 金陵科技學(xué)院課程設(shè)計(jì)報(bào)告 12 } TotalBytes = localFilesize()。//文件總大小 //頭文件中的定義 QByteArray outBlock。 QDataStream sendOut(amp。outBlock, QIODevice::WriteOnly)。//設(shè)置輸出流屬性 (QDataStream::Qt_4_7)。//設(shè)置 Qt 版本,不同版本的數(shù)據(jù)流格式不同 ()。 // 開始計(jì)時(shí) QString currentFile = (() //currentFile 代表所選文件的文件名 (39。/39。)1)。 //qint64(0)表示將 0 轉(zhuǎn)換成 qint64 類型 ,與 (qint64)0 等價(jià) //如果是,則此處為依次寫入總大小信息空間,文件名大小信息空間,文件名 sendOut qint64(0) qint64(0) currentFile。 TotalBytes += ()。//文件名大小等信息 +實(shí)際文件大小 //()為返回 io 設(shè)備的當(dāng)前設(shè)置, seek(0)表示設(shè)置當(dāng)前 pos 為 0 ()seek(0)。//返回到 outBlock 的開始,執(zhí)行覆蓋操作 //發(fā)送總大小空間和文件名大小空間 sendOut TotalBytes qint64((() sizeof(qint64)*2))。 //qint64 bytesWritten。bytesToWrite 表示還剩下的沒發(fā)送完的數(shù)據(jù) //clientConnectionwrite(outBlock)為套接字將內(nèi)容發(fā)送出去,返回實(shí)際發(fā)送出去的字節(jié)數(shù) bytesToWrite = TotalBytes clientConnectionwrite(outBlock)。 (0)。//why?? } 客戶端主要程序代碼分析 // 創(chuàng)建新連接 void TcpClient::newConnect() { blockSize = 0。 tcpClientabort()。 //取消已有的連接 tcpClientconnectToHost(hostAddress, tcpPort)。//連接到指定 ip地址和端口的主機(jī) ()。 } 金陵科技學(xué)院課程設(shè)計(jì)報(bào)告 13 // 讀取數(shù)據(jù) void TcpClient::readMessage() { QDataStream in(tcpClient)。 //這里的 QDataStream 可以直接用 QTcpSocket 對象做參數(shù) (QDataStream::Qt_4_7)。 float useTime = ()。 if (bytesReceived = sizeof(qint64)*2) { //說明剛開始接受數(shù)據(jù) if ((tcpClientbytesAvailable() //bytesAvailable 為返回將要被讀取的字節(jié)數(shù) = sizeof(qint64)*2) amp。amp。 (fileNameSize == 0)) { 金陵科技學(xué)院課程設(shè)計(jì)報(bào)告 14 五、結(jié)論 本文使用面向?qū)ο蟪绦蛟O(shè)計(jì)思想,設(shè)計(jì)開發(fā) QT 聊天系統(tǒng)。聊天系統(tǒng)要完成的任務(wù)就是提供用戶操作界面,方便用戶之間在局域網(wǎng)的環(huán)境下相互通信。程序的核心是通過基于 TCP/IP 的 Socket 來實(shí)現(xiàn)消息傳遞的通信部分。通過此次課程設(shè)計(jì)的鍛煉,提高了我們解決實(shí)際問題的能力,讓我們能更加從容地面對未來的工作。 金陵科技學(xué)院課程設(shè)計(jì)報(bào)告 15 六、參考文獻(xiàn) [1] 霍亞飛 .Qt 及 Qt Quick 開發(fā)實(shí)戰(zhàn)精解 .北京航空航天大學(xué)出版社 ,2020;15512 [2] 布蘭切特 (Jasmin Blanchette)等 .C++GUI Programming with Qt4[ M] .第二版 .電子工業(yè)出版社 ,2020: 22330 金陵科技學(xué)院課程設(shè)計(jì)報(bào)告 16 七、附錄 關(guān)鍵代碼: : include include include QFile include QTcpServer include QTcpSocket include QMessageBox include QFileDialog include QDebug TcpServer::TcpServer(QWidget *parent) : QDialog(parent), ui(new Ui::TcpServer) { uisetupUi(this)。 setFixedSize(350,180)。 tcpPort = 6666。 tcpServer = new QTcpServer(this)。 connect(tcpServer, SIGNAL(newConnection()), this, SLOT(sendMessage()))。 initServer()。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1