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

正文內(nèi)容

c語言解決局域網(wǎng)聊天系統(tǒng)的設(shè)計與實現(xiàn)-文庫吧資料

2024-12-14 01:39本頁面
  

【正文】 該函數(shù)用于線程終結(jié)自身的執(zhí)行,主要在線程的執(zhí)行函數(shù)中被調(diào)用。 該函數(shù)用于結(jié)束線程的掛起狀態(tài),執(zhí)行線程。 該函數(shù)用于掛起指定的線程,如果函數(shù)執(zhí)行成功,則線程的執(zhí)行被終止。 該函數(shù)在其調(diào)用進程的進程空間里創(chuàng)建一個新的線程,并返回已建線程的句柄。下面將選取其中的一些重要函數(shù)進行說明。 Visual C++ 中,使用 MFC 類庫也實現(xiàn)了多線程的程序設(shè)計,使得多線程編程更加方便。這一點在多線程編程時應(yīng)該注意。要說明的一點是,目前大多數(shù)的計算機都是單處理器( CPU)的,為了運行所有這些線程,操作系統(tǒng)為每個獨立線程安排一些 CPU 時間,操作系統(tǒng)以輪換方式向線程提供時間片,這就給人一種假象,好象這些線程都在同時運行。一個進程中的所有線程都在該進程的虛擬地址空間中,共同使用這些虛擬地址空間、全局變量和系統(tǒng)資源,所以線程間的通訊非常方便,多線程技術(shù)的應(yīng)用也較為廣泛。 每一個進程至少有一個主執(zhí)行線程,它無需由用戶去主動創(chuàng)建,是由系統(tǒng)自動創(chuàng)建的。系統(tǒng)創(chuàng)建好進程后,實際上就啟動執(zhí)行了該進程的主執(zhí)行線程,主執(zhí)行線程以函數(shù)地址形式,比如說 main 或 WinMain 函數(shù),將程序的啟動點提供給 Windows 系統(tǒng)。進程是應(yīng)用程序的執(zhí)行實例,每個進程是由私有的虛擬地址空間、代碼、數(shù)據(jù)和其它各種系統(tǒng)資源組成,進程在運行過程中創(chuàng)建的資源隨著進程的終止而被銷毀,所使用的系統(tǒng)資源在進程終止時被釋放或關(guān)閉。 (3) : WINSOCK 的動態(tài)連接庫,位于 WINDOWS 的安裝目錄下。 (1) : 這是 WINSOCK API 的頭文件,需要包含在項目中。如下圖所示: 《 用 VC++語言解決局域網(wǎng)聊天系統(tǒng)的 設(shè)計與 實現(xiàn) 》 第 14 頁 共 62 頁 圖 34 面向連接的套接字的系統(tǒng)調(diào)用圖 微軟為 Visual C++定義了 Winsock類如 CAsyncSocket類和派生于 CAsyncSocket 的CSocket 類,它們簡單易用,我們當(dāng)然可以使用這些類來實現(xiàn)自己的網(wǎng)絡(luò)程序,但是為了更好的了解 Winsock API編程技術(shù),本設(shè)計中將使用底層的 API函數(shù)實現(xiàn) Winsock 平臺的即時通信工具。 Socket 實際在計算機 中提供了一個通信端口,可以通過這個端口與任何一個具有Socket 接口的計算機通信。 為了方便這種 Client/Server 模型的網(wǎng)絡(luò)編程, 90 年代初,由 Microsoft 聯(lián)合了其他幾家公司共同制定了一套 WINDOWS 下的網(wǎng)絡(luò)編程接口,即 Windows Sockets 規(guī)范,它不是一種網(wǎng)絡(luò)協(xié)議 ,而是一套開放的、支持多種協(xié)議的 Windows 下的網(wǎng)絡(luò)編程接口。一個服務(wù)程序通常在一個眾所周知的地址監(jiān)聽對服務(wù)的請求,也就是說,服務(wù)進程一直處于休眠狀態(tài),直到一個客戶向這個服務(wù)的地址提出了 連接請求。 WINDOWS SOCKETS 網(wǎng)絡(luò)編程接口概述 在網(wǎng)絡(luò)編程中最常用的方案便是 Client/Server (客戶機 /服務(wù)器 )模型。 UDP 的典型性應(yīng)用是如流媒體(音頻和視頻等)這樣按時到達比可 靠性更重要的應(yīng)用,或者如 DNS 查找這樣的簡單查詢 /響應(yīng)應(yīng)用,如果需要建立可靠的連結(jié),哪么所作的額外工作將是不成比例地大。 UDP( IP 協(xié)議號 17)是一個 無連接的 數(shù)據(jù)報協(xié)議。 IP 數(shù)據(jù)包是不可靠的,因為 IP 并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。 (3)本 課程設(shè)計 涉及到的協(xié)議: IP、 TCP IP( Inter Protocol)是 TCP/IP 的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。數(shù)據(jù)通過這樣的分層結(jié)構(gòu)從上層傳到底層,然后通過網(wǎng)線把數(shù)據(jù)傳送出去。 ( 2)邏輯結(jié)構(gòu): 圖 33 邏輯結(jié)構(gòu) 《 用 VC++語言解決局域網(wǎng)聊天系統(tǒng)的 設(shè)計與 實現(xiàn) 》 第 13 頁 共 62 頁 這是 TCP/IP 協(xié)議的分層結(jié)構(gòu)在互連網(wǎng)計算機上的表示,用互連網(wǎng)技術(shù)互相通信的每臺計算機都 有這樣的分層結(jié)構(gòu)。這些協(xié)議的示例是: UDP( User Datagram Protocol)協(xié)議、 ICMP( Inter Control Message Protocol)協(xié)議、ARP(地址解析協(xié)議)和其他一些協(xié)議的協(xié)議組。其中有合理的消息映射機制,有方便的運行時類型識別功能,更有文檔 /視圖結(jié)構(gòu)設(shè)計,文檔串行化功能等非常多的優(yōu)秀功能。 構(gòu)建一個基于 MFC 框架的程序,可以使用 MFC 的向?qū)С绦颍紫纫靼?,一個基于 MFC 的 程序可以有幾種類型:基于單文檔結(jié)構(gòu)的程序,基于多文檔結(jié)構(gòu)的程序以及基于對話框的應(yīng)用程序,不同類型的程序具有不同的程序?qū)傩浴N臋n包括應(yīng)用程序的工作成果或環(huán)境設(shè)置數(shù)據(jù)等,可以是程序需要保存的任何內(nèi)容。視圖的作用是為修改、查詢文檔等任務(wù)提供人機交互的界面。 ( 3) CWnd 類:窗口類,是 CcmdTarget 類的子類,從 CWnd 派生的類可以擁有自己的窗口,并對它進行控制。 CWinThread 是所有線程類的基類,封裝了應(yīng)用程序操作的多線程功能。它的子類有 CWinThread 類, CWnd 類、 CDocument 類,從 CCndTarget 類派生的類能在程序 運行時動態(tài)創(chuàng)建對象,并處理命令消息。MFC 構(gòu)架了一個龐大的類體系結(jié)構(gòu),在 時代就多達 189 個類,程序代碼達 252 個文件, 58 個頭文件,共 10MB 之多, 時又多加了 29 個類,但是最為主干的是下 《 用 VC++語言解決局域網(wǎng)聊天系統(tǒng)的 設(shè)計與 實現(xiàn) 》 第 11 頁 共 62 頁 面類結(jié)構(gòu)示圖所示的一些類: 圖 32 MFC 類框架主體 CObject 是 MFC 類庫的根類。 MFC 框架 由上面的介紹可以看出,直接用 API 函數(shù)開發(fā)一個 WIN32 程序是相當(dāng)麻煩的,有好多既定的重復(fù)性的工作要做,所以微軟就用 C++的類機制將絕大部分的 API 函數(shù)進行了封裝,構(gòu)成了類,并且將基本的流程也封裝在類機制下面,大大簡化了 WIN32 開的的復(fù)雜性,尤其是在開發(fā)比較大型程序的時候這個便宜性更會得以體現(xiàn)。} 當(dāng)消息循環(huán)捕捉到消息以后將交由窗口函數(shù) WndProc()窗口函數(shù)進行相應(yīng)的處理。 DispatchMessage(amp。msg, NULL, 0, 0)){ TranslateMessage(amp。 與控制臺程序相同的是,一個 WIN32 程序也必須有一個程序入口點,但是在這兒它不再叫 main(),而叫做 WinMain(),當(dāng) WINDOWS的 SHELL檢測到用戶欲執(zhí)行一個 EXE程序,就會調(diào)用加載器把程序進行加載,然后調(diào)用 C startup code,后者再調(diào)用 WinMain(),程序的執(zhí)行就開始了, WinMain()函數(shù)的原型為: int CALLBACK WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow); 《 用 VC++語言解決局域網(wǎng)聊天系統(tǒng)的 設(shè)計與 實現(xiàn) 》 第 10 頁 共 62 頁 圖 31 32 位 WINDOWS 程序的開發(fā)流程 下面程序必須進行必要的初始化工作-產(chǎn)生窗口,第一步是注冊一個窗口類:用API 函數(shù): RegisterClass(),而這個函數(shù)需要一個已經(jīng)定義好的系統(tǒng)結(jié)構(gòu): WNDCLASS,這個結(jié)構(gòu)里面定義了窗口的種種屬性,需要自己定義,但是許多屬性都有默認(rèn)值。程序員必須在一個所謂的資源描述檔( .rc )中描述它們。所謂 UI 資源是指功能菜單、對話框、程序圖標(biāo)、光標(biāo)形狀等等東西。所謂的 Win32,其實是一個 API 規(guī)范,與 UNIX 系統(tǒng)編程接口標(biāo)準(zhǔn) POSIX 是相對應(yīng)的。 3 相關(guān)開發(fā)技術(shù)的原理性說明 win32 編程原理及 MFC框架 WIN32 編程原理 所謂的 Win32 開發(fā),就是在 C 語言的層面上,直接使用 Win32 API 開發(fā) Windows應(yīng)用程序或者系統(tǒng)程序。 可行性研究: ( 1)成本可行性分析 因為本軟件只做開發(fā)學(xué)習(xí)使用,所以暫且不考慮經(jīng)濟成本及盈利問題。所以應(yīng)該采用模塊化開發(fā),各個模塊之間不要有太多的聯(lián)系,以免 維護困難。并且不發(fā)生內(nèi)存泄漏之類影響系統(tǒng)運行的錯誤事件。 開發(fā)文檔要有好的易理解性,如果系統(tǒng)又要交由別人接手開發(fā),或者自己由于種種原因需要進行二次開發(fā),那么要保證以后能夠清晰的理解整個系統(tǒng)的設(shè)計思路以及實現(xiàn)細(xì)節(jié)。要求提前設(shè)想到類似的盡可能多的可能發(fā)生的事件,做出相應(yīng)的應(yīng)對措施,并向用戶提交簡單易 懂清晰明白的提示信息。在使用過程中,客戶端在指定時間內(nèi)未向服務(wù)器端發(fā)送信息的,服務(wù)器認(rèn)為客戶端下線;客戶端在一定時間內(nèi)未收到服務(wù)器端信息的,認(rèn)為服務(wù)器已經(jīng)下線,則提示用戶并建議退出,在用戶一定時間后沒有退出的則自動關(guān)閉客戶端程序。 ( 3)在 C/S 模式中,服務(wù)器與客戶端是相互依賴的。 2 需求分析及可行性研究 需求分析: 時間要求 本項目作為大學(xué) 課程設(shè)計 題目,從 6 月 26 號接受選題開始,在 7 月 2 號之前完成系統(tǒng)設(shè)計,編碼實現(xiàn)工作,在 7 月 5 號之前完成 課程設(shè)計 論文初稿, 7 月 9 號之前最終完成 課程設(shè)計 。 Winsockets 無疑是我們進行網(wǎng)絡(luò)編程的利器 。 WINDOWS SOCKETS 網(wǎng)絡(luò)編程接口概述 既然選定了 WINDOWS 平臺,而又要開發(fā)網(wǎng)絡(luò)通信程序,所以可以選擇 WINDOWS的 SOCKETS 編程接口, Windows Sockets 是一套開放的、支持多種協(xié)議的 Windows 下的網(wǎng)絡(luò)編程接口。 《 用 VC++語言解決局域網(wǎng)聊天系統(tǒng)的 設(shè)計與 實現(xiàn) 》 第 7 頁 共 62 頁 操作系統(tǒng): Windows XP 或 Window2021。因 具 有友好的集成開發(fā)界面、面向?qū)ο蟮目梢暬_發(fā)模式、良好的數(shù)據(jù)庫及多媒體應(yīng)用支持以及高效的軟件開發(fā)與程序運行 ,功能更大,開發(fā)效率更高,不僅是網(wǎng)絡(luò)環(huán)境下的優(yōu)秀前端開發(fā)語言和工具,也是服務(wù)器端Web 編程的優(yōu)秀工具。 網(wǎng)絡(luò):局域網(wǎng)。 處理器: Intel Pentium PIII 或更高處理器。對此,我們選擇的硬件環(huán)境和軟件環(huán)境如下: (1) 硬件環(huán)境 開發(fā)該系統(tǒng)應(yīng)盡可能采用高檔的硬件。 本文的主要工作: 本文主要工作是設(shè)計一個基于 WINDOWS 平臺的局域網(wǎng)即時聊天工具,然后闡述本軟件的功能、特點及使用方法,并詳細(xì)闡述開發(fā)本軟件所用的相關(guān)技術(shù),具體分析本軟件的各個模塊的功能及實現(xiàn)方法,說明本軟件的設(shè)計思想及方法。這些軟件,在使用方面各有特色,在實現(xiàn)方面也各有所長,但基于這些產(chǎn)品正在商業(yè)運營階段,其實現(xiàn)方式屬于商業(yè)機密,具體細(xì)節(jié)不可能得知,但是它在大的方面無非就是各種利用各種平臺上的網(wǎng)絡(luò)通信接口,建構(gòu)基于下層 TCP/IP,或者UDP/IP 協(xié)議的軟件產(chǎn)品。 課題現(xiàn)狀 基于局域網(wǎng)的即時通信工具,實際上是互聯(lián) 網(wǎng)即時通信工具的一個小規(guī)模版本,廣域網(wǎng)上的即時通信工具,如今一般采用 UDP 或者 TCP 協(xié)議體系來實現(xiàn) ,開發(fā)技術(shù)已經(jīng)比較成熟,比如較早的 ICQ, MSN Messanger,Yahoo 通這些國外開發(fā)的產(chǎn)品,還有國產(chǎn)的有名的 ,新浪 UC,LAVALAVA 等,這些工具統(tǒng)統(tǒng)都實現(xiàn)了廣域網(wǎng)上 的即時通信,盡管都是即時通信,實現(xiàn)了即時聊天,以及文件傳輸?shù)闹饕δ?,但是也各有各的特色? 《 用 VC++語言解決局域網(wǎng)聊天系統(tǒng)的 設(shè)計與 實現(xiàn) 》 第 6 頁 共 62 頁 比如 ICQ 的巨大客戶群, MSN 的個性化表情, YAHOO 通的易操作性等。它具有信息收發(fā)速度快,保密性好,占用網(wǎng)絡(luò)帶寬資源低,占用服務(wù)器吞吐能力低,易于編程實現(xiàn)等優(yōu)點。它的實現(xiàn)無需對企業(yè)原有的局域網(wǎng)硬件進行任何改動,具有實現(xiàn)成本低廉的優(yōu)點,它的使用能有效地降低局域網(wǎng)通信負(fù)荷,提高局域網(wǎng)的使用效率,可以很好地解決企業(yè)內(nèi) 部局域網(wǎng)的各種通信需求。 我在本文中將討論一種基于 Socket 的局域網(wǎng)通信工具的設(shè)計與實現(xiàn)方法。提升網(wǎng)絡(luò)帶寬及增加服務(wù)器的吞吐 能力是解決此矛盾的一種方法。這些在企業(yè)內(nèi)部原有局域網(wǎng)設(shè)計之初未曾考慮到的新情況的出現(xiàn)使得局域網(wǎng)不堪重負(fù),容易發(fā)生信息阻塞,此時,局域網(wǎng)不但不能提高生產(chǎn)效率,反而成為企業(yè)發(fā)展的瓶頸。在內(nèi)部局域網(wǎng)的幫助下,企業(yè)得以簡化信息流程,提高信息交換的速度,從而提高工作效率。 關(guān)鍵詞 : 局域網(wǎng);即時通信;客戶端;服務(wù)端;多線程;共享內(nèi)存;信息 Abstract Along with the highspeed development of the puter work 《 用 VC++語言解決局域網(wǎng)聊天系
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1