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

正文內(nèi)容

基于qt的局域網(wǎng)聊天系統(tǒng)設(shè)計(jì)論文(完整版)

2025-01-04 21:48上一頁面

下一頁面
  

【正文】 local area work chat System based on Qt ABSTRACT With the rapid development of Inter technology, online chat is not a new thing in today, but most of the online chat with the server on the Inter, which caused many problems for those with largescale internal work users, such as a waste of work resources encountered work attacks, the spread of virus, destroy the defense system. Convenient munication between the internal works users need to develop a LANbased messaging tools, realtime LAN chat system to achieve the exchange of information in the internal work. The system is the use of Qt technology to implement a LAN chat software, plete realtime chat and transfer a simple file functions. The system uses the most basic C + + language, plete interface development with Qt technology, and use TCP / IP and UDP munication protocols to municate. TCP / IP munication, file transfer, chat between the information with UDP traffic transmission. KEY WORDS : Qt, TCP / IP munication,UDP munication III 目 錄 中文摘要 …………………………………………………………………………… ..………… Ⅰ 英文摘要 ……………………………………………………………………… ……………… ..Ⅱ 1 引言 …………………………………………………………………………………… ...……… 1 課題背景 …………………………………………………………………… ...… ..… 1 國內(nèi)外研究的現(xiàn)狀 ……………………………………………………… ....…… 1 本課題研究的意義 ……………………………...…………………… .....……… 1 系統(tǒng)設(shè)計(jì)目標(biāo) ……………………………………………………………………… 2 2 Qt 介紹 ………………………………………………………………………………… ……… 3 功能介紹 …………………………………………………………………………… .3 歷史及發(fā)展 ………………………………………………………………………… 3 平臺(tái)搭建 ……...………………………………….……...……………… ...……… ...4 3 關(guān)鍵技術(shù)分析 ……………………………………………………………………………… 7 TCP/IP………………………………………………………………………………… 7 UDP……………………………………………………………………………………… 7 C/S 架構(gòu) …………………………………………………………………………… ..8 信號(hào)與槽機(jī)制 …………………………………………………………………… ..9 4 系統(tǒng)設(shè)計(jì) …………………………………………………………………………………… 13 系統(tǒng)總體架構(gòu) ……………………………………………………………...…… .13 Socket 運(yùn)用 ……………………………………………………………………… 13 界面設(shè)計(jì) ………………………………………………………………………… ...14 5 設(shè) 計(jì)實(shí)現(xiàn) …………………………………………………………………………………… 16 IV 獲取用戶信息 …………………………………………………………………… 16 字體顏色 ……………………………………………………… ..………………… .19 消息記錄 ………………………………………………………………………… ...21 消息發(fā)送與接收 ……………………………………………………………… ...22 文件的傳輸與接收 …………………………………………………………… ..25 6 編譯與測(cè)試 ………………… …………………………………… ...…………………… ....29 編譯 ………………………………………………………………………………… ..29 測(cè)試 ………………………………………………………………………………… ..23 小結(jié) ……………………………………………………………………………… ..… 30 結(jié)束語 ………………………………………………………………………………………… ...31 致謝 ……………………………………………………………………………………………… 32 參考文獻(xiàn) ………………………… …………………………………………………………… ..33 附錄 ……………………………………………………………………………………………… 34 1 1 引言 課題背景 即時(shí)通訊軟件的出現(xiàn)正在逐漸改變?nèi)藗兊臏贤ㄅc交際方式。 本 系統(tǒng) 主要是 運(yùn) 用 Qt 技術(shù)來實(shí)現(xiàn)一個(gè) linux 下的 局域網(wǎng)聊天軟件 ,完成即時(shí)聊天并傳輸簡(jiǎn)單的文件功能。局域網(wǎng)聊天系統(tǒng)可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)連接,在連接并通信時(shí),尤其是近程的即時(shí)通訊,徹底的脫離了遠(yuǎn)程的服務(wù)器,避免了和遠(yuǎn)程服務(wù)器連接時(shí)過多的浪費(fèi)網(wǎng)絡(luò)資源。 這些應(yīng)用對(duì)局域網(wǎng)的信息吞吐、處理能力的要求也越來越高。 系統(tǒng)設(shè)計(jì)目標(biāo) 基于 Qt 的局域網(wǎng)聊天系統(tǒng)設(shè)計(jì),主要 為需要局域網(wǎng)內(nèi)聊天的 Linux 用戶設(shè)計(jì)一個(gè)聊天平臺(tái); 本系統(tǒng)的目的是為了讓 Linux 系統(tǒng)下的局域網(wǎng)內(nèi)用戶 能隨時(shí)隨地通過網(wǎng)絡(luò)進(jìn)行 交流并能夠傳輸文件。 能夠 提供給應(yīng)用程序開發(fā) 者 建立藝術(shù)級(jí)的圖形用戶界面 所需的所有功能。 Haavard 早在 1988 年就對(duì) C++ GUI 編程產(chǎn)生 了濃厚的興趣,那時(shí)有一個(gè)瑞典的公司授權(quán)他開發(fā)一套 C++ GUI 框架。到 1993 年, Haavard 和 Eirik 已經(jīng)完成了 Qt 的第一個(gè)圖形內(nèi)核的開發(fā)并 4 能用它來實(shí)現(xiàn)一些 窗口部件 。它被設(shè)計(jì)用來運(yùn)行在嵌入式 Linux 設(shè)備上并提供了自己的窗口系統(tǒng)作 為 X11 的一個(gè)輕量級(jí)代替。 從奇趣誕生的第一天, Qt 的流行就從未減弱過,即使今天也仍在繼續(xù) 。 第 3 步:運(yùn)行 configure 在整個(gè)的編譯過程中, configure 這一步很關(guān)鍵。 第 5 步:安裝 Qt su c “make install” 然后輸入 root 密碼。 IP協(xié)議可以進(jìn)行 IP數(shù)據(jù)包的分割和組裝 , 但是通過 IP協(xié)議并不能清楚地了解到數(shù)據(jù)是否順利發(fā)送給目標(biāo)計(jì)算機(jī)。然而 UDP是無連接的 ,網(wǎng)絡(luò)負(fù) 荷小。與TCP 不同, UDP 并不提供對(duì) IP 協(xié)議的可靠機(jī)制、流控制以及錯(cuò)誤恢復(fù)功能等。 ( 2) 等待客戶請(qǐng)求到達(dá)該端口。 ( 3) 請(qǐng)求結(jié)束后關(guān)閉通信通道并終止。當(dāng)對(duì)象改變其狀態(tài)時(shí),信號(hào)就由該對(duì)象發(fā)射 (emit) 出去,這就是對(duì)象所要做的全部事情,它不知道另一端是誰在接收這個(gè)信號(hào)。只有 定義過這個(gè)信號(hào)的類及其派生類能夠發(fā)射這個(gè)信號(hào)。 void mySignalParam(int x,int y)。這 對(duì)于組件編程非常有用,你可以創(chuàng)建彼此互不了解的對(duì)象,將它們的信號(hào)與槽進(jìn)行連接以便信息能夠正確的傳遞。如果發(fā)射者與接收者屬于同一個(gè)對(duì)象的話,那么在 connect 調(diào)用中接收者參數(shù)可以省略。 信號(hào)與槽機(jī)制是比較靈 活的,但有些局限性我們必須了解,這樣在實(shí)際的使用過程中做到有的放矢,避免產(chǎn)生一些錯(cuò)誤。 4. 宏定義不能用在 signal 和 slot 的參數(shù)中。系統(tǒng)要求能夠?qū)崿F(xiàn)聊天功能,能夠傳輸文件,并能夠更改字體大小和顏色及文字加粗傾斜和下劃線功能。消息狀態(tài)欄包括清除聊天記錄和保存聊天記錄兩個(gè)部分。 QStringList list1 = (,)。 result = (Bill)。 QTableWidgetItem *ip = new QTableWidgetItem(ipAddress)。 uionlineUsersetText(tr(在線人數(shù): %1).arg(uitableWidgetrowCount()))。)。 uitableWidgetremoveRow(rowNum)。 if(()9) //如果字體大小出錯(cuò), 設(shè)置 最小的字體為 9 uifontsizeboBoxsetCurrentIndex(3)。 } //文字顏色設(shè)置: void Widget::on_textcolor_clicked() { color = QColorDialog::getColor(color,this)。 21 } //字體傾斜設(shè)置: void Widget::on_textitalic_clicked(bool checked) { uitextEditsetFontItalic(checked)。 } } 22 消息的發(fā)送和接受是本系統(tǒng)設(shè)計(jì)的最基礎(chǔ)的部分。 connect 函數(shù)來建立一個(gè)與 TCP 服務(wù)器的鏈接 int connect (int sockfd, const struct sockaddr *servaddr, socklen_t addrlen)。 uitextEditsetFocus()。 (udpSocketpendingDatagramSize())。 switch(messageType) { case Message: { in userName localHostName ipAddress message。也就是說,它能使一臺(tái)計(jì)算機(jī)上的數(shù)據(jù)無差錯(cuò)的發(fā)往網(wǎng)絡(luò)上的其他計(jì)算機(jī),所以當(dāng)要傳輸大量數(shù)據(jù)時(shí),我們選用 TCP 協(xié)議 。如果文件大小為 OK就認(rèn)為是文件傳輸完畢自動(dòng)斷開連接。 if(!localFileopen((QFile::ReadOnly))){//以只讀方式打開 26 QMessageBox::warning(this,tr(應(yīng)用程序 ),tr(無法讀取文件 %1:\n%2).arg(fileName).arg(localFileerrorString()))。/39。 (0)。當(dāng)出現(xiàn)錯(cuò)誤時(shí)發(fā)出 error()信號(hào),我們執(zhí)行 displayError()槽函數(shù)。 ()。 } if((tcpClientbytesAvailable() = fileNameSize) amp。 inBlock = tcpClientreadAll()。f39。 localFileclose()。 2, make 進(jìn)行編譯,生成可執(zhí)行文件。擁有很好的移植性。 在做這個(gè)項(xiàng)目的過程中,遇到的最大問題是無法解決發(fā)生中文時(shí)出現(xiàn)亂碼的問題。 因此,我覺得在學(xué)習(xí) QT 時(shí)應(yīng)該不斷地做項(xiàng)目。老師嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)的工作作風(fēng) , 將是伴隨我。 學(xué)習(xí)是艱難的,但無論學(xué)什么,只要有持之以恒的精神,就沒有學(xué)不好的知識(shí)。這也讓我認(rèn)識(shí)到 QT 的知識(shí)是多么博大精深,幾個(gè)月的學(xué)習(xí)是遠(yuǎn)遠(yuǎn)不夠的。實(shí)現(xiàn)資源共享是局域網(wǎng)聊天系統(tǒng)的一大優(yōu)勢(shì),希望在后來的學(xué)習(xí)中,我能夠?qū)崿F(xiàn)局域網(wǎng)的資源共享。傳輸文件時(shí),發(fā)送文件的一方為服務(wù)器端,接受文件的一方為客戶端, 服務(wù)器端和客戶端會(huì)開啟新的窗口。本次測(cè)試采用 Ubuntu系統(tǒng),在該系統(tǒng)下安裝的Qt creator有利于程序的編譯及運(yùn)行。f39。 (0)。 (fileNameSize != 0)){ infileName。 (QDataStream::Qt_4_6)。 27 tcpPort = 6666。而在服務(wù)器端,我們?cè)诎l(fā)送數(shù)據(jù)時(shí)就 要首先發(fā)送實(shí)際文件的大小信息,但是,文件的大小一開始是無法預(yù)知的,所以我們先使用了 out(quint16) 0。 sendOutqint64(0)qint64(0)currentFile。
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1