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

正文內(nèi)容

即時(shí)通信系統(tǒng)的開發(fā)與設(shè)計(jì)畢業(yè)設(shè)計(jì)(論文)(文件)

 

【正文】 系統(tǒng)開發(fā)關(guān)鍵技術(shù)及開發(fā)環(huán)境 3 2 系統(tǒng)開發(fā)關(guān)鍵技術(shù)及開發(fā)環(huán)境 及 qtcreator 開發(fā)環(huán)境 簡(jiǎn)介 Qt 是一個(gè)跨平臺(tái)應(yīng)用程序和 UI 開發(fā)框架。但是由于 Qt 為開源框架,得到了眾多開發(fā)者的支持,因此 qt的普及也在近千萬(wàn)開發(fā)人員的基礎(chǔ)上,再次的得到發(fā)展。當(dāng) 一個(gè)特定事件發(fā)生的時(shí)候,一個(gè)信號(hào)被發(fā)射。 信號(hào)和槽的機(jī)制是類型安全的:一個(gè)信號(hào)的簽名必須與它的接收槽的簽名相匹 配。Qt 的信號(hào)和槽的機(jī)制可以保證如果你把一個(gè)信號(hào)和一個(gè)槽連接起來(lái),槽會(huì)在正確的時(shí)間使用信號(hào)的參數(shù)而被調(diào)用。它包括一個(gè)可視化調(diào)試工具和集成的 GUI 版面和外形設(shè)計(jì)師。在 20xx年 1月 16 號(hào)被 Sun 公司收購(gòu)。這些編程語(yǔ)言包括 C、 C++、 Eiffel、 Java、 Perl、 PHP、 Python、 Ruby 和 Tcl等; MySQL 還支持多線程,充分利用 CPU 資源 并且優(yōu)化了 SQL 查詢算 法,有效地提高查詢速度 。 目前 Inter 上 流 行 的 網(wǎng) 站 構(gòu) 架 方 式 是 LAMP( Linux+Apache+MySQL+PHP),即使用 Linux 作為操作系 統(tǒng), Apache 作為 Web 服務(wù)器, MySQL 作為數(shù)據(jù)庫(kù), PHP 作為服務(wù)器端腳本解釋器。該服務(wù)將保證數(shù)據(jù)能夠?qū)崿F(xiàn)無(wú)差錯(cuò)、無(wú)重復(fù)發(fā)送,并按順序接收。數(shù)據(jù)報(bào)套接字使用 UDP( User Datagram Protocol) 協(xié)議 進(jìn)行數(shù)據(jù)的傳輸。 IP 網(wǎng)際協(xié)議 IP是 TCP/IP 的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。 高層的 TCP 和 UDP 服務(wù)在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。這個(gè)選項(xiàng)是為了測(cè)試而存在的,說(shuō)明了它可以被用來(lái)欺騙系統(tǒng)來(lái)進(jìn)行平常是被禁止的連接。 TCP 數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。 DNS 在某些情況下使用 TCP(發(fā)送和接收域名數(shù)據(jù)庫(kù)),但使用 UDP 傳送有關(guān)單個(gè)主機(jī)的信息。與我們所熟知的 TCP(傳輸控制協(xié)議)協(xié)議一樣, UDP 協(xié)議直接位于 IP(網(wǎng)際協(xié)議)協(xié)議的頂層。 UDP 協(xié)議適用 端口 分別運(yùn)行在同一臺(tái)設(shè)備上的多個(gè) 應(yīng)用程序 。 攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)開發(fā)關(guān)鍵技術(shù)及開發(fā)環(huán)境 7 c/s 模式介紹 C/S 結(jié)構(gòu),即大家熟知的客戶機(jī)和 服務(wù)器 結(jié)構(gòu)。 C/S 結(jié)構(gòu)的基本原則是將計(jì)算機(jī)應(yīng)用任務(wù)分解成多個(gè)子任務(wù),由多臺(tái)計(jì)算機(jī)分工完成,即采用 “ 功能分布 ” 原則。 C/S 結(jié)構(gòu)的優(yōu)點(diǎn)是能充分發(fā)揮 客戶端 PC的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。二者可分別稱為前臺(tái)程序與后臺(tái)程序。在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立進(jìn)行的,并且通常把那些不同的(不管是已知還是未知的)前臺(tái)應(yīng)用所不能違反的規(guī)則,在服務(wù)器程序中集中實(shí)現(xiàn),例如訪問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必須有 客戶 才能建立定單這樣的規(guī)則。 攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)開發(fā)關(guān)鍵技術(shù)及開發(fā)環(huán)境 8 隨著互聯(lián)網(wǎng)的飛速發(fā)展, 移動(dòng)辦公 和分布式辦公越來(lái)越普及,這需要我們的系統(tǒng)具有擴(kuò)展性。特別是有很多分部或?qū)Yu店的情況,不是工作量的問(wèn)題,而是路程的問(wèn)題?;蛘卟贿m用于 微軟 新的操作系統(tǒng)等等,更不用說(shuō) Linux、 Unix 等。 C/S 架構(gòu)的劣勢(shì)還有高昂的維護(hù)成本且投資大。 多線程技術(shù)介紹 多線程 是指從軟件或者硬件上實(shí)現(xiàn)多個(gè)線程并發(fā)執(zhí)行的技術(shù)。即便處理器只能運(yùn)行一個(gè)線程,操作系統(tǒng)也可以通過(guò)快速的在不同線程之間進(jìn)行切換,由于時(shí)間間隔很小,來(lái)給用戶造成一種多個(gè)線程同時(shí)運(yùn)行的假象。除此之外,許多系統(tǒng)及處理器也支持硬件多線程技術(shù)??蛻舳艘揽糠?wù)器獲取所需的網(wǎng)絡(luò)資源,服務(wù)器為客戶端提供必需的網(wǎng)絡(luò)資源。 好友管理模塊:實(shí)現(xiàn)好友的分組顯示、添加好友、刪除好友、查看好友資料。 系統(tǒng)友好性 登錄界面、聊天窗口、好友信息資料界面、好友在線狀態(tài)界面要美觀簡(jiǎn)潔,友好大方, 操作簡(jiǎn)單合理恰當(dāng)。 數(shù)據(jù)需求分析 本系統(tǒng)服務(wù)器端需要用到 MySQL 數(shù)據(jù)庫(kù);以此來(lái)存放用戶的個(gè)人信息、用戶好友攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)設(shè)計(jì) 12 列表、客戶端與服務(wù)器通信的登錄信息及網(wǎng)絡(luò)連接信息。在線程中實(shí)行數(shù)據(jù)庫(kù)中的用戶信息賬戶和密碼的比對(duì),判斷登錄認(rèn)證通過(guò)與否及用戶是否在線;認(rèn)證通過(guò)后將用戶的好友列表及用戶的個(gè)人信息返回給客戶端之后才能實(shí)現(xiàn)正常在線、好友聊天、添加好友、刪除好友、修改個(gè)人信息等操作。 刪除好友:服務(wù)器收到刪除好友請(qǐng)求后將好友從數(shù)據(jù)庫(kù)中的好友列表刪除。 攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)設(shè)計(jì) 14 用戶登錄:從客戶端輸入登錄信息判斷賬號(hào)密碼不為空時(shí)才向服務(wù)器發(fā)送登錄請(qǐng)求。 好友分組:客戶端登錄服務(wù)器驗(yàn)證通過(guò)后,客戶端收到來(lái)自服務(wù)器的好友列表信息,客戶端對(duì)好友進(jìn)行分組顯示及好友狀態(tài)顯示。 刪除好友:用戶在好友列表的好友信息一欄上點(diǎn)擊右鍵即可實(shí)現(xiàn)好友的的刪除。服務(wù)器收到請(qǐng)求后就發(fā)送連接信息給相應(yīng)的客戶端,客戶端利用此連接信息與好友實(shí)現(xiàn)通信聊天。 myThread 類主要實(shí)現(xiàn)通信的處理,即從客戶端接收請(qǐng)求消息、數(shù)據(jù)庫(kù)處理、向客戶端發(fā)送消息。 (root)。 qDebug()()。 } MainWindow w。其關(guān)鍵代碼如下: void MainWindow::openServer() { if(!serverlisten(QHostAddress::LocalHost,9901)) { QMessageBox::critical(this,tr(多線程服務(wù)器 ), tr(無(wú)法啟動(dòng): %1.).arg(servererrorString()))。 uidisplayEditsetText(serverserverAddress().toString())。 connect(mythread,SIGNAL(sendchatFinishSignal()),this,SLOT(updateChatMsgSlot()))。 connect(thismythreadtcpsocket,SIGNAL(disconnected()),thismythread,SLOT(disconnectProcees()))。msg) void 數(shù)據(jù)庫(kù)處理 信號(hào): 攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn) 18 客戶端在失去連接時(shí)調(diào)用 disconnectProcees()槽函數(shù)更新數(shù)據(jù)庫(kù)信息 關(guān)鍵代碼: QSqlQuery query(db)。 qDebug()()。 ()。 Widget 類實(shí)現(xiàn)用戶登錄界面,與服務(wù)器建立連接,向服務(wù)器發(fā)送請(qǐng)求消息以及接收服務(wù)器反饋的消息,通過(guò)信號(hào)與槽關(guān)聯(lián)其他類的槽函數(shù)和信號(hào)。) void 獲取好友列表信號(hào) registerSuccessSignal(Messageamp。 registerForm 類實(shí)現(xiàn)用戶注冊(cè)界面的創(chuàng)建。Data) void 向服務(wù)器發(fā)送消息 addFriendslot() void 創(chuàng)建添加好友界面 friendInforForm void 創(chuàng)建好友信息界面 信號(hào) 返回值 功能 createFriendChat(chatwithFriendamp。msg) void 刪除好友信息的信號(hào) startChatSignal(Message amp。 =uiuserlineEdittext()。 }else { QMessageBox::about(this,用戶登錄狀態(tài) ,用戶正在登錄中 ...)。t be empty。 =uiagelineEdittext().toInt()。 =uiphonelineEdittext()。 qDebug()e 。 QImage image(:/new/prefix1/image/4 (2).png)。 //用戶信息欄 groupbox1=new QGroupBox。 nicklabel=new QLabel。 vlayout1=new QVBoxLayout。 hlayout1addWidget(imagelabel)。//去除邊框 //好友列表欄 toolbox=new QToolBox。 groupbox2setLayout(hlayout2)。 hlayout3=new QHBoxLayout。 defaultButtonsetText(修改個(gè)人資料 )。 //整體布局 vlayout2=new QVBoxLayout。 setLayout(vlayout2)。 friendlist1=MYFRIENT。 thissetMaximumSize(300,650)。 攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn) 25 thissetBackgroundImage(groundimag)。//綁定當(dāng)前用戶的 ip 地址和端口號(hào) thisuserid=。 thisip=。 qDebug()recUdpsocket bind is success?recUdpSocketbind(port,QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint)。 qDebug()port isport。 qDebug()mainform has start.....ready get local userid,ip,port。//無(wú)邊框 //thissetAttribute(Qt::WA_TranslucentBackground,true)。 (:/new/prefix1/background/e25fc3e464caad511dcb52cf0b0466e)。//室友 friendlist3=NETFRIENT。 toolboxaddItem(friendlist2,室友 )。 vlayout2addWidget(groupbox2)。 groupbox3setLayout(hlayout3)。 addfriendButtonsetText(添加好友 )。 攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn) 24 //工具表欄 addfriendButton=new QToolButton。 hlayout2=new QHBoxLayout。 groupbox1setLayout(hlayout1)。 vlayout1addWidget(nicklabel)。 imagelabelsetPixmap(QPixmap::fromImage(image))。 useridlabel=new QLabel。 friendlist2=new ListWidget。 } } 如圖 所示: 圖 客戶端注冊(cè)界面 主界面實(shí)現(xiàn)主界面窗體的創(chuàng)建綁定 udp 套接字,接收 udp 數(shù)據(jù)報(bào)文 關(guān)鍵代碼: Form::Form(QWidget *parent,personInfo amp。 =uiusernamelineEdittext()。 =uiidiographTextEdittoPlainText()。 } else { =REGISTER。amp。 =server。//取消所有連接 tcpsocketconnectToHost(,9901)。pi) void 創(chuàng)建好友聊天界面 recUdpMessage() void 接收聊天消息 ListWidget 類主要的槽及信號(hào): 槽及主要成員函數(shù) 返回值 功能 scan_friendSlot() void 獲取好友 id,改變消息類型 deleteactionSlot() void 獲取好友 id,改變消息類型 startChatSlot() v
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1