国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MFC實(shí)現(xiàn)的小型局域網(wǎng)聊天室

2010-06-06 12:22:10王海莉
時(shí)代農(nóng)機(jī) 2010年7期
關(guān)鍵詞:聊天室客戶機(jī)服務(wù)器端

王海莉,呂 芹

(湖北省咸寧市高級(jí)技工學(xué)校,湖北 咸寧 437100)

1 聊天室程序的開(kāi)發(fā)背景及意義

近年來(lái),互聯(lián)網(wǎng)發(fā)展日新月異,網(wǎng)絡(luò)使空間的距離不再成為人們溝通的障礙,世界各個(gè)角落的人們可以通過(guò)Internet收發(fā)郵件、實(shí)時(shí)聊天、獲取最新的資訊,本文將討論一種基于Socket的局域網(wǎng)通信工具的設(shè)計(jì)與實(shí)現(xiàn)方法?;赟ocket的局域網(wǎng)通信軟件可以為企業(yè)原有的局域網(wǎng)提供一種良好、安全、快速的通信機(jī)制。它的實(shí)現(xiàn)無(wú)需對(duì)企業(yè)原有的局域網(wǎng)硬件進(jìn)行任何改動(dòng),具有實(shí)現(xiàn)成本低廉的優(yōu)點(diǎn),它的使用能有效地降低局域網(wǎng)通信負(fù)荷,提高局域網(wǎng)的使用效率,可以很好地解決企業(yè)內(nèi)部局域網(wǎng)的各種通信需求。它很好地詮釋了Socket通信的原理,并且在企業(yè)內(nèi)部通信、教學(xué)、討論等應(yīng)用中都具有一定的實(shí)用價(jià)值。它具有信息收發(fā)速度快,保密性好,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實(shí)現(xiàn)等優(yōu)點(diǎn)?;赟ocket的局域網(wǎng)通信軟件應(yīng)用范圍廣闊,不但可以處理傳統(tǒng)的通信需求,而且也能擴(kuò)展以適應(yīng)新型的網(wǎng)絡(luò)應(yīng)用,如網(wǎng)絡(luò)教育,數(shù)據(jù)影音傳輸?shù)?,擁有廣泛的應(yīng)用前景。

2 總體設(shè)計(jì)

2.1 聊天室的設(shè)計(jì)目標(biāo)

本課題是建立聊天通信模型,設(shè)計(jì)一個(gè)聊天室軟件,包括服務(wù)器端和客戶端。

服務(wù)器端功能:初始化Socket,創(chuàng)建服務(wù)器端;)維護(hù)一個(gè)鏈表,保存所有用戶的IP地址、端口信息;接受用戶傳送來(lái)的聊天信息,然后向鏈表中的所用用戶轉(zhuǎn)發(fā);接受用戶傳送來(lái)的連接判斷命令,并向用戶發(fā)出響應(yīng)命令。

客戶端功能:客戶端界面上的兩個(gè)文本框,一個(gè)用于顯示接受的聊天信息,一個(gè)用來(lái)接受用戶輸入的聊天信息。當(dāng)按下“發(fā)送”按鈕時(shí)將信息發(fā)送給服務(wù)器。通過(guò)本課題的畢業(yè)設(shè)計(jì),可以比較深入的了解和掌握Winsock控件基本屬性、方法和事件,理解網(wǎng)絡(luò)聊天通信的概念,輸控制協(xié)議(TCP)進(jìn)行數(shù)據(jù)交流,初步掌握網(wǎng)絡(luò)聊天通信程序的設(shè)計(jì)方法。并能鞏固和擴(kuò)展大學(xué)期間的學(xué)習(xí)內(nèi)容,進(jìn)行項(xiàng)目的設(shè)計(jì)開(kāi)發(fā)訓(xùn)練,更好的適應(yīng)社會(huì)的需求。

2.2 聊天室的實(shí)現(xiàn)思想

聊天室程序一般都是以服務(wù)器提供服務(wù)端連接響應(yīng),使用者通過(guò)客戶端程序連接到服務(wù)器,就可以與在同一服務(wù)器上的用戶交談,這是一個(gè)面向連接的通信過(guò)程。因此,程序要在TCP/IP環(huán)境下,實(shí)現(xiàn)服務(wù)器端和客戶端兩部分程序。

2.3 聊天室的工作流程

(1)服務(wù)器端工作流程。服務(wù)器端通過(guò)socket()系統(tǒng)調(diào)用創(chuàng)建一個(gè)Socket數(shù)組后(即設(shè)定了接受連接客戶的最大數(shù)目),與指定的本地端口綁定bind(),就可以在端口進(jìn)行監(jiān)聽(tīng)listen()。如果有客戶端連接請(qǐng)求,則在數(shù)組中選擇一個(gè)空Socket,將客戶端地址賦給這個(gè)Socket。然后登客戶端的用戶就可以在服務(wù)器上聊天了。

(2)客戶端工作流程??蛻舳顺绦蛳鄬?duì)簡(jiǎn)單,只需要建立一個(gè)Socket與服務(wù)器端連接,成功后通過(guò)這個(gè)Socket來(lái)發(fā)送和接收數(shù)據(jù)就可以了。

2.4 體系結(jié)構(gòu)設(shè)計(jì)

通常的通信工具,都采用客戶機(jī)/服務(wù)器(C/S)體系結(jié)構(gòu),C/S結(jié)構(gòu)是這樣的一種結(jié)構(gòu):它包括一個(gè)客戶機(jī)(或前端),一個(gè)服務(wù)器(或稱后端),客戶機(jī)的作用是訪問(wèn)和處理遠(yuǎn)程服務(wù)器上的數(shù)據(jù),服務(wù)器的作用是接收和處理客戶機(jī)的數(shù)據(jù)請(qǐng)求。有時(shí),可能有多個(gè)客戶向同一個(gè)服務(wù)器同時(shí)請(qǐng)求服務(wù),這就需要服務(wù)器決定怎樣處理這些請(qǐng)求。Client/Server結(jié)構(gòu)是當(dāng)前數(shù)據(jù)庫(kù)應(yīng)用程序中極為流行的一種方式。尤其是網(wǎng)絡(luò)技術(shù)的發(fā)展,使得當(dāng)前很多系統(tǒng)都采用這種方式進(jìn)行構(gòu)造,其最大的優(yōu)點(diǎn)是將計(jì)算機(jī)工作任務(wù)分別由客戶端和服務(wù)器端來(lái)共同完成,這樣有利于充分合理的利用系統(tǒng)資源。另外它的服務(wù)器端還可以將信息集中起來(lái),任何客戶機(jī)都可以通過(guò)訪問(wèn)服務(wù)器而獲得所需的信息。Client/Server模型最終可歸結(jié)為一種“請(qǐng)求/應(yīng)答”關(guān)系。一個(gè)請(qǐng)求總是首先被客戶發(fā)出,然后服務(wù)器總是被動(dòng)地接收請(qǐng)求,返回客戶需要的結(jié)果。在客戶發(fā)出一個(gè)請(qǐng)求之前,服務(wù)進(jìn)程一直處于休眠狀態(tài)。一個(gè)客戶提出請(qǐng)求后,服務(wù)進(jìn)程被“喚醒”并且為客戶提供服務(wù),對(duì)客戶的請(qǐng)求做出所需要的應(yīng)答。

上述圖示只是通信數(shù)據(jù)的一個(gè)流向示意圖,不是真正的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),也就是說(shuō)其中的服務(wù)器可能只是裝了服務(wù)器軟件的一臺(tái)普通工作站。在底層的數(shù)據(jù)流向中,也就是網(wǎng)絡(luò)的物理連結(jié),并非我們這個(gè)軟件所能決定的,我們的所做都是在一個(gè)透明的數(shù)據(jù)通信層之上的。

3 詳細(xì)設(shè)計(jì)

我們利用WinSocket實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)聊天室。需要一個(gè)聊天服務(wù)器,它可以和很多客戶端進(jìn)行通信,從而把來(lái)自不同的客戶的聊天信息轉(zhuǎn)交到所有其他的客戶端。這樣就形成了一個(gè)采用Client/Server結(jié)構(gòu)的并可以多人同時(shí)在線的聊天室。

3.1 服務(wù)器端的實(shí)現(xiàn)

服務(wù)器端主要用于接收客戶端的連接,并轉(zhuǎn)發(fā)客戶端的信息。服務(wù)器端的具體實(shí)現(xiàn)過(guò)程如下:

(1)利用“MFC App Wizard”創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序,在對(duì)話框中添加List Box、Edit Box等控件。服務(wù)器端對(duì)話框界面如1所示。

圖1 服務(wù)器端界面運(yùn)行圖

3.2 客戶端的實(shí)現(xiàn)

客戶端的主要功能是建立與服務(wù)器的連接,面向服務(wù)器發(fā)送數(shù)據(jù),并且能夠接收由服務(wù)器傳送而來(lái)的數(shù)據(jù)??蛻舳说木唧w實(shí)現(xiàn)過(guò)程如下:

(1)利用“MFC AppWizard”創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序,在對(duì)話框中添加List Box、Edit Box等控件??蛻舳藢?duì)話框界面如2所示。

圖2 客戶端界面運(yùn)行圖

[1]周紅進(jìn),許江寧.基于WinSock的網(wǎng)絡(luò)通信模塊開(kāi)發(fā)[J].電腦開(kāi)發(fā)與應(yīng)用,2003,16(10):4-5.

[2]汪曉平,鐘軍.Visual C++網(wǎng)絡(luò)通信協(xié)議分析與應(yīng)用實(shí)現(xiàn)[M].北京:人民郵電出版社,2003.

[3]Tim Parker.TCP/IP 技術(shù)大全機(jī)[M].北京:機(jī)械工業(yè)出版社,2000.

猜你喜歡
聊天室客戶機(jī)服務(wù)器端
Reducing the global cancer burden with gastrointestinal screening: China’s 30 years practice
多多熊聊天室
新少年(2023年10期)2023-10-24 07:47:12
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
歌劇聊天室 洗洗曬曬,又是新一天
歌劇(2017年4期)2017-05-17 04:07:29
歌劇聊天室 永遠(yuǎn)盛放的雪絨花
歌劇(2017年3期)2017-05-17 04:06:47
在Windows中安裝OpenVPN
網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
瘦客戶機(jī):安全與便捷的選擇
基于Web數(shù)據(jù)提高訪問(wèn)速度的方法
基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證
汉源县| 穆棱市| 应用必备| 江西省| 蓝山县| 新蔡县| 赤峰市| 马关县| 金秀| 黄平县| 高碑店市| 舒城县| 遵义市| 彭水| 基隆市| 玛纳斯县| 若尔盖县| 芒康县| 萨迦县| 广州市| 四子王旗| 五峰| 漠河县| 青海省| 红安县| 泰安市| 融水| 双城市| 武山县| 苍山县| 靖远县| 元氏县| 许昌市| 县级市| 大洼县| 陆河县| 伊吾县| 航空| 萨嘎县| 咸宁市| 兴宁市|