姜 新
(營(yíng)口職業(yè)技術(shù)學(xué)院,遼寧 營(yíng)口115000)
現(xiàn)在即時(shí)通訊工具越來(lái)越發(fā)達(dá),網(wǎng)上聊天已是人們生活中不可缺少的必需品,所以想開(kāi)發(fā)一個(gè)聊天軟件,聊天軟件主要設(shè)計(jì)包含登錄模塊、注冊(cè)模塊、語(yǔ)音聊天模塊、視頻聊天模塊,并且較詳細(xì)的說(shuō)明和分析了此聊天軟件系統(tǒng)的登錄模塊、注冊(cè)模塊、語(yǔ)音聊天、視頻聊天模塊的設(shè)計(jì)與實(shí)現(xiàn)。 通過(guò)此聊天系統(tǒng)的設(shè)計(jì),能讓學(xué)生對(duì)程序設(shè)計(jì)語(yǔ)言有一個(gè)更清晰的認(rèn)識(shí),并能提高學(xué)生解決程序設(shè)計(jì)的能力。 對(duì)程序設(shè)計(jì)的熟練程度也能有一定的提高。多功能聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的教學(xué)研究步驟歸納有以下幾點(diǎn):
此聊天軟件系統(tǒng)采用的是客戶端與服務(wù)器端的結(jié)構(gòu)體系,用戶通過(guò)在客戶端輸入用戶信息,然后把這些信息提交該聊天軟件系統(tǒng)服務(wù)器端進(jìn)行處理。 對(duì)于該聊天軟件系統(tǒng)服務(wù)器端主要完成的工作有:注冊(cè)、登錄、刷新、好友添加、接收信息等。注冊(cè)是用戶將注冊(cè)信息提交到服務(wù)器后,并將信息寫入到數(shù)據(jù)庫(kù);登錄是把提交的信息通過(guò)服務(wù)器驗(yàn)證后實(shí)現(xiàn)的相關(guān)服務(wù);刷新是即時(shí)地顯示用戶當(dāng)前在服務(wù)器的信息情況;好友添加是需要添加好友時(shí)服務(wù)器對(duì)添加操作進(jìn)行相關(guān)處理等操作。網(wǎng)上聊天的相關(guān)功能是用戶通過(guò)該聊天軟件系統(tǒng)的客戶端來(lái)實(shí)現(xiàn)的,例如:注冊(cè)、登錄、添加好友、文字聊天、文件傳輸、語(yǔ)音聊天、視頻聊天等。注冊(cè)所要完成的是用戶填好信息后提交并得到登錄到該聊天軟件系統(tǒng)的用戶的ID 號(hào); 登錄功能是驗(yàn)證提交的用戶信息以及使用該聊天軟件系統(tǒng)的權(quán)限;添加好友功能是完成用戶與用戶之間添加好友的操作;好友添加成功后,就可以進(jìn)行文字聊天、文件傳輸、語(yǔ)音聊天、視頻聊天等功能。
首先開(kāi)啟服務(wù)器,之后開(kāi)始到登錄,每個(gè)用戶登錄之后會(huì)顯示出自己的好友以及所在的群,在你的好友里面你點(diǎn)擊的時(shí)候如果好友在線那么他就可以立刻收到你發(fā)過(guò)去的信息,如果不在線那么就會(huì)首先存儲(chǔ)起來(lái)之后在當(dāng)還有上線之后在發(fā)送過(guò)去,在這其中你也可以對(duì)還有傳送文件,文件也是如上的原理。 該系統(tǒng)主要功能包括:建立QQ 的數(shù)據(jù)庫(kù)、開(kāi)啟服務(wù)器、啟動(dòng)服務(wù)器的日志管理、判斷用戶是否在線、根據(jù)用戶的在線的情況判斷接受信息的情況、用戶發(fā)送的信息的管理。
用到的工具有Java 語(yǔ)言、C/S 結(jié)構(gòu)、.NET 開(kāi)發(fā)平臺(tái)、Oracle 數(shù)據(jù)庫(kù)。
此聊天軟件采用了客戶機(jī)和服務(wù)器結(jié)構(gòu),用戶要想使用這個(gè)聊天系統(tǒng)首先要進(jìn)行注冊(cè)。 在注冊(cè)頁(yè)面, 必須填寫帶紅色標(biāo)志的信息,按“提交”按鈕,將所填的信息提交給服務(wù)器,服務(wù)器將已填好的注冊(cè)信息提交給數(shù)據(jù)庫(kù),注冊(cè)用戶會(huì)接收到服務(wù)器生成的一個(gè)登錄ID 號(hào),這樣注冊(cè)就完成了。用戶就可以通過(guò)已經(jīng)注冊(cè)成功的用戶名和密碼進(jìn)行登錄。這時(shí)你要與好友進(jìn)行聊天,則必須添加好友:進(jìn)行用戶2 添加用戶N 為好友的操作過(guò)程中, 用戶2 首先向用戶N 發(fā)出添加好友的請(qǐng)求信息,當(dāng)用戶N 接受到用戶2 的信息,在通過(guò)驗(yàn)證后會(huì)發(fā)送確認(rèn)反饋信息給用戶2[1],并且向服務(wù)器提交好友添加確認(rèn)信息,這時(shí)服務(wù)器就會(huì)更新相應(yīng)用戶的好友列表中的信息。
用戶1 通過(guò)攝像頭進(jìn)行視頻采集,經(jīng)過(guò)壓縮后,向用戶2 發(fā)送采集后的視頻數(shù)據(jù)。用戶2 接收到用戶1 發(fā)送的視頻數(shù)據(jù)并將其進(jìn)行解壓,然后在用戶2 的采集窗口上播放,這樣視頻的傳輸就完成了。在進(jìn)行視頻數(shù)據(jù)傳輸前,兩臺(tái)計(jì)算機(jī)必須先要建立連接,其原理和語(yǔ)音聊天建立連接的原理一致。 用戶1 向用戶2 發(fā)送視頻請(qǐng)求,用戶2 在接收到用戶1 的請(qǐng)求后,給用戶1 發(fā)送收到請(qǐng)求后的回應(yīng)信息,如果同意用戶1 的請(qǐng)求則用戶1 與用戶2 開(kāi)始視頻聊天,如果不同意就終止視頻聊天[2]。
注冊(cè)模塊的功能是可以讓用戶獲得使用該聊天軟件系統(tǒng)的權(quán)限,用戶可以通過(guò)注冊(cè)來(lái)獲得登錄時(shí)的用戶ID 號(hào)。 在使用聊天系統(tǒng)的時(shí)候首先要注冊(cè),也就是單擊單擊登錄界面上的帳號(hào)申請(qǐng)按鈕,在接下來(lái)的網(wǎng)頁(yè)中填寫注冊(cè)本人的相關(guān)重要的信息,紅色的文字是必填的項(xiàng)目,填寫完后核對(duì)一下信息,按確定按鈕,對(duì)剛填入的注冊(cè)內(nèi)容要先通過(guò)服務(wù)器對(duì)其進(jìn)行判斷,看所填入的信息是否符合要求,如果不符合,則顯示錯(cuò)誤提示信息;如果正確,進(jìn)行服務(wù)器連接。 連接不成功時(shí),會(huì)提示錯(cuò)誤信息;如果連接成功,注冊(cè)信息會(huì)通過(guò)服務(wù)器寫入數(shù)據(jù)庫(kù)中[3]。
用戶在注冊(cè)獲得ID 號(hào)碼后,在登錄界面填寫ID 號(hào)碼和密碼并提交給服務(wù)器,服務(wù)器通過(guò)用戶提交過(guò)來(lái)的信息和數(shù)據(jù)庫(kù)中原有的用戶信息進(jìn)行比較和驗(yàn)證,如果結(jié)果一致表明驗(yàn)證成功,用戶進(jìn)入到客戶端的系統(tǒng)界面下,如果不一致,給用戶返回登錄錯(cuò)誤信息[4]程序調(diào)用相應(yīng)函數(shù),彈出登錄界面,進(jìn)行登錄操作。當(dāng)用戶在登錄界面填寫完用戶ID 與密碼時(shí),單擊登錄按鈕,通過(guò)函數(shù)與服務(wù)器連接,并進(jìn)行異常處理。 如果連接失敗,提示錯(cuò)誤信息;如果連接成功,通過(guò)調(diào)用函數(shù)將登錄信息發(fā)送到服務(wù)器端來(lái)進(jìn)行相關(guān)驗(yàn)證,如果登錄成功,那么從服務(wù)器端發(fā)送的信息為temp=="ACC",即登錄操作完成,如果從服務(wù)器端發(fā)送的信息為temp=="UAC",表明登錄失敗并彈出一個(gè)提示錯(cuò)誤信息窗體。 單擊取消按鈕會(huì)調(diào)用事件來(lái)關(guān)閉窗體以及客戶端程序[5]。
用戶首先要進(jìn)行注冊(cè),從而取得登錄的ID 號(hào),然后用戶填寫用戶名、密碼、頭像ID 的內(nèi)容后,單擊確定按鈕,把所定的內(nèi)容提交給服務(wù)器,服務(wù)器就會(huì)給用戶返回一個(gè)登錄ID。
用戶在注冊(cè)后,用獲得的ID 號(hào)碼在登錄模塊中進(jìn)行登錄,用戶在登錄界面填寫用戶ID 和密碼后,單擊“登錄”按鈕,會(huì)彈出一個(gè)登錄成功的對(duì)話框,則表示登錄成功。單擊該對(duì)話框中的按鈕,就會(huì)進(jìn)入客戶端界面。 如果不想登錄則單擊登錄界面的“取消”按鈕。 用戶在登錄成功后會(huì)進(jìn)入客戶端界面。 如果想和朋友進(jìn)行聊天,就用鼠標(biāo)雙擊該好友的頭像進(jìn)入與好友對(duì)話的界面,此時(shí)就可以與好友進(jìn)行對(duì)話。
進(jìn)入到與好友的對(duì)話界面后,如果想與好友進(jìn)行語(yǔ)音、視頻聊天,那么單擊該界面上的“請(qǐng)求視頻”按鈕,這樣好友會(huì)收到請(qǐng)求對(duì)話框,若單擊接收視頻按鈕,則好友同意,兩人就可以進(jìn)行視頻、語(yǔ)音聊天了。
[1]張青,郭亞萍.C#編程思想與實(shí)踐[M].北京:冶金工業(yè)出版社,2005.
[2]陳明.實(shí)用軟件工程基礎(chǔ)[M].北京:清華大學(xué)出版社,2002.
[3]黃德志,湯慶恩.C#程序設(shè)計(jì)實(shí)用教程[M].北京:冶金工業(yè)出版社,2002.
[4]葛昊晗,燙涌濤,李強(qiáng).C#大學(xué)教程[M].北京:清華大學(xué)出版社,2003.
[5]熊盛心,許志慶,李欽.VisualC# .NET 語(yǔ)言參考手冊(cè)[M].北京:清華大學(xué)出版社,2002.