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

正文內(nèi)容

即時(shí)通信系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-07-19 18:51 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 服務(wù)。以此來(lái)提高系統(tǒng)的安全性??蓴U(kuò)展性可以很容易擴(kuò)展系統(tǒng)功能和系統(tǒng)功能的更新。 數(shù)據(jù)需求分析 本系統(tǒng)服務(wù)器端需要用到MySQL數(shù)據(jù)庫(kù);以此來(lái)存放用戶的個(gè)人信息、用戶好友列表、客戶端與服務(wù)器通信的登錄信息及網(wǎng)絡(luò)連接信息。相關(guān)數(shù)據(jù)庫(kù)表如下:用戶信息表userinfo:名稱字段類型長(zhǎng)度說(shuō)明賬戶useridvarchar24Primary key ,not null密碼UserpwdVarchar24Not null昵稱userNickvarchar24Not null姓名userNamevarchar24Not null性別userSexvarchar24Not null年齡userAgeint 12Not null個(gè)人簽名iDiographvarchar48所在地cityvarchar24聯(lián)系方式phonenumbervarchar24在線狀態(tài)statusint12Other1Other2 Other3網(wǎng)絡(luò)連接表connectinfo:名稱字段類型長(zhǎng)度說(shuō)明賬戶(id)userIdvarchar24Primary key,not nullIp地址ipAddressvarchar24Not null端口Portint12Not null用戶登錄表friendtable:名稱字段類型長(zhǎng)度說(shuō)明當(dāng)前賬戶userIdvarchar24Primary key,Not null賬號(hào)friendidvarchar24not null備注remarkvarchar24好友類型friendkindint12好友總數(shù)friendtotalint12昵稱nicknamevarchar24好友狀態(tài)statusint12 系統(tǒng)設(shè)計(jì)本系統(tǒng)由服務(wù)器先啟動(dòng)。然后客戶端通過(guò)已經(jīng)注冊(cè)的賬號(hào)和密碼來(lái)登錄服務(wù)器,登錄成功后客戶端從服務(wù)器獲取用戶信息和好友列表,客戶端向服務(wù)器發(fā)送相應(yīng)的請(qǐng)求可以實(shí)現(xiàn)對(duì)用戶的信息修改、好友的添加、刪除、查看好友的資料、聊天等一系列操作。聊天時(shí)客戶端向服務(wù)器請(qǐng)求好友的連接信息,客戶端得到好友的連接信息后再利用此鏈接信息將聊天信息發(fā)送給好友.登錄驗(yàn)證:服務(wù)器接收客戶端發(fā)來(lái)的賬戶和密碼,創(chuàng)建一個(gè)通信線程來(lái)接收客戶端的請(qǐng)求。在線程中實(shí)行數(shù)據(jù)庫(kù)中的用戶信息賬戶和密碼的比對(duì),判斷登錄認(rèn)證通過(guò)與否及用戶是否在線;認(rèn)證通過(guò)后將用戶的好友列表及用戶的個(gè)人信息返回給客戶端之后才能實(shí)現(xiàn)正常在線、好友聊天、添加好友、刪除好友、修改個(gè)人信息等操作??蛻舳诉B接信息存儲(chǔ):客戶端登陸成功后將客戶端的賬號(hào)、ip地址以及端口號(hào)存入數(shù)據(jù)庫(kù)中的客戶端的連接信息表中,并將數(shù)據(jù)庫(kù)用戶信息表的中的用戶狀態(tài)置為1;當(dāng)客戶端退出登錄時(shí)將客戶端的賬號(hào)、ip地址及端口號(hào)從數(shù)據(jù)庫(kù)中的連接信息表中刪除,并將數(shù)據(jù)庫(kù)中用戶信息表中的用戶狀態(tài)置為0。用戶注冊(cè):客戶端發(fā)來(lái)注冊(cè)請(qǐng)求時(shí),服務(wù)器將用戶的注冊(cè)信息存入數(shù)據(jù)庫(kù)的用戶信息表中,并通知用戶注冊(cè)成功與否。添加好友:服務(wù)器收到添加好友請(qǐng)求后將好友存入數(shù)據(jù)庫(kù)中的好友列表。刪除好友:服務(wù)器收到刪除好友請(qǐng)求后將好友從數(shù)據(jù)庫(kù)中的好友列表刪除。查看好友信息:服務(wù)器收到查看好友信息請(qǐng)求時(shí),從數(shù)據(jù)庫(kù)中的用戶信息表中查詢好友信息,再將查詢的信息發(fā)送到對(duì)應(yīng)的用戶。修改用戶信息:服務(wù)器收到用戶信息修改請(qǐng)求時(shí)將相應(yīng)的數(shù)據(jù)庫(kù)中的用戶信息表更新。好友聊天:服務(wù)器收到聊天請(qǐng)求時(shí)在數(shù)據(jù)中查詢好友的連接信息并將好友的ip地址及端口號(hào)返回給用戶。用戶登錄:從客戶端輸入登錄信息判斷賬號(hào)密碼不為空時(shí)才向服務(wù)器發(fā)送登錄請(qǐng)求。用戶注冊(cè):客戶端在注冊(cè)界面填寫用戶注冊(cè)信息后在把填寫的信息發(fā)送給服務(wù)器。注冊(cè)成功后在登錄界面輸入賬號(hào)和密碼就可以登錄。用戶信息修改:客戶端點(diǎn)擊修改個(gè)人信息按鈕,出現(xiàn)填寫個(gè)人信息資料的窗體,將要修改的個(gè)人信息填寫到窗體的列表中,再將修改的個(gè)人信息發(fā)送到數(shù)據(jù)庫(kù)中。好友分組:客戶端登錄服務(wù)器驗(yàn)證通過(guò)后,客戶端收到來(lái)自服務(wù)器的好友列表信息,客戶端對(duì)好友進(jìn)行分組顯示及好友狀態(tài)顯示。雙擊分組可以展開(kāi)或收攏分組。添加好友:用戶在主界面點(diǎn)擊添加好友按鈕出現(xiàn)添加好友的界面。在該界面中填寫好友的賬號(hào)即可實(shí)現(xiàn)好友的添加。刪除好友:用戶在好友列表的好友信息一欄上點(diǎn)擊右鍵即可實(shí)現(xiàn)好友的的刪除。查看好友資料:用戶在好友列表的好友信息一欄上點(diǎn)擊右鍵,選擇查看資料就可以發(fā)送查看好友資料的請(qǐng)求。并將服務(wù)器發(fā)來(lái)的好友資料信息以列表的形式加入窗體顯示。聊天:用戶在好友列表的好友信息一欄上點(diǎn)擊右鍵,如果好友在線選擇聊天客戶端就會(huì)發(fā)送請(qǐng)求獲取好友的ip地址和端口號(hào)。服務(wù)器收到請(qǐng)求后就發(fā)送連接信息給相應(yīng)的客戶端,客戶端利用此連接信息與好友實(shí)現(xiàn)通信聊天。聊天時(shí)有聊天窗體,聊天窗體包括與好友聊天的聊天記錄顯示,用戶發(fā)送聊天信息的發(fā)送編輯區(qū)域及與哪個(gè)好友聊天的標(biāo)題。攀枝花學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn)4 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn)服務(wù)器主要有myServer類、myThread類和MainWindow類;其中MainWindow類主要實(shí)現(xiàn)服務(wù)器窗口顯示、開(kāi)啟、關(guān)閉。myServer類主要實(shí)現(xiàn)通信線程的創(chuàng)建、刪除。myThread類主要實(shí)現(xiàn)通信的處理,即從客戶端接收請(qǐng)求消息、數(shù)據(jù)庫(kù)處理、向客戶端發(fā)送消息。 服務(wù)器連接數(shù)據(jù)庫(kù)關(guān)鍵代碼: int main(int argc, char *argv[]){ QApplication a(argc, argv)。 db=QSqlDatabase::addDatabase(QMYSQL)。 (localhost)。 (root)。 (root)。 (db_user)。 bool ok=()。 qDebug()()。 qDebug()()。 if(ok) { qDebug()open database success。 } else { qDebug()error open database because().text()。 } MainWindow w。 ()。 return ()。} 當(dāng)服務(wù)器啟動(dòng)時(shí)創(chuàng)建服務(wù)器啟動(dòng)界面,點(diǎn)擊啟動(dòng)服務(wù)器進(jìn)入監(jiān)聽(tīng)狀態(tài),界面顯示服務(wù)器的ip地址和端口號(hào)。其關(guān)鍵代碼如下:void MainWindow::openServer(){ if(!serverlisten(QHostAddress::LocalHost,9901)) { QMessageBox::critical(this,tr(多線程服務(wù)器), tr(無(wú)法啟動(dòng):%1.).arg(servererrorString()))。 close()。 return。 }else { uiserverStatuslabelsetText(tr(服務(wù)器運(yùn)行在端口:%1.\n).arg(serverserverPort()))。 uidisplayEditsetText(serverserverAddress().toString())。 }}: 當(dāng)服務(wù)器接收連接請(qǐng)求時(shí)通過(guò)套接字描述符創(chuàng)建一個(gè)單獨(dú)的通信線程,當(dāng)客戶端失去連接時(shí)刪除該通信線程。其關(guān)鍵代碼如下:void myServer::iningConnection(int socketDescriptor){ mythread=new myThread(socketDescriptor,0)。 connect(mythread,SIGNAL(clientDisconnectSignal(QString)),mythread,SLOT(deleteLater()))。 connect(mythread,SIGNAL(sendchatFinishSignal()),this,SLOT(updateChatMsgSlot()))。 connect(mythread,SIGNAL(receiveChat(Messageamp。)),this,SLOT(getMsgFromList(Messageamp。)))。 connect(thismythreadtcpsocket,SIGNAL(disconnected()),thismythread,SLOT(disconnectProcees()))。 mythreadstart()。}myThread類的主要槽及信號(hào):槽:槽及成員函數(shù)返回值功能disconnectProcees()void客戶端失去連接時(shí)進(jìn)行相應(yīng)的數(shù)據(jù)庫(kù)處理receiveData()void接收客戶端的請(qǐng)求sendData(Message amp。msg)void響應(yīng)客戶端的請(qǐng)求,將反饋的信息發(fā)送給客戶端sqlProcess(Message amp。msg)void數(shù)據(jù)庫(kù)處理信號(hào):信號(hào)返回值功能loginSuccessSignal(Messageamp。)void登錄成功信號(hào)getFriendTable(Messageamp。)void獲取好友列表信號(hào)registerSuccessSignal(Messageamp。)void注冊(cè)成功的信號(hào)getinfoFinishSignal(Messageamp。)void獲取用戶成功信號(hào)clientDisconnectSignal(QString)void客戶端失去連接信號(hào)客戶端在失去連接時(shí)調(diào)用disconnectProcees()槽函數(shù)更新數(shù)據(jù)庫(kù)信息關(guān)鍵代碼:QSqlQuery query(db)。 (UPDATE userinfo SET status = 0 WHERE userid = :userid)。 (:userid,sourceid)。 ()。 qDebug()()。 qDebug()client id sourceidhas disconnect。 (delete from connectinfo where userid=:userid)。 (:userid,sourceid)。 ()。 qDebug()delete connectinfo table success。 emit clientDisconnectSignal(sourceid)。 客戶端實(shí)現(xiàn) 客戶端主要有addfriendForm類、chatForm 類、friendInfoForm類、ListWidget類、Form類、registerForm類和Widget類。Widget類實(shí)現(xiàn)用戶登錄界面,與服務(wù)器建立連接,向服務(wù)器發(fā)送請(qǐng)求消息以及接收服務(wù)器反饋的消息,通過(guò)信號(hào)與槽關(guān)聯(lián)其他類的槽函數(shù)和信號(hào)。ListWidget類實(shí)現(xiàn)創(chuàng)建好友列表及好友中右鍵菜單欄顯示及相應(yīng)功能的部分實(shí)現(xiàn)。addfriendForm類實(shí)現(xiàn)創(chuàng)建好友添加界面。chatForm類實(shí)現(xiàn)聊天界面的創(chuàng)建。registerForm類實(shí)現(xiàn)用戶注冊(cè)界面的創(chuàng)建。friendInfoForm類實(shí)現(xiàn)好友信息顯示界面的創(chuàng)建。Form類實(shí)現(xiàn)客戶端主界面的創(chuàng)建。Widget類主要的槽及信號(hào):槽及主要成員函數(shù)返回值功能 loginrequest()void登錄請(qǐng)求receiveData()void接收消息on_registerButton_clicked()void注冊(cè)賬號(hào)sendData(Message amp。Data)void向服務(wù)器發(fā)送消息addFriendslot()void創(chuàng)建添加好友界面friendInforFormvoid創(chuàng)建好友信息界面信號(hào)返回值功能createFriendChat(chatwithFriendamp。)void創(chuàng)建聊天界面信號(hào)Form類主要槽及信號(hào):槽及主要成員函數(shù)返回值功能createFriendchatSlot(chatwithFriend amp。pi)void創(chuàng)建好友聊天界面recUdpMessage()void接收聊天消息ListWidget類主要的槽及信號(hào):槽及主要成員函數(shù)返回值功能scan_friendSlot()void獲取好友id,改變消息類型deleteactionSlot()void獲取好友id,改變消息類型startChatSlot()void獲取好友id,改變消息類型,觸發(fā)startChatSignal(Message)信號(hào)getfriendid(QStrin
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1