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

正文內(nèi)容

基于winsock的網(wǎng)絡(luò)聊天軟件設(shè)計(jì)-文庫(kù)吧資料

2024-08-24 12:17本頁(yè)面
  

【正文】 據(jù)類(lèi)型可否空主鍵外鍵唯一鍵備注strNum帳號(hào)varcharN√strName昵稱(chēng)varcharNstrPass密碼varcharNstrRealName真實(shí)姓名varcharYstrSex性別varcharYstrCountry用戶(hù)所在國(guó)家varcharY 第三章 軟件詳細(xì)設(shè)計(jì)及代碼實(shí)現(xiàn)第一節(jié) 用戶(hù)界面設(shè)計(jì)關(guān)于本軟件的用戶(hù)界面設(shè)計(jì),主題思想的是保持了在青年人比較受追捧的卡通風(fēng)格。其中,strNum(帳號(hào))設(shè)為主鍵,strName(昵稱(chēng))、strPass(密碼)限定不能為空。建立數(shù)據(jù)庫(kù)名稱(chēng)為:。聊天客戶(hù)端申請(qǐng)并分配聊天帳號(hào)功能登陸聊天室密碼驗(yàn)證功能公共聊天信息交互功能與選定用戶(hù)私聊功能顯示在線(xiàn)用戶(hù)狀態(tài)功能拒絕私聊請(qǐng)求功能 客戶(hù)端功能模塊 三、數(shù)據(jù)庫(kù)設(shè)計(jì)邏輯設(shè)計(jì)本軟件所采用的數(shù)據(jù)庫(kù)是微軟自帶的ACCESS小型數(shù)據(jù)庫(kù)。,服務(wù)器端的功能子模塊包括:監(jiān)聽(tīng)本地特定端口、響應(yīng)客戶(hù)端各種消息、保存用戶(hù)的資料、支持?jǐn)?shù)據(jù)庫(kù)插入查詢(xún)、顯示在線(xiàn)用戶(hù)表、顯示用戶(hù)進(jìn)出和申請(qǐng)帳號(hào)等。由于要避免客戶(hù)端與服務(wù)器是連接一次就自動(dòng)斷開(kāi)的情況,并便于服務(wù)器方便快捷的找到客戶(hù)端,因此選擇 C/S結(jié)構(gòu)模式。商業(yè)邏輯層是上下兩層的紐帶,它建立實(shí)際的數(shù)據(jù)庫(kù)連接,根據(jù)用戶(hù)的請(qǐng)求生成SQL語(yǔ)句檢索或更新數(shù)據(jù)庫(kù),并把結(jié)果返回給客戶(hù)端,這一層通常以動(dòng)態(tài)鏈接庫(kù)的形式存在并注冊(cè)到服務(wù)器的注冊(cè)簿(Registry)中,它與客戶(hù)端通訊的接口符合某一特定的組件標(biāo)準(zhǔn)(如 COM,CORBA),可以用任何支持這種標(biāo)準(zhǔn)的工具開(kāi)發(fā)。 三層結(jié)構(gòu),即將應(yīng)用劃分為三層(可以有更多層,但三層最常見(jiàn)): 用戶(hù)界面層,商業(yè)邏輯層,數(shù)據(jù)庫(kù)層。這樣就大大簡(jiǎn)化了客戶(hù)端電腦載荷, 減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量, 降低了用戶(hù)的總體成本(TCO)。它是隨著Internet 技術(shù)的興起,對(duì) C/S 結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。它是軟件系統(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ù)可行性分析首先我已經(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ù)上是完全可行的。如果拒絕接受,客戶(hù)端A將不能與客戶(hù)端B進(jìn)行私聊,請(qǐng)求失敗。客戶(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)求。但是還是有一定的區(qū)別,就是客戶(hù)端在選擇單獨(dú)聊天模式之后不能同時(shí)參與聊天室里面的群聊。所以,服務(wù)器的主要功能就是時(shí)時(shí)刻刻監(jiān)聽(tīng)著網(wǎng)絡(luò)上的信息,準(zhǔn)備隨時(shí)接收消息并群發(fā)消息;客戶(hù)端的主要功能是發(fā)送自己的消息并準(zhǔn)備隨時(shí)接收來(lái)自于服務(wù)器的群發(fā)消息。,公共聊天模式我們可以把理解為就是我們?cè)谌粘I钪形医?jīng)常采用的聊天室模式,用戶(hù)通過(guò)自己的客戶(hù)端,經(jīng)過(guò)身份驗(yàn)證進(jìn)入到聊天室。四、系統(tǒng)流程圖根據(jù)本軟件的功能規(guī)劃,大體上可以分為群聊和單聊模式。所以應(yīng)該采用模塊化開(kāi)發(fā),各個(gè)模塊之間不要有太多的聯(lián)系,以免維護(hù)困難。并且不發(fā)生內(nèi)存泄漏之類(lèi)影響系統(tǒng)運(yùn)行的錯(cuò)誤事件。開(kāi)發(fā)文檔要有好的易理解性,如果系統(tǒng)又要交由別人接手開(kāi)發(fā),或者自己由于種種原因需要進(jìn)行二次開(kāi)發(fā),那么要保證以后能夠清晰的理解整個(gè)系統(tǒng)的設(shè)計(jì)思路以及實(shí)現(xiàn)細(xì)節(jié)。要求提前設(shè)想到類(lèi)似的盡可能多的可能發(fā)生的事件,做出相應(yīng)的應(yīng)對(duì)措施,并向用戶(hù)提交簡(jiǎn)單易懂清晰明白的提示信息。啟動(dòng)后的應(yīng)用界面要清爽,設(shè)計(jì)要簡(jiǎn)單明了,要具有較高的易用性。(3)當(dāng)用戶(hù)退出聊天室時(shí),應(yīng)該將這一信息告知服務(wù)器,并轉(zhuǎn)發(fā)給其他在線(xiàn)用戶(hù)。(2)用戶(hù)必須可以正常的登陸到聊天主頁(yè)面,客戶(hù)端程序必須能夠滿(mǎn)足客戶(hù)聊天交互的需要,即:①當(dāng)用戶(hù)寫(xiě)完一條信息,點(diǎn)擊“發(fā)送”或按下回車(chē),程序就應(yīng)該立即將信息發(fā)送出去。 (2)附加功能 每個(gè)聊天參與者應(yīng)該有自身的詳細(xì)信息,如呢稱(chēng)、編號(hào)、身份等,這些信息應(yīng)該保存在服務(wù)器端的數(shù)據(jù)庫(kù)中。②當(dāng)有用戶(hù)端向該端口發(fā)送請(qǐng)求時(shí),服務(wù)器程序立刻建立一個(gè)與該客戶(hù)端的連接并根據(jù)該客戶(hù)端的請(qǐng)求作出相應(yīng)得處理,將處理結(jié)果返回給該客戶(hù)端。CSocket的阻塞不是建立在“阻塞”socket的基礎(chǔ)上,而是在“非阻塞”socket上實(shí)現(xiàn)的阻塞操作,在阻塞期間,CSocket實(shí)現(xiàn)了本線(xiàn)程的消息循環(huán),因此,雖然是阻塞操作,但是并不影響消息循環(huán),即用戶(hù)仍然可以和程序交互。CSocket類(lèi)的使用比CAsyncSocket類(lèi)更加容易,它繼承了CAsyncSocket類(lèi)的許多封裝了API的成員函數(shù),并且管理了通信的大多數(shù)方面,這使用戶(hù)從原來(lái)不得不使用原始API或者CAsyncSocket類(lèi)的繁雜工作中解脫出來(lái)。CAsyncSocket類(lèi)所提供的唯一的抽象就是將與套接字相聯(lián)系的Windows消息以回調(diào)函數(shù)的形式表示,因此它所帶來(lái)的惟一方便就是程序員無(wú)需自行處理Winsock的I/O模型,而對(duì)如阻塞處理、字節(jié)排序差異以及Unicode等依然負(fù)有責(zé)任與靈活的控制權(quán)。MFC提供了兩個(gè)類(lèi)CAsyncSocket和CSocket來(lái)封裝WinSock API,這給程序員提供了一個(gè)更簡(jiǎn)單的網(wǎng)絡(luò)編程接口。本教程的目的是比較詳細(xì)地教你如何快速建立專(zhuān)業(yè)級(jí)的應(yīng)用程序的技術(shù)。一旦應(yīng)用程序正確的響應(yīng)了所有允許的控制,它的任務(wù)也就完成了。例如,如果用戶(hù)單擊一個(gè)按鈕時(shí),你應(yīng)該有代碼來(lái)響應(yīng)。當(dāng)是使用MFC時(shí),你編寫(xiě)的代碼是用來(lái)建立必要的用戶(hù)界面控制并定制其外觀(guān)。MFC是可移植的,例如,在 Windows NT或 Windows 95上。它減少了大量在建立 Windows程序時(shí)必須編寫(xiě)的代碼。Microsoft 也提供了C++庫(kù),它位于任何 Windows API之上,能夠使程序員的工作更容易。因?yàn)榭傮w上,MFC框架定義了應(yīng)用程序的輪廓,并提供了用戶(hù)接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過(guò)預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓。它就是Microsoft Foundation Classes,簡(jiǎn)稱(chēng)為MFC,可以說(shuō)它是VC開(kāi)發(fā)環(huán)境的一個(gè)核心構(gòu)件。要使用socket,首先必須創(chuàng)建一個(gè)socket;然后,按要求配置socket;接著,按要求通過(guò)socket接收和發(fā)送數(shù)據(jù);最后,程序關(guān)閉此socket。Socket是網(wǎng)絡(luò)通信過(guò)程中端點(diǎn)的抽象表示。MFC使用函數(shù)AfxSocketInit包裝了函數(shù)WSAStartup,在WinSock應(yīng)用程序的初始化函數(shù)IninInstance中調(diào)用AfxSocketInit進(jìn)行初始化。這里,討論TCP/IP網(wǎng)絡(luò)上的API。WinSock也是一個(gè)基于Socket模型的API,在Microsoft Windows操作系統(tǒng)類(lèi)中使用。第三節(jié) MFC微軟基礎(chǔ)類(lèi)一、WinSock APIWinSock APISocket接口是網(wǎng)絡(luò)編程(通常是TCP/IP協(xié)議,也可以是其他協(xié)議)的API。Recv(int sockfd,const void *buf,size_t len,int flag)。TCP套接字提供send()/recv()函數(shù)來(lái)發(fā)送和接收操作:Send(int sockfd,const void *buf,size_t len,int flag)。關(guān)閉套接字——closesocket()功能:關(guān)閉套接字s格式:closesocket(SOCKET s)。接受建立連接——accept()功能:共同完成連接工作格式:accept(SOCKET s,struct sockaddr FAR * name,int FAR * addrlen)。請(qǐng)求建立連接——connect()客戶(hù)端調(diào)用connect連接服務(wù)器端,其格式如下connect(SOCKET s,const struct sockaddr FAR * name,int namelen)。格式:listen(SOCKET s, int backlog)。其它:沒(méi)有錯(cuò)誤,bind()返回0,否則SOCKET_ERROR。格式:bind(SOCKET s,const struct sockaddr FAR * name,int namelen)。第一個(gè)參數(shù)指明協(xié)議族,第二個(gè)指明套接字類(lèi)型,第三個(gè)是協(xié)議標(biāo)志。//32位IP地址,網(wǎng)絡(luò)字節(jié)順序 char sin_zero[8]。//AF_INET u_short sin_port。(4)關(guān)閉套接字,關(guān)閉加載的套接字庫(kù)closesocket()。(2)向服務(wù)器發(fā)出連接請(qǐng)求connect()。(7)關(guān)閉套接字,關(guān)閉加載的套接字庫(kù)closesocket()。(5)用返回的套接字和客戶(hù)端進(jìn)行通信send()/recv()。(3)將套接字設(shè)置為監(jiān)聽(tīng)模式等待連接請(qǐng)求listen()。二、Socket通信模式【服務(wù)器端】【客戶(hù)端】SocketSocketBindListenAcceptReadWriteClose ConnectWriteReadClose Socket通信模式由圖可以看出,Socket的通信步驟如下[3]:服務(wù)器端:(1)加載套接字庫(kù),創(chuàng)建套接字socket()。從套接字所處的地位來(lái)講,套接字上連應(yīng)用進(jìn)程,下連網(wǎng)絡(luò)協(xié)議棧,是應(yīng)用進(jìn)程通過(guò)網(wǎng)絡(luò)協(xié)議棧進(jìn)行通信的接口,是應(yīng)用進(jìn)程與網(wǎng)絡(luò)協(xié)議棧進(jìn)行交互的接口。網(wǎng)絡(luò)編程的基本模型就是客戶(hù)機(jī)到服務(wù)器模型。Socket通常用來(lái)實(shí)現(xiàn)客戶(hù)方和服務(wù)方的連接。MFC提供一些相對(duì)簡(jiǎn)單的API來(lái)完成這些工作,Socket就是其中之一。Socket實(shí)現(xiàn)客戶(hù)-服務(wù)器(Client/Server)模式的通信方式,它首先需要建立穩(wěn)定的連接,然后以流的方式傳輸數(shù)據(jù),實(shí)現(xiàn)網(wǎng)絡(luò)通信。Socket 通信機(jī)制提供了兩種通信方式,即:面向連接的通信方式和面向無(wú)連接的方式。當(dāng)一個(gè)Socket建立后,它就與本地的IP地址聯(lián)系起來(lái),IP地址僅簡(jiǎn)單地指定出入主機(jī)的特定路徑,而連接亦可有多個(gè)。Socket由每一個(gè)主機(jī)的終點(diǎn)和端口地址加以區(qū)別。在In
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1