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

正文內(nèi)容

基于linux聊天客戶端模塊設(shè)計(jì)與實(shí)現(xiàn)論文終稿(編輯修改稿)

2025-07-15 14:17 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 信息。登陸界面:首先與服務(wù)器連接,如果連接失敗,文件描述符室一個(gè)非正數(shù),通過判斷,以對(duì)話框的形式通知用戶連接失敗。如果用戶名與密碼不匹配或者重復(fù)登陸,服務(wù)器端返回協(xié)議“error”,如果登陸成功,服務(wù)器返回協(xié)議“ok”,客戶端通過對(duì)協(xié)議的判斷切換到聊天界面。聊天界面:首先判斷客戶端需求,通過用戶的選擇,向服務(wù)器發(fā)送一系列已經(jīng)協(xié)商好的通信協(xié)議;如:選擇私聊則發(fā)送“所選用戶名+聊天內(nèi)容”,選擇群聊則發(fā)送“All+聊天內(nèi)容”。2.接收來自服務(wù)器端的信息。通過服務(wù)器端的分析,服務(wù)器會(huì)向客戶端發(fā)送信息,同時(shí)客戶端當(dāng)監(jiān)聽到有信息可接收時(shí),會(huì)讀出相應(yīng)信息存放到內(nèi)存當(dāng)中。3.完成客戶端包括注冊(cè)、登錄、聊天三大板塊。在完成以上三大板塊的過程中,應(yīng)該注意三大板塊之間的聯(lián)系。4.全部完成后,將客戶端程序移植到ARM開發(fā)板上并實(shí)現(xiàn)。有了以上簡(jiǎn)單的分析,可以知道,解決上述四個(gè)問題,即完成了該聊天系統(tǒng)的核心。補(bǔ)充:由于技術(shù)方面的欠缺,我的聊天室系統(tǒng)沒有應(yīng)用數(shù)據(jù)庫知識(shí)存放聊天記錄。聊天記錄是以隱藏文件的形式存放在整個(gè)系統(tǒng)的絕對(duì)路徑下。沒有實(shí)現(xiàn)留言功能,只有在線才能接收到別人發(fā)送的消息。第三章 系統(tǒng)分析與設(shè)計(jì)方案 聊天系統(tǒng)客戶端的總體設(shè)計(jì)要點(diǎn)聊天系統(tǒng)的設(shè)計(jì)與普通網(wǎng)站的實(shí)際所考慮的因素有許多不同之處,普通網(wǎng)站設(shè)計(jì)需考慮對(duì)布局進(jìn)入大量美化以及動(dòng)畫設(shè)計(jì)等等,而聊天室卻只要提供滿足訪客雙方直接實(shí)時(shí)聊天即可[6]。因此,在設(shè)計(jì)聊天系統(tǒng)的過程中,必須要考慮好以下幾個(gè)設(shè)計(jì)要點(diǎn):(一)實(shí)現(xiàn)思想在Internet上的聊天程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過客戶端程序登錄到服務(wù)器,就可以與登錄在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。(二)服務(wù)器端工作流程服務(wù)器端通過socket( )系統(tǒng)調(diào)用創(chuàng)建一個(gè)Socket數(shù)組后(即設(shè)定了接受連接客戶的最大數(shù)目),與指定的本地端口綁定bind( ),就可以在端口進(jìn)行偵聽listen( )。如果有客戶端連接請(qǐng)求,則在數(shù)組中選擇一個(gè)空Socket,將客戶端地址賦給這個(gè)Socket。然后登錄成功的客戶就可以在服務(wù)器上聊天了。(三)客戶端工作流程客戶端程序相對(duì)簡(jiǎn)單,只需要建立一個(gè)Socket與服務(wù)器端連接,成功后通過這個(gè)Socket來發(fā)送和接收數(shù)據(jù)就可以了。套接字之間的連接過程可以分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請(qǐng)求,連接確認(rèn)。服務(wù)器監(jiān)聽是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)??蛻舳苏?qǐng)求是指由客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。連接確認(rèn)是指當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請(qǐng)求,它就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,連接就建立好了。 聊天系統(tǒng)客戶端的設(shè)計(jì)步驟及功能模塊劃分(一)聊天系統(tǒng)客戶端工作原理圖31輸入錯(cuò)誤重新填寫用戶運(yùn)行客戶端應(yīng)用程序填寫用戶名密碼提交服務(wù)器用戶信息合法,用戶登陸到聊天室 接收服務(wù)器端的在線用戶列表接收消息接收好友下線或登陸消息發(fā)送消息(群聊、私聊)圖31 工作原理圖 聊天系統(tǒng)客戶端各功能模塊(一)注冊(cè)功能模塊用戶進(jìn)入聊天系統(tǒng),點(diǎn)擊登錄模塊上的注冊(cè)按鈕,進(jìn)入注冊(cè)頁面。頁面框架由QT語言編譯。功能有填寫用戶名、密碼、重復(fù)密碼;注冊(cè)界面顯示用戶名、密碼輸入規(guī)則。當(dāng)用戶輸入用戶名、密碼時(shí),檢驗(yàn)用戶輸入是否合法,輸入合法則通過Socket建立于服務(wù)器的連接,向服務(wù)器發(fā)送用戶名、密碼。服務(wù)器端對(duì)所接收的內(nèi)容進(jìn)行核對(duì),如用戶名密碼可用,則返回相應(yīng)信息??蛻舳私邮盏椒?wù)器發(fā)送過來的信息后,通知用戶是否注冊(cè)成功。注冊(cè)模塊發(fā)送到服務(wù)器的通信協(xié)議為:“regist:用戶名:密碼名”。 部分源碼如下:regist::regist(){ //用戶界面代碼}void regist::sure_fun(){ int fd2。 char *p。 char buf[10]=。 fd2=getfd()。 QString tmp,str。 if(name_linetext()==all){ //用戶名不能為all QMessageBox::warning(this,tr(warning),tr(this name unable used!) )。 name_lineclear()。 return。 } if(name_linetext()==){ //未輸入用戶名提示信息 QMessageBox::warning(this,tr(warning),tr(input a user name!))。 return。 } if(passwd_linetext()==){ //未輸入密碼提示信息 QMessageBox::warning(this,tr(warning),tr(input a passwd!))。 return。 } QString passwd1,passwd2。 passwd1=passwd_linetext()。 passwd2=repasswd_linetext()。 if(passwd1==passwd2){ //確保倆次密碼相同 tmp=regist。 tmp=tmp+39。:39。 tmp=tmp+name_linetext()。 tmp=tmp+39。:39。 tmp=tmp+passwd_linetext()。 p=(char *)qPrintable(tmp)。 int i。 i=write(fd2,p,strlen(p))。 //向服務(wù)器寫內(nèi)容 if(i=0){ //寫入失敗 QMessageBox::information(this,tr(regist),tr(server no answer!))。 return。 } read(fd2,buf,5)。 //從服務(wù)器讀內(nèi)容 if(strcmp(buf,ok)==0){ //注冊(cè)成功提示消息 QMessageBox::information(this,tr(regist),tr(successfully!))。 close()。 } else{ QMessageBox::warning(this,tr(error!),tr(the user name has been used!))。 name_lineclear()。 return。 } } else{ QMessageBox::warning(this,tr(error!),tr(twice passwd is different !))。 passwd_lineclear()。 repasswd_lineclear()。 return。 } }(二)登錄功能模塊用戶進(jìn)入聊天系統(tǒng)則直接進(jìn)入登陸模塊[7],界面直接提示輸入用戶名、密碼;當(dāng)已經(jīng)注冊(cè)完成賬號(hào)時(shí),根據(jù)提示輸入用戶信息??蛻舳送ㄟ^Socket建立與服務(wù)器的連接,并將信息傳遞給服務(wù)器,由服務(wù)器判斷輸入是否正確。如用戶名與密碼不相符,則提示信息。信息輸入正確,則登陸成功,界面切換到聊天界面。登錄模塊發(fā)送到服務(wù)器的通信協(xié)議為:“l(fā)ogin:用戶名:密碼”。部分源碼如下:login::login(){ //登陸界面} void login::login_fun(){ int fd1=getfd()。 char buf[100]=。 char all_name[4000] = 。 QString info,a,b。 a=ledit1text()。 b=ledit2text()。 info = QString(login)+39。:39。+a+39。:39。+b。 write(fd1,(char *)qPrintable(info),())。 //向服務(wù)器寫入內(nèi)容 read(fd1,buf,sizeof(buf))。 //從服務(wù)器讀入內(nèi)容 if(strcmp(buf,relogin) == 0) //登陸失敗提示消息 { QMessageBox::information(this,login error!,Repeat login!!!)。 return。 } if(strcmp(buf,ok) == 0){
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1