• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    即時(shí)通訊軟件設(shè)計(jì)與實(shí)現(xiàn)

    2018-03-22 12:53:26王小瓊陳得友
    魅力中國(guó) 2018年40期

    王小瓊 陳得友

    摘要:當(dāng)前中國(guó)的互聯(lián)網(wǎng)技術(shù)已經(jīng)進(jìn)入了一個(gè)飛速發(fā)展的時(shí)期,即時(shí)通訊成為了網(wǎng)絡(luò)通信工具的主流。本論文就是模擬QQ聊天軟件,開發(fā)一個(gè)包括文字聊天、文件傳輸?shù)裙δ艿牧奶燔浖?。系統(tǒng)采用C/S架構(gòu),基于.NET平臺(tái)開發(fā)。由服務(wù)器端和客戶端程序組成,采用TCP/IP通信協(xié)議,使用XML對(duì)通信報(bào)文進(jìn)行封裝,便于應(yīng)用程序API調(diào)用,組裝,解析XML報(bào)文。主要完成文字聊天、文件傳輸、服務(wù)器模塊的設(shè)計(jì)任務(wù)。通過運(yùn)行、測(cè)試與分析,該多功能聊天軟件運(yùn)行穩(wěn)定、可靠,具有一定的實(shí)用價(jià)值。

    關(guān)鍵詞:聊天軟件;文字聊天;文件傳輸;C#;XML

    一、研究的意義

    21世紀(jì)是信息的時(shí)代,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息在傳遞方面也有了嶄新的一面?,F(xiàn)今聊天軟件成為信息傳遞最為廣泛的應(yīng)用工具,它發(fā)揮了即時(shí)性通信的特點(diǎn),可以讓用戶在第一時(shí)間內(nèi)得到信息的交流,它不僅可以讓用戶進(jìn)行文字聊天,而且還增添語音、視頻功能。這樣可以讓網(wǎng)上的好友身臨其境的面對(duì)面的聊天,讓彼此之間更為深入的了解。人性化的設(shè)計(jì)讓每個(gè)用戶都可以得心應(yīng)手的使用,從而獲得更多人的青睞。Internet的出現(xiàn)連通了整個(gè)世界,而聊天軟件的出現(xiàn)則連通了每一位網(wǎng)上的用戶。

    二、需求分析

    此次開發(fā)的網(wǎng)絡(luò)聊天工具可作為企業(yè)局域網(wǎng)的交流工具使用,通信的安全性不是很高,但要求信息的響應(yīng)速度要較快,讓用戶充分享受到網(wǎng)絡(luò)即時(shí)消息的方便和快捷。本聊天工具由服務(wù)器端程序和客戶端程序兩部分組成,整體采用.NET平臺(tái)開發(fā),采用TCP/IP通信協(xié)議,使用XML對(duì)通信報(bào)文進(jìn)行封裝,以便于應(yīng)用程序API調(diào)用,組裝和解析XML報(bào)文。服務(wù)器是可以進(jìn)行監(jiān)聽,記錄客戶端請(qǐng)求和驗(yàn)證客戶端身份的合法性,并提供XML消息中轉(zhuǎn)服務(wù);客戶端程序面向?qū)嶋H用戶,它有必要的界面的按鈕,向用戶提供網(wǎng)絡(luò)即時(shí)消息的功能。

    三、總體設(shè)計(jì)

    (一)多線程設(shè)計(jì)

    服務(wù)器需要和多個(gè)客戶端同時(shí)進(jìn)行通信,這就是服務(wù)器端的多線程。一旦服務(wù)器發(fā)現(xiàn)一個(gè)新的客戶端與之建立了連接,就馬上新建一個(gè)線程與客戶端進(jìn)行通信。用多線程的好處在于可以同時(shí)處理多個(gè)通信連接,不會(huì)出于由于數(shù)據(jù)排隊(duì)而發(fā)生的延遲或者丟失,可以很好利用系統(tǒng)的性能。

    客戶端能夠完成信息的接收和發(fā)送操作,這與服務(wù)器的多線程概念不同,可以采用循環(huán)等待的方法來實(shí)現(xiàn)客戶端。利用循環(huán)等待的方式,客戶端首先接收用戶輸入的內(nèi)容并將它們發(fā)送到服務(wù)器端,然后接收來自服務(wù)器端的信息,將其返回給客戶端的用戶。

    (二)數(shù)據(jù)庫(kù)的設(shè)計(jì)

    本設(shè)計(jì)模擬的企業(yè)局域網(wǎng)架構(gòu),所以數(shù)據(jù)庫(kù)表主要用來存放部門信息和用戶的注冊(cè)信息,可利用兩張表來分別存放部門信息和用戶信息,用戶可通過服務(wù)器來查看在線用戶的個(gè)人信息。

    (三)服務(wù)器的設(shè)計(jì)

    主服務(wù)器實(shí)現(xiàn)了服務(wù)器的多線程,服務(wù)器端有一個(gè)進(jìn)程(或多個(gè)進(jìn)程)在指定的端口等待客戶的連接信息。一時(shí)連接成功,就可以按設(shè)計(jì)的數(shù)據(jù)交換方法和格式進(jìn)行數(shù)據(jù)傳輸??蛻舳酥辉谛枰臅r(shí)候向服務(wù)端發(fā)出連接請(qǐng)求。

    登陸認(rèn)證服務(wù)是對(duì)試圖登陸的客戶端進(jìn)行權(quán)限驗(yàn)證。驗(yàn)證過程為:服務(wù)器獲得客戶端發(fā)送來的用戶名和密碼,然后查詢數(shù)據(jù)庫(kù)的相應(yīng)的用戶列表,如果該用戶不存在或用戶名與密碼不匹配服務(wù)器將驗(yàn)證失敗的結(jié)果通過XMPP協(xié)議發(fā)還給客戶端,驗(yàn)證過程終止。如果驗(yàn)證通過,登陸驗(yàn)證服務(wù)會(huì)將表中的用戶狀態(tài)由離線變?yōu)樵诰€,然后將驗(yàn)證成功的結(jié)果發(fā)還給客戶端。

    (四)客戶端的設(shè)計(jì)

    用戶完成登錄后, 客戶端與服務(wù)器端建立連接。連接建立成功后,客戶向服務(wù)器請(qǐng)求讀取好友名單;服務(wù)器收到該請(qǐng)求,開始從數(shù)據(jù)庫(kù)讀取好友資料,向客戶端發(fā)送這些信息;客戶收到服務(wù)器消息后,在主窗口顯示好友。

    客戶可以在客戶端查看好友信息,客戶端向服務(wù)器發(fā)送查詢好友信息的請(qǐng)求,然后服務(wù)器查詢數(shù)據(jù)庫(kù),接著將查詢得到的結(jié)果組合成XMPP協(xié)議的XML流返回給客戶端。

    (五)文本通信功能設(shè)計(jì)

    一對(duì)一:在本設(shè)計(jì)中文本通信功能采用由服務(wù)器中轉(zhuǎn),考慮到客戶在登陸系統(tǒng)時(shí)就跟服務(wù)器建立了TCP連接,而且在整個(gè)系統(tǒng)使用中客戶與服務(wù)器之間除了一些必要的控制信息及好友查詢等信息要進(jìn)行通信外,TCP連接是處于空閑狀態(tài)的,所以可以利用服務(wù)器中轉(zhuǎn)完成客戶間的文本通信。

    一對(duì)多:此功能用于會(huì)議室聊天,具有一個(gè)會(huì)議室的建立,會(huì)議室屬性的設(shè)定等。一個(gè)用戶建立會(huì)議室后,服務(wù)器向所有在線用戶發(fā)送此會(huì)議室的信息,其他用戶就可以在主界面看到此會(huì)議室的消息, 只要知道此會(huì)議室的密碼,便能加入此會(huì)議室聊天。

    (六)文件傳輸

    本設(shè)計(jì)中,文件傳輸采用的是P2P通信。P2P通信的特點(diǎn)是通信的雙方通信前借助XMPP服務(wù)器建立TCP連接,之后雙方就進(jìn)行與服務(wù)器無關(guān)的點(diǎn)對(duì)點(diǎn)通信,直到通信結(jié)束。整個(gè)過程中,服務(wù)器只起了一個(gè)輔助與管理作用,真正的數(shù)據(jù)通信與服務(wù)器無關(guān)。

    四、結(jié)論

    本論文所設(shè)計(jì)的即時(shí)通訊客戶系統(tǒng),主要功能是能夠完成服務(wù)器與客戶端之間的連接,并完成客戶端用戶之間的即時(shí)通訊,軟件主要包括以下幾個(gè)功能:用戶登錄和注冊(cè)管理;好友信息查詢;即時(shí)文本消息的互相傳送(一對(duì)一文本傳輸和一對(duì)多文本傳輸);文件的點(diǎn)對(duì)點(diǎn)傳輸?shù)取?/p>

    在完成這些功能的同時(shí),本文主要解決了一下幾個(gè)方面的關(guān)鍵問題:系統(tǒng)采用了傳統(tǒng)的客戶端、服務(wù)器網(wǎng)絡(luò)組織模式,并且設(shè)計(jì)了基于中心服務(wù)器模式的P2P客戶端,在客戶端與服務(wù)器建立連接完成以后,通訊在用戶與好友間直接點(diǎn)到點(diǎn)的連接與通信,從而大大減輕了服務(wù)器端得負(fù)荷,也保證了可靠的文件傳輸機(jī)制,客戶端的設(shè)計(jì)中還采用服務(wù)器連接中轉(zhuǎn)的方案進(jìn)行文本消息的傳送。

    參考文獻(xiàn):

    [1] 張青,郭亞萍.C#編程思想與實(shí)踐[M].北京:冶金工業(yè)出版社,2005

    [2] 陳明.實(shí)用軟件工程基礎(chǔ)[M].北京:清華大學(xué)出版社,2002

    [3] 黃德志,湯慶恩.C#程序設(shè)計(jì)實(shí)用教程[M].北京:冶金工業(yè)出版社,2002

    [4] 王敏.C#線程參考手冊(cè)[M].北京:清華大學(xué)出版社,2003

    作者簡(jiǎn)介:王小瓊(1981-),女,碩士研究生,研究方向:軟件工程。

    陳得友(1979-),男(漢族),河南信陽人,大學(xué)本科,副教授,主要研究領(lǐng)域?yàn)檐浖夹g(shù)、高等教育。

    仪征市| 大石桥市| 马边| 棋牌| 罗源县| 常德市| 桂阳县| 株洲县| 合阳县| 永康市| 堆龙德庆县| 平潭县| 建宁县| 城口县| 元阳县| 全州县| 儋州市| 容城县| 皋兰县| 济南市| 申扎县| 乐东| 保康县| 财经| 宽甸| 阿勒泰市| 东港市| 贵阳市| 肥乡县| 光泽县| 左云县| 普宁市| 台中市| 垦利县| 通辽市| 介休市| 辽宁省| 桦南县| 霍山县| 西平县| 延庆县|