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

正文內(nèi)容

課程設(shè)計--基于qt的局域網(wǎng)聊天室-在線瀏覽

2025-01-10 20:33本頁面
  

【正文】 標準的 協(xié)議集 ,它是為 廣域網(wǎng) ( WAN)設(shè)計的。 TCP/IP 的標準在一系列稱為 RFC 的文檔中公布。公布一個文檔 時,該文檔被賦予一個 RFC編號,如 RFC959( FTP 的說明文檔)、 RFC793( TCP 的說明文檔)、 RFC791( IP 的說明文檔)等。因此,重要的是要確認你擁有了關(guān)于某個專題的最新 RFC 文檔。 TCP 與 UDP 的區(qū)別 : 協(xié)議面向連接, UDP 協(xié)議面向非連接; 協(xié)議傳輸速度慢, UDP 協(xié)議傳輸速度快 有丟包重傳機制, UDP 沒有; 協(xié)議保證數(shù)據(jù)正確性, UDP 協(xié)議可能丟包 系統(tǒng)的總體設(shè)計 界面設(shè)計 金陵科技學院課程設(shè)計報告 7 圖 1 主界面 軟件左邊那大塊是聊天內(nèi)容顯示界面,這里局域網(wǎng)相當于 qq 中的 qq 群,即群聊。簡單的說,當用戶發(fā)送信息給別人時就是客戶端,當接收別人的信息是就可以看做是服務(wù)器端。 界面執(zhí)行顯示功能,包括打開、發(fā)送、關(guān)閉功能。客戶端有自己的窗口,都金陵科技學院課程設(shè)計報告 9 可以單獨向服務(wù)器端發(fā)送狀態(tài)信息。 客戶端的界面響應(yīng)用戶的操作時,可以向服務(wù)器報告自己的信息。 接收端流程: 圖 5 接收端流程 各個模塊的具體實現(xiàn)過程 主界面設(shè)計主要代碼分析 // 接收 UDP 信息 void Widget::processPendingDatagrams() { //hasPendingDatagrams 返 回 true 時表示至少有一個數(shù)據(jù)報在等待被讀取 while(udpSockethasPendingDatagrams()) 金陵科技學院課程設(shè)計報告 10 { QByteArray datagram。 //將讀取到的不大于 ()大小數(shù)據(jù)輸入到 ()中, ()返回的是一個字節(jié)數(shù)組中存儲 //數(shù)據(jù)位置的指針 udpSocketreadDatagram((), ())。datagram, QIODevice::ReadOnly)。 //此處的 int 為 qint32,在 Qt中, qint8 為 char, qint16 為 uint in messageType。 QString time = QDateTime::currentDateTime() .toString(yyyyMMdd hh:mm:ss)。\039。 uimessageBrowsersetTextColor(Qt::blue)。//設(shè)置字體大小 // uimessageBrowserappend([ +userName+ ] + time)。 uimessageBrowserappend(message)。 case NewParticipant: in userName localHostName ipAddress。 break。 participantLeft(userName,localHostName,time)。 case FileName: break。 } } } 服務(wù)器端主要程序代碼分析 // 開始發(fā)送數(shù)據(jù) void TcpServer::sendMessage() //是 connect 中的槽函數(shù) { uiserverSendBtnsetEnabled(false)。 //用來獲取一個已連接的 TcpSocket //bytesWritten 為 qint64 類 型,即長整型 connect(clientConnection, SIGNAL(bytesWritten(qint64)), //? this, SLOT(updateClientProgress(qint64)))。 localFile = new QFile(fileName)。//errorString是系統(tǒng)自帶的信息 return。//文件總大小 //頭文件中的定義 QByteArray outBlock。outBlock, QIODevice::WriteOnly)。//設(shè)置 Qt 版本,不同版本的數(shù)據(jù)流格式不同 ()。/39。 //qint64(0)表示將 0 轉(zhuǎn)換成 qint64 類型 ,與 (qint64)0 等價 //如果是,則此處為依次寫入總大小信息空間,文件名大小信息空間,文件名 sendOut qint64(0) qint64(0) currentFile。//文件名大小等信息 +實際文件大小 //()為返回 io 設(shè)備的當前設(shè)置, seek(0)表示設(shè)置當前 pos 為 0 ()seek(0)。 //qint64 bytesWritten。 (0)。 tcpClientabort()。//連接到指定 ip地址和端口的主機 ()。 //這里的 QDataStream 可以直接用 QTcpSocket 對象做參數(shù) (QDataStream::Qt_4_7)。 if (bytesReceived = sizeof(qint64)*2) { //說明剛開始接受數(shù)據(jù) if ((tcpClientbytesAvailable() //bytesAvailable 為返回將要被讀取的字節(jié)數(shù) = sizeof(qint64)*2) amp。 (fileNameSize == 0)) { 金陵科技學院課程設(shè)計報告 14 五、結(jié)論 本文使用面向?qū)ο蟪绦蛟O(shè)計思想,設(shè)計開發(fā) QT 聊天系統(tǒng)。程序的核心是通過基于 TCP/IP 的 Socket 來實現(xiàn)消息傳遞的通信部分。 金陵科技學院課程設(shè)計報告 15 六、參考文獻 [1] 霍亞飛 .Qt 及 Qt Quick 開發(fā)實戰(zhàn)精解 .北京航空航天大學出版社 ,2020;15512 [2] 布蘭切特 (Jasmin Blanchette)等 .C++GUI Programming with Qt4[ M] .第二版 .電子工業(yè)出版社 ,2020: 22330 金陵科技學院課程設(shè)計報告 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)。 tcpPort = 6666。 connect(tcpServer, SIGNAL(newConnection()), this, SLOT(sendMessage()))。 } TcpServer::~TcpServer() { delete ui。 TotalBytes = 0。 bytesToWrite = 0。 uiprogressBarreset()。 uiserverSen
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1