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

正文內(nèi)容

基于winsock的網(wǎng)絡(luò)聊天軟件設(shè)計(jì)(編輯修改稿)

2024-09-07 12:17 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 以體現(xiàn)。它就是Microsoft Foundation Classes,簡(jiǎn)稱(chēng)為MFC,可以說(shuō)它是VC開(kāi)發(fā)環(huán)境的一個(gè)核心構(gòu)件。MFC(Microsoft Foundation Class Library)中的各種類(lèi)結(jié)合起來(lái)構(gòu)成了一個(gè)應(yīng)用程序框架,它的目的就是讓程序員在此基礎(chǔ)上來(lái)建立Windows下的應(yīng)用程序,這是一種相對(duì)SDK來(lái)說(shuō)更為簡(jiǎn)單的方法。因?yàn)榭傮w上,MFC框架定義了應(yīng)用程序的輪廓,并提供了用戶(hù)接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過(guò)預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓。Microsoft Visual C++提供了相應(yīng)的工具來(lái)完成這個(gè)工作:AppWizard可以用來(lái)生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀(guān)地設(shè)計(jì)用戶(hù)接口;ClassWizard用來(lái)協(xié)助添加代碼到框架文件;最后,編譯,則通過(guò)類(lèi)庫(kù)實(shí)現(xiàn)了應(yīng)用程序特定的邏輯[4]。Microsoft 也提供了C++庫(kù),它位于任何 Windows API之上,能夠使程序員的工作更容易。它就是Microsoft基本類(lèi)庫(kù)(MFC),該庫(kù)的主要優(yōu)點(diǎn)是效率高。它減少了大量在建立 Windows程序時(shí)必須編寫(xiě)的代碼。同時(shí)它還提供了所有一般C++編程的優(yōu)點(diǎn),例如繼承和封裝。MFC是可移植的,例如,在 Windows NT或 Windows 95上。因此,MFC很值得推薦的開(kāi)發(fā)Windows應(yīng)用程序的方法,在本教程自始至終使用的都是MFC。當(dāng)是使用MFC時(shí),你編寫(xiě)的代碼是用來(lái)建立必要的用戶(hù)界面控制并定制其外觀(guān)。同時(shí)你還要編寫(xiě)用來(lái)響應(yīng)用戶(hù)操作這些控制的代碼。例如,如果用戶(hù)單擊一個(gè)按鈕時(shí),你應(yīng)該有代碼來(lái)響應(yīng)。這就是事件驅(qū)動(dòng)代碼,它構(gòu)成了所有應(yīng)用程序。一旦應(yīng)用程序正確的響應(yīng)了所有允許的控制,它的任務(wù)也就完成了。你可以看出,使用 MFC進(jìn)行Windows 編程時(shí)是一件比較容易的的過(guò)程。本教程的目的是比較詳細(xì)地教你如何快速建立專(zhuān)業(yè)級(jí)的應(yīng)用程序的技術(shù)。Visual C++ 應(yīng)用程序開(kāi)發(fā)程序環(huán)境特別適合于使用 MFC (也有其它開(kāi)發(fā)環(huán)境使用MFC,譯者注),所以一起學(xué)習(xí) MFC 和 Visual C++ 能夠增強(qiáng)你的開(kāi)發(fā)程序的能力。MFC提供了兩個(gè)類(lèi)CAsyncSocket和CSocket來(lái)封裝WinSock API,這給程序員提供了一個(gè)更簡(jiǎn)單的網(wǎng)絡(luò)編程接口。CAsyncSocket在較低層次上封裝了WinSock API,缺省情況下,使用該類(lèi)創(chuàng)建的socket是非阻塞的socket,所有操作都會(huì)立即返回,如果沒(méi)有得到結(jié)果,返回WSAEWOULDBLOCK,表示是一個(gè)阻塞操作。CAsyncSocket類(lèi)所提供的唯一的抽象就是將與套接字相聯(lián)系的Windows消息以回調(diào)函數(shù)的形式表示,因此它所帶來(lái)的惟一方便就是程序員無(wú)需自行處理Winsock的I/O模型,而對(duì)如阻塞處理、字節(jié)排序差異以及Unicode等依然負(fù)有責(zé)任與靈活的控制權(quán)。CSocket建立在CAsyncSocket的基礎(chǔ)上,是CAsyncSocket的派生類(lèi),它提供了對(duì)通過(guò)CArchive對(duì)象使用套接字工作的更高級(jí)抽象。CSocket類(lèi)的使用比CAsyncSocket類(lèi)更加容易,它繼承了CAsyncSocket類(lèi)的許多封裝了API的成員函數(shù),并且管理了通信的大多數(shù)方面,這使用戶(hù)從原來(lái)不得不使用原始API或者CAsyncSocket類(lèi)的繁雜工作中解脫出來(lái)。更加重要的是CSocket類(lèi)提供了對(duì)于同步操作CArchive對(duì)象十分重要的阻塞功能,且CSocket通過(guò)與類(lèi)CSocketFile和CArchive一起來(lái)管理對(duì)數(shù)據(jù)的發(fā)送和接收,使收發(fā)數(shù)據(jù)的操作變得簡(jiǎn)單了,也就是缺省情況下使用該類(lèi)創(chuàng)建的socket是非阻塞的socket,但是CSocket的網(wǎng)絡(luò)I/O是阻塞的,它在完成任務(wù)之后才返回。CSocket的阻塞不是建立在“阻塞”socket的基礎(chǔ)上,而是在“非阻塞”socket上實(shí)現(xiàn)的阻塞操作,在阻塞期間,CSocket實(shí)現(xiàn)了本線(xiàn)程的消息循環(huán),因此,雖然是阻塞操作,但是并不影響消息循環(huán),即用戶(hù)仍然可以和程序交互。 第二章 軟件需求分析及總體設(shè)計(jì)第一節(jié) 需求分析概述一、功能要求服務(wù)器端聊天程序(1)基本功能①監(jiān)聽(tīng)本機(jī)IP地址中的一個(gè)指定的端口。②當(dāng)有用戶(hù)端向該端口發(fā)送請(qǐng)求時(shí),服務(wù)器程序立刻建立一個(gè)與該客戶(hù)端的連接并根據(jù)該客戶(hù)端的請(qǐng)求作出相應(yīng)得處理,將處理結(jié)果返回給該客戶(hù)端。③服務(wù)器至少能夠識(shí)別4種請(qǐng)求命令:CONN(建立新連接)、CHAT(聊天)、PRIV(私聊)和EXIT(離開(kāi))。 (2)附加功能 每個(gè)聊天參與者應(yīng)該有自身的詳細(xì)信息,如呢稱(chēng)、編號(hào)、身份等,這些信息應(yīng)該保存在服務(wù)器端的數(shù)據(jù)庫(kù)中。 客戶(hù)端聊天程序(1)當(dāng)用戶(hù)沒(méi)有帳號(hào)時(shí),應(yīng)該有申請(qǐng)帳號(hào)的權(quán)利和便利,并把自己的用戶(hù)信息上傳到服務(wù)器端。(2)用戶(hù)必須可以正常的登陸到聊天主頁(yè)面,客戶(hù)端程序必須能夠滿(mǎn)足客戶(hù)聊天交互的需要,即:①當(dāng)用戶(hù)寫(xiě)完一條信息,點(diǎn)擊“發(fā)送”或按下回車(chē),程序就應(yīng)該立即將信息發(fā)送出去。②客戶(hù)端應(yīng)該時(shí)刻準(zhǔn)備接收來(lái)自服務(wù)器的消息,并作出反應(yīng)并將結(jié)果顯示給客戶(hù)。(3)當(dāng)用戶(hù)退出聊天室時(shí),應(yīng)該將這一信息告知服務(wù)器,并轉(zhuǎn)發(fā)給其他在線(xiàn)用戶(hù)。二、性能要求本軟件操作簡(jiǎn)單,界面明了清爽,程序較小,啟動(dòng)速度快,無(wú)啟動(dòng)界面。啟動(dòng)后的應(yīng)用界面要清爽,設(shè)計(jì)要簡(jiǎn)單明了,要具有較高的易用性。要求程序要完全可靠,可以應(yīng)付種種由于系統(tǒng)問(wèn)題產(chǎn)生的錯(cuò)誤,比如初始網(wǎng)絡(luò)失敗,對(duì)方突然下線(xiàn)等。要求提前設(shè)想到類(lèi)似的盡可能多的可能發(fā)生的事件,做出相應(yīng)的應(yīng)對(duì)措施,并向用戶(hù)提交簡(jiǎn)單易懂清晰明白的提示信息。程序要有良好的容錯(cuò)性,當(dāng)用戶(hù)進(jìn)行非法操作時(shí)或者系統(tǒng)本身出現(xiàn)問(wèn)題時(shí)要能以最好的方式退出程序,避免發(fā)生程序假死現(xiàn)象。開(kāi)發(fā)文檔要有好的易理解性,如果系統(tǒng)又要交由別人接手開(kāi)發(fā),或者自己由于種種原因需要進(jìn)行二次開(kāi)發(fā),那么要保證以后能夠清晰的理解整個(gè)系統(tǒng)的設(shè)計(jì)思路以及實(shí)現(xiàn)細(xì)節(jié)。要求程序?qū)λ\(yùn)行之系統(tǒng)的硬件條件要求盡可能低,運(yùn)行時(shí)內(nèi)存占用盡可能小,響應(yīng)速度要盡可能快。并且不發(fā)生內(nèi)存泄漏之類(lèi)影響系統(tǒng)運(yùn)行的錯(cuò)誤事件。并且要求易于維護(hù)及擴(kuò)展。所以應(yīng)該采用模塊化開(kāi)發(fā),各個(gè)模塊之間不要有太多的聯(lián)系,以免維護(hù)困難。三、測(cè)試環(huán)境規(guī)定在開(kāi)發(fā)過(guò)程中由開(kāi)發(fā)人員自己,也就是我本人隨時(shí)進(jìn)行內(nèi)部部分白盒測(cè)試,在開(kāi)發(fā)完成以后,自己進(jìn)行一個(gè)全面的白盒測(cè)試,然后請(qǐng)老師們和同學(xué)們幫忙進(jìn)行黑盒測(cè)試。四、系統(tǒng)流程圖根據(jù)本軟件的功能規(guī)劃,大體上可以分為群聊和單聊模式。以下將是針對(duì)于公共聊天模式、單獨(dú)聊天模式和系統(tǒng)整體功能流程圖。,公共聊天模式我們可以把理解為就是我們?cè)谌粘I钪形医?jīng)常采用的聊天室模式,用戶(hù)通過(guò)自己的客戶(hù)端,經(jīng)過(guò)身份驗(yàn)證進(jìn)入到聊天室。任何用戶(hù)在聊天室所發(fā)的數(shù)據(jù),其客戶(hù)端將通過(guò)服務(wù)器端把消息群發(fā)至其他的每一個(gè)客戶(hù)端。所以,服務(wù)器的主要功能就是時(shí)時(shí)刻刻監(jiān)聽(tīng)著網(wǎng)絡(luò)上的信息,準(zhǔn)備隨時(shí)接收消息并群發(fā)消息;客戶(hù)端的主要功能是發(fā)送自己的消息并準(zhǔn)備隨時(shí)接收來(lái)自于服務(wù)器的群發(fā)消息??蛻?hù)端1客戶(hù)端2客戶(hù)端3客戶(hù)端4服務(wù)器發(fā)送消息發(fā)送消息發(fā)送消息發(fā)送消息接收消息接收消息接收消息接收消息 公共聊天模式,客戶(hù)端1和客戶(hù)端3進(jìn)行的就是單獨(dú)聊天模式,就如同我們?nèi)粘I钪惺褂门c好友進(jìn)行單獨(dú)聊天一樣。但是還是有一定的區(qū)別,就是客戶(hù)端在選擇單獨(dú)聊天模式之后不能同時(shí)參與聊天室里面的群聊。圖中客戶(hù)端2和客戶(hù)端4正在執(zhí)行的模式是聊天室的公共聊天模式??蛻?hù)端1客戶(hù)端2客戶(hù)端3客戶(hù)端4服務(wù)器發(fā)送私聊消息公共消息接收私聊消息發(fā)送私聊消息接收私聊消息公共消息(私聊) 單獨(dú)聊天模式,客戶(hù)端在啟動(dòng)的時(shí)候會(huì)默認(rèn)進(jìn)入聊天室的公共聊天模式,當(dāng)客戶(hù)端A想與客戶(hù)端B進(jìn)行私聊的時(shí)候,客戶(hù)端A的用戶(hù)可以通過(guò)鼠標(biāo)雙擊“在線(xiàn)好友”列表中的用戶(hù)B的呢稱(chēng),之后在客戶(hù)端B會(huì)彈出一個(gè)窗口,詢(xún)問(wèn)用戶(hù)B是否接受用戶(hù)A的請(qǐng)求。如果接受,客戶(hù)端A將與客戶(hù)端B進(jìn)行正常的單獨(dú)聊天。如果拒絕接受,客戶(hù)端A將不能與客戶(hù)端B進(jìn)行私聊,請(qǐng)求失敗?!究蛻?hù)端】啟動(dòng)程序Server構(gòu)造方法構(gòu)造界面,建立與服務(wù)器的連接啟動(dòng)客戶(hù)端線(xiàn)程,監(jiān)聽(tīng)來(lái)自服務(wù)器端的信息點(diǎn)擊登陸聊天室點(diǎn)擊退出聊天室在文本框輸入群聊信息,點(diǎn)擊發(fā)送按鈕選中在線(xiàn)好友的呢稱(chēng)點(diǎn)擊私聊按鈕,在文本框中輸入悄悄話(huà)服務(wù)器線(xiàn)程啟動(dòng),監(jiān)聽(tīng)來(lái)自客戶(hù)端的信息流【服務(wù)器端】 系統(tǒng)整體運(yùn)行流程圖五、可行性研究成本可行性分析因?yàn)楸拒浖蛔鳛楸敬萎厴I(yè)設(shè)計(jì)做開(kāi)發(fā)學(xué)習(xí)使用,所以此處暫暫且不考慮經(jīng)濟(jì)成本及盈利問(wèn)題。技術(shù)可行性分析首先我已經(jīng)搭建好開(kāi)發(fā)所需要的軟硬件平臺(tái),并進(jìn)行了合理而完善的需求分析,做好了充分的前期準(zhǔn)備工作,其次因?yàn)楸境绦虻钠脚_(tái)將基于WINDOWS,將要使用網(wǎng)絡(luò)通信技術(shù),而WINDOWS有完善成熟的網(wǎng)絡(luò)通信接口,以及與VC開(kāi)發(fā)環(huán)境的嚴(yán)密契合能力,加之相類(lèi)似的更大規(guī)模的INTERNET通信工具產(chǎn)品也已有例在先,所以這個(gè)程序的開(kāi)發(fā)可行性在技術(shù)上是完全可行的。 第二節(jié) 總體設(shè)計(jì)一、體系結(jié)構(gòu)模型當(dāng)今應(yīng)用系統(tǒng)結(jié)構(gòu)主要采用以下幾種體系結(jié)構(gòu)模型:C/S(Client/Server)結(jié)構(gòu),即客戶(hù)機(jī)和服務(wù)器結(jié)構(gòu)。它是軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到Client端和 Server端來(lái)實(shí)現(xiàn),降低了系統(tǒng)的通訊開(kāi)銷(xiāo)。目前大多數(shù)應(yīng)用軟件系統(tǒng)都是 client/Server 形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的 Web 應(yīng)用發(fā)展,Web 和Client/Server 應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶(hù)都可以訪(fǎng)問(wèn)新的和現(xiàn)有的應(yīng)用系統(tǒng),通過(guò)現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet 技術(shù)的興起,對(duì) C/S 結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶(hù)工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層 3tier 結(jié)構(gòu)。這樣就大大簡(jiǎn)化了客戶(hù)端電腦載荷, 減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量, 降低了用戶(hù)的總體成本(TCO)。以目前的技術(shù)看,局域網(wǎng)建立 B/S 結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過(guò) Internet/Intranet 模式下數(shù)據(jù)庫(kù)應(yīng)用。 三層結(jié)構(gòu),即將應(yīng)用劃分為三層(可以有更多層,但三層最常見(jiàn)): 用戶(hù)界面層,商業(yè)邏輯層,數(shù)據(jù)庫(kù)層。 用戶(hù)界面層負(fù)責(zé)處理用戶(hù)的輸入和向用戶(hù)的輸出,但并不負(fù)責(zé)解釋其含義(出于效率的考慮,它可能在向上傳輸用戶(hù)輸入前進(jìn)行合法性驗(yàn)證),這一層通常用前端工具(VB,VC,ASP 等)開(kāi)發(fā)。商業(yè)邏輯層是上下兩層的紐帶,它建立實(shí)際的
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1