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

正文內容

基于tcp的網絡通信協議設計畢業(yè)論文-文庫吧資料

2025-06-02 18:09本頁面
  

【正文】 ),n + 1)。}(4)服務器端情況記錄代碼:void CDlgTCPSeverDlg::InSertLog(CString strUser, CString strEvent){ int n = ()。(2)。ClearClientList()。(TRUE)。 (_T(服務器未開啟))。}(3)“停止”控件代碼設計:vovoid CDlgTCPSeverDlg::OnBtnStop() {// TODO: Add your control notification handler code here CString strTitle。 (TRUE)。 SetWindowText(strTitle)。 } // CString strTitle。 ()。 return。}(2)“登陸”控件代碼設計:void CDlgTCPSeverDlg::OnBtnStart() { // TODO: Add your control notification handler code here // UpdateData(TRUE)。 (_T(服務器未開啟))。(FALSE)。 (2,_T(時間),LVCFMT_LEFT,120)。 (0,_T(序號),LVCFMT_LEFT,80)。在MFC ClassWizard 工具劇中為上圖中的控件添加消息處理事件,在其中輸入代碼。在上圖中單擊【Next】按鈕后進入【MFC AppWizardstep2 of 4】對話框,在其中選擇復選框【Windows Sockets】后單擊【finish】按鈕完成向導,如圖:設計服務器對話框界面。如圖建立基于對話框的應用程序。 } }}(4) 客戶端收到服務器成傳送的傳輸錯誤提醒void CDlgTCPClientDlg::DealError(const char *Connect){ AfxMessageBox(Connect)。 pSocketSend(amp。 = ERR。 memset(amp。itor++) { CClientSocket *pSocket = *itor。 for (itor = CClientSocket::()。(2)服務器檢驗if(pPacklen1!=pPacklen2) { DealErr(pPack)??煽啃圆捎煤唵蔚膫鬏敂祿L度檢驗,客戶端把長度作為數據包里一個字段Len傳送給服務器,服務器接收到數據包后,取出傳輸數據數(Connect)其長度并與數據包里的Len值作比對,相同則傳送給接收者,否則直接丟棄數據包并對發(fā)送者提醒傳送錯誤。 協議工作方式設計,作為一個類NET_PACK添加到服務器端和客戶機端類的設計中,這里有兩種方案:(1),與客戶端,服務器端的文件存放在同一路經下,分別添加到服務器端和客戶端的類中,由服務器和客戶共享一個文件;(2),屬性都相同。 int Len。 char RecerverID[28]。西安工程大學學士學位論文typedef struct NET_PACK{ FUN fun。lLOGIN表示用戶登錄,LOGOUT表示用戶退出,LOGOK表示用戶登陸成功,LOGERR表示用戶登陸失敗,SHAKE表示震動,TRANSNIT表示信息傳輸,SRRSTOP表示服務器停止,ERR表示數據傳送出錯。sizeof(FUN),sizeof(LOGIN)都是4byte。服務器方客戶方第六章 詳細設計第六章 詳細設計 協議設計(3) fun功能標識定義為枚舉類型(enum),占4個byte,共32位。Connect(),將套接字s與服務器連接。Accept(),等待接受客戶連接請求。Closesocket(),關閉監(jiān)聽套接字sListen,服務結束。建立連接,accept函數返回,得到新的套接字,如sClient。Listen(),設置backlog值,進入監(jiān)聽狀態(tài)。Socket(),建立流式套接字,返回套接字句柄sListen。(7)服務器接收客戶端送來的消息:( string ,buf )。例如:CSocket Receive;(Receive)。在服務器端用Accept接收倆字客戶端的消息。(4)對于客戶端,實行連接,例如:(CString Address,Unsinged int Port)。 //客戶端不用指定端口號(3)對于服務器端,需要這個Socket不停地監(jiān)聽是否有來自于網絡上的鏈接請求,因此需要調用監(jiān)聽函數。例如:(5000)。(2)使用CSocket對象的Create()函數來創(chuàng)建Windows Socket。(2) senderID是發(fā)送者的標識,用以標記信息的來源ID;(3) RecerverID是接收者的標識,用以標記信息的目的ID;(4) Connect是要傳輸的數據;(5) Len記錄了傳輸數據的長度,用于在服務器端進行簡單校驗,如果出錯,則提醒發(fā)送者傳輸錯誤,同時直接丟棄接受到的錯誤數據,否則轉發(fā)數據給接收者; 軟件工作模式圖 軟件設計原理 協議工作編程原理(1) 創(chuàng)建CSocket對象,創(chuàng)建兩個CSocket對象,分別為服務器端和客戶端的對象,如圖:CSocket ServerSocket。(2) Fun分別包括LOGIN,LOGOUT,LOGOK,LOGERR,SHAKE,TRANSMIT,SVRSTOP,ERRL。用它來聲明一組命名的常數,當一個變量有幾種可能的取值時,可以將它定義為枚舉類型,在win32機器上,枚舉類型所占字節(jié)數總是4byte,在上面代碼片段中sizeof(enum)。(5)協議的簡潔高效性:協議的設計不應過于復雜,應給程序員開發(fā)程序留有”自由空間”。(3) 傳輸可靠性:由于網絡傳輸的不穩(wěn)定性,根據經驗大于1024byte的包較小于1024byte的包更易丟失,因此在應用層傳給傳輸層的包應小于1000byte,而實際的數據包往往大于1000byte,,只是通過限制傳輸的數據來機械的控制了這一點。(2)數據的保密由于即時通訊軟件的不同需求,開發(fā)者可能要對傳輸的數據進行加密,因此在協議中應該對數據是否加密、加密算法留有標記。本協議的設計旨在開發(fā)一開放的、安全的、可擴展的、易于程序開發(fā)的即使通訊軟件協議。已經開發(fā)的眾多協議中筆者認為較為成功的當屬、微信、淘寶旺旺等。因而必須嚴格的定義不同用戶之間的每個包中每個字節(jié)中的每一位。第五章 概要設計第五章 概要設計 性能要求 隨著網絡的發(fā)展,不同的開發(fā)商開發(fā)了不同的即時通訊的應用協議。 運行可行性本系統(tǒng)為一個小型的即時聊天系統(tǒng),所耗費的資源非常的小,現在一般的電腦無論是硬件還是軟件都能夠滿足條件,因此,本系統(tǒng)在運行上是可行的。同時,MSDN Library為編碼提供了大量可直接調用的函數,為編碼的是吸納提供了很大的方便,在MFC編碼過程中,Visual Assist X具有代碼輸入更迅速,錯誤自動校正,信息獲取更加快速,增加了色彩和格式,拼寫檢查,拓展了基本編輯等功能,具有強大的編輯特色,增強Microsoft開發(fā)環(huán)境下的編輯能力,提高了生產效率。MFC提供了簡單易用的框架,用其進行前臺設計,方便簡單。簽于此,一個內容簡單,消耗內存小,友好簡潔的即時通訊的網絡聊天工具的開發(fā)就顯得必不可少了,而我們知道,網絡通訊少不了相應的通信協議的支持,所以設計一個專用于支持計算機之間即時通訊的網絡聊天協議就顯得必不可少。因此出現了,微信等聊天工具。為了防止死鎖的發(fā)生,需要通過同步來實現線程安全。 線程同步是多線程編程的難點,在多線程應用中,考慮不同線程之間的數據同步和防止死鎖。(4)線程的中止需要考慮其對程序運行的影響。 (2)更多的線程需要更多的內存空間。 (7)各個任務必須等待外部資源(如遠程文件或 Internet 連接)。 (5)是否需要創(chuàng)建多線程應用程序取決于多個因素。 (2)占用大量處理時間的任務可以定期將處理器時間讓給其他任務。 多線程處理的優(yōu)點多線程技術使程序的響應速度更快,因為用戶界面可以在進行其他工作的同時一直處于活動狀態(tài)。通常由操作系統(tǒng)負責多個線程的調度和執(zhí)行。也可以把它理解為代碼運行的上下文。進程也可能是整個程序或者是部分程序的動態(tài)執(zhí)行?!?多線程 概念每個正在系統(tǒng)上運行的程序都是一個進程。在Windows網絡通信軟件開發(fā)中,最為常用的方法就是異步非阻塞套接字。阻塞(Block):指執(zhí)行此套接字的網絡調用時,直到調用成功才返回,否則此套節(jié)字就一直阻塞在網絡調用上,比如調用StreamReader 類的Readlin ( )方法讀取網絡緩沖區(qū)中的數據,如果調用的時候沒有數據到達,那么此Readlin ( )方法將一直掛在調用上,直到讀到一些數據,此函數調用才返回非阻塞(Unblock):指在執(zhí)行此套接字的網絡調用時,不管是否執(zhí)行成功,都立即返回。 同步、異步、阻塞和非阻塞 同步(synchronous):所謂同步方式,就是發(fā)送方發(fā)送數據包以后,不等接受方響應,就接著發(fā)送下一個數據包。(5)使用CArchive類對象在客戶端和服務器之間進行數據傳輸。(3)創(chuàng)建與CSocket類對象相關聯的CSocketFile類對象。如果請求到來,則調用函數Accept()響應該請求。用戶使用該類進行網絡編程的步驟如下: (1)創(chuàng)建CSocket類對象。該類不但具有CAsyncSocket類的基本功能,還具有串行化功能。 CSocket類微軟的MFC提供了兩個類:CAsyncSocket和CSocket,極大地方便了Socket功能的使用。(4)關閉或銷毀套接字對象。如果創(chuàng)建客戶端套接字,則直接調用函數Connect()連接服務器即可。(2)如果創(chuàng)建服務器端套接字,則調用函數Bind()綁定本地IP和端口,然后調用函數Listen()監(jiān)聽客戶端的請求。 CAsyncSocket類在微軟基礎類庫中,CAsyncSocket類封裝了異步套接字的基本功能?!  ?Windows Sockets在MFC類庫中,幾乎封裝了Windows Sockets的全部功能。因為通信數據可能會在不同的機器之間進行傳輸,所以通信數據必須以相同的格式進行整理。網絡字節(jié)順序表示首先將數據中最重要的字節(jié)進行存儲。其中,流式套接字是專門用于使用TCP協議通信的應用程序中,而數據報套接字則是專門用于使用UDP協議進行通信的應用程序中。在網絡通信的雙方,均有各自的套接字,并且該套接字與特定的IP地址和端口號相關聯。 Socket套接字   用戶在Windows中編寫網絡通信程序時,需要使用Windows Socket(Windows套接字)。例如,HTTP協議(網頁瀏覽服務)所使用的端口號為80,FTP協議(文本傳輸)所使用的端口號是21。所以,服務器的IP地址和端口必須是固定的。否則,客戶端的連接請求失敗。通常,服務器監(jiān)聽功能是在特定的IP地址和端口上進行。通常情況下,當用戶使用C/S模型進行通信時,其通信的任意一方稱為客戶端,則另一方稱為服務器端。在通信的雙方必須使用各自的IP地址以及端口進行通信。如賓館、酒店的客房登記、結算系統(tǒng),超市的POS系統(tǒng),銀行、郵電的網絡系統(tǒng)等。嚴格說來,客戶機/服務器模型并不是從物理分布的角度來定義,它所體現的是一種網絡數據訪問的實現方式。當一臺連入網絡的計算機向其他計算機提供各種網絡服務(如數據、文件的共享等)時,它就被叫做服務器。對于簡單的服務,把每個請求用一個IP數據報發(fā)給服務器,服務器用另一個數據報返回響應。 在此“服務器”是指能在網絡上提供服務的任何程序。該模式的基本思想是把集中在一起的應用劃分成為功能不同的兩個部分,分別在不同的計算機上運行,通過它們之間的分工合作來實現一個完整的功能。: TCP協議和UDP協議的區(qū)別(1)TCP協議面向連接,UDP協議面向非連接(2)TCP協議傳輸速度慢,UDP協議傳輸速度快(3)TCP協議保證數據順序,UDP協議不保證(4)TCP協議保證數據正確性,UDP協議可能丟包(5)TCP協議對系統(tǒng)資源要求多,UDP協議要求少 C/S編程模型客戶機/服務器模型,又稱為Client/Server模型,簡稱C/S架構,是一種非對稱式編程模式。TCP協議的特點是,支持多數據流操作,提供流控和錯誤控制,甚至能完成對亂序到達報文的重新排序等。但是在即時通信中,UDP協議在對一些對時間要求較高的網絡數據傳輸方面有著重要的作用。而UDP協議是基于用戶數據報協議,屬于不可靠連接通信的協議。其中,TCP協議是基于面向連接的可靠的通信協議。例如,FTP(文本傳輸協議)、SMTP(郵件傳輸協議)等應用層協議。用戶根據這些基本的功能概述會對該網絡模型有一個比較全面的認識。各網絡層的功能協 議 層 名功 能 概 述物理硬件層表示計算機網絡中的物理設備。用戶也可以這樣理解,即網絡模型中的各層都是對等通信。事實上在網絡通信的發(fā)送端,其通信數據每到一個通信層,都會被該層協議在數據中添加一個包頭數據。OSI參考模型如圖所示。 OSI七層網絡
點擊復制文檔內容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1