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

正文內(nèi)容

多線程網(wǎng)絡(luò)文件傳輸系統(tǒng)的設(shè)計與實現(xiàn)_畢業(yè)論文-wenkub.com

2025-02-28 08:35 本頁面
   

【正文】 return 1。 //關(guān)閉 socket pServerm_pWndSendMessage(WM_BINDERROR)。 //ip 地址,以網(wǎng)路字節(jié)順序。 SOCKET sockListen = socket(AF_INET, SOCK_STREAM, 0)。id)。 感謝你們! 30 參 考 文 獻 [1] 孫鐘秀 , 費翔林 , 駱斌等 .操作系統(tǒng)教程 [M]. 北京:高等教育出版社 , 2021: 110. [2] 嚴(yán)蔚敏 , 吳偉民等 . 操作系統(tǒng) [M]. 北京:清華大學(xué)出版社 , 2021: 3888. [3] 湯子瀛 , 梁紅兵等 . 計算機操作系統(tǒng) [M]. 西安:西安電子科技 大學(xué)出版社 ,, 2021: 5678. [4] 譚浩強等 . C++面向?qū)ο蟪绦蛟O(shè)計 [M]. 北京:清華大學(xué)出版社 ,, 2021: 59125. [5] BIC L F, SHAW A C. 操作系統(tǒng)原理 [M]. 梁洪亮 , 等譯 . 北京:機械工業(yè)出版社 ,, 2021: 65 [6] 謝希仁等 . 計算機網(wǎng)絡(luò)(第 5版) [M]. 北京:電子工業(yè)出版社, 2021: 2530 [7] 楊金生 .計算機網(wǎng)絡(luò)實驗指導(dǎo) [M].上海: 上海交通大學(xué)出版社, 2021: 2026. [8] 史蒂文斯 .TCP/IP詳解 卷 1:協(xié)議 [M].北京: 機械工業(yè)出版社 , 2021: 99. [9] 王力 .Visual C++ MFC類庫參考手冊 [M].北京: 人民郵電出版社, 2021: 286 [10] (美) Steve Heller著 , 胡鳳燕譯 .C++編程基礎(chǔ):標(biāo)準(zhǔn)庫編程 [M].北京: 電子工業(yè)出版社,2021: 110120. [11] 尹立民 .Visual C++ 應(yīng)用編程 150例 [M].北京: 電子工業(yè)出版社, 2021: 125. [12] (美) Schildt, H。同時導(dǎo)師淵博的知識,使我受益匪淺,每次遇到無法解決的問題時,都能在老師那得到滿意的答案。未來的發(fā)展趨勢是將多線程技術(shù)、斷點續(xù)傳技術(shù)應(yīng)用于網(wǎng)絡(luò)文件傳輸系統(tǒng)中,實現(xiàn)文件傳輸進度顯示、開機自動重傳和文件校驗等功能,不僅能提高文件傳輸?shù)目煽啃院透咝裕材茏層脩舻氖褂酶雍唵畏奖恪? 該網(wǎng)絡(luò) 文件傳輸系統(tǒng)主要包括兩個大的部分:服務(wù)器端和客戶端 , 其中服務(wù)器端開啟服務(wù),監(jiān)聽客戶端的連接,然后如果有客戶端開啟,建立了連接以后,就可以由服務(wù)器端選擇文件來進行發(fā)送傳輸。 22 SOCKET 建立連接過程 服務(wù)器 客戶端 create(),建立套接字 band(),與本地地址綁定 listen(),準(zhǔn)備好接受連接 accept(),等待接受客戶端連接, receive()接收數(shù)據(jù) Close(),關(guān)閉套接字 send(),發(fā)送數(shù)據(jù) Create(),建立套接字 Connect(IP),與服務(wù)器連接 receive()接收數(shù)據(jù) Close(),關(guān)閉套接字 send()發(fā)送數(shù)據(jù) 23 文件的傳輸 發(fā)送文件 與接收文件流程 定 義 C S o c k e t 對 象A c c e p t 建 立 連 接接 收 文 件 名在 指 定 路 徑 創(chuàng) 建 文 件創(chuàng) 建 C s o c k e t , 指 定 端 口開 始 監(jiān) 聽 L i n s t e n接 收 文 件 長 度接 收 文 件 內(nèi) 容文 件 接 收 完畢 ?Y e s關(guān) 閉 文 件關(guān) 閉 S o c k e tN o定 義 C S o c k e t 對 象A c c e p t 建 立 連 接接 收 文 件 名在 指 定 路 徑 創(chuàng) 建 文 件創(chuàng) 建 C s o c k e t , 指 定 端 口開 始 監(jiān) 聽 L i n s t e n接 收 文 件 長 度接 收 文 件 內(nèi) 容文 件 接 收 完畢 ?Y e s關(guān) 閉 文 件關(guān) 閉 S o c k e tN o 24 文件從服務(wù)器傳輸?shù)娇蛻舳? 傳輸文件過程 首先服務(wù)器向客戶端發(fā)送請求,要求傳送文件,在得到客戶端相應(yīng)之前,自己中斷 服務(wù)器 客戶端 向客戶端發(fā)送傳輸文件請求,等待 等待服務(wù)器的請求 自己中斷 開始傳輸文件進程進程 開始傳輸文件進程進程 SOCKET 建立連接并傳輸文件 SOCKET 建 立連接并傳輸文件 過程中斷或?qū)Ψ降闹袛? 過程中斷或?qū)Ψ降闹袛? 傳輸完畢,結(jié)束進程 傳輸完畢,結(jié)束進程 關(guān)閉連接,返回 關(guān)閉連接,返回 對方拒絕 對方拒絕 25 雙方都可以取消這次傳輸,同時通知對方已經(jīng)取消連接;一旦客戶端給了服務(wù)器響應(yīng),則建立進程,進行傳輸;建立的進程里,要定義新的 SOCKET套接字,以建立連接,在傳輸過程中,同樣可以進行中 斷,同時通知對方已經(jīng)取消連接;傳輸結(jié)束后,斷開連接,結(jié)束該進程。 21 通信過程 C/S模式的請求響應(yīng)方式 TCP/IP 協(xié)議三次握手過程 在 TCP/IP 協(xié)議中, TCP 協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個連接(如圖 )。 在連接結(jié)束時,雙方關(guān)閉連接,服務(wù)器則繼續(xù)監(jiān)聽其他 的連接。 2. 使用 bind()子程序?qū)⑻捉?字和一個地址綁定(對于因特網(wǎng)上的一個服務(wù)器套接字來說,地址包含主機計算機的一個端口號)。在客戶機和服務(wù)器上,套接字的建立有一些區(qū)別,說明如下: 客戶: 1. 調(diào)用 socket()子程序,創(chuàng)建一個套 接字。一旦建立了連接,雙方即可以發(fā)送和接受信息。有時,你可能需要寫一個程序來實現(xiàn)一臺客戶計算機和一臺服務(wù)器計算機之間的低層通信。 int PASCAL FAR recv( SOCKET s, char FAR *buf, int len, int flags )。參 數(shù): s: Socket 的識別碼; name: Socket 想要連接的對方地址; namelen: name 的長度。 Socket 客戶端應(yīng)用程序首先也是調(diào)用 WSAStartup()函數(shù)來與 Winsock 的動態(tài)連接庫建立 關(guān)系,然后同樣調(diào)用 socket()來建立一個 TCP 或 UDP socket(相同協(xié)定的 sockets 才能相通, TCP 對 TCP, UDP 對 UDP)。另外,與程序啟動時調(diào)用 WSAStartup()憨數(shù)相對應(yīng),程序結(jié)束前,需要調(diào)用 WSACleanup() 來通知 Winsock Dll 釋放Socket 所占用的資源。該函數(shù)調(diào)用成功返回一個新產(chǎn)生的 Socket對象,否則返回 INVALID_SOCKET。參數(shù): s: Socket 對象; hWnd :接收消息的窗口句柄;wMsg:傳給窗口的消息; lEvent:被注冊的網(wǎng)絡(luò)事件,也即是應(yīng)用程序向窗口發(fā)送消息的網(wǎng)路事件,該值為下列值 FD_READ、 FD_WRITE、 FD_OOB、FD_ACCEPT 、 FD_CONNECT 、 FD_CLOSE 的 組 合 , 各 個 值 的 具 體 含 意 為FD_READ:希望在套接字 S 收到數(shù)據(jù)時收到消息; FD_WRITE:希望在套接字S 上可以發(fā)送數(shù)據(jù)時收到消息; FD_ACCEPT:希望在套接字 S 上收到連接請求時收到消 息; FD_CONNECT: 希望在 套接字 S 上 連接成 功時收 到消息 ;FD_CLOSE:希望在套接字 S 上連接關(guān)閉時收到消息; FD_OOB:希望在套接字 S 上收到帶外數(shù)據(jù)時收到消息。 參 數(shù): s:需要建立監(jiān)聽的 Socket; backlog:最大連接個數(shù); 服務(wù)器端的 Socket 調(diào)用完 listen()后,如果此時客戶端調(diào)用 connect()函數(shù)提出連接申請的話, Server 端必須再調(diào)用 accept() 函數(shù),這樣服務(wù)器端和客戶端才算正式完成通信程序的連接動作。 當(dāng)服務(wù)器端的 Socket 對象綁定完成之后 ,服務(wù)器端必須建立一個監(jiān)聽的隊列來接收客戶端的連接請求。 SOCKET PASCAL FAR socket( int af, int type, int protocol ) 接下來要為服務(wù)器端定義的這個監(jiān)聽的 Socket 指定一個地址及端口( Port),這樣客戶 端才知道待會要連接哪一個地址的哪個端口,為此我們要調(diào)用 bind()函數(shù),該函數(shù)調(diào)用成功返回 0,否則返回 SOCKET_ERROR。在程序中調(diào)用該函數(shù)的形式如下: WSAStartup((WORD)((181),( LPWSADATA)amp。現(xiàn)在的 Winsock 已經(jīng)基本上實現(xiàn)了與協(xié)議 17 無關(guān),你可以使用 Winsock 來調(diào)用多種協(xié)議的功能,但較常使用的是 TCPIP協(xié)議。當(dāng)要實現(xiàn)斷點續(xù)傳時,先校驗本地文件的 MD5 校驗碼,如果校驗碼與源文件校驗碼一致,則不需要使用續(xù)傳。算法描述如下: 先連接服務(wù)器,統(tǒng)計能有多少在線用戶能提供某一文件的下載,然后根據(jù)文件長度和用戶數(shù)量決定分幾個線程下載,每一線程連接一個用戶,接著發(fā)送文件下載請求,請求包括文件位置,名字, MD5 校驗碼,需要文件的開始位置和結(jié)束位置等。 多線程文件傳輸與斷點續(xù)傳 在本系統(tǒng)中,文件的傳送是重要的功能之一,也是共享的基礎(chǔ)。 ? 用戶之間互相下載文件塊,直至文件的所有塊被下載。 ? 向服務(wù)器請求獲取一定數(shù)量的其他用戶的地址。 ? 與該服務(wù)器通信。 文件的分塊 為便于各客戶端下載文件,文件被分成大小相等 (最后一塊除州的若干塊。 Windows 系統(tǒng)只調(diào)度可以調(diào)度的線程。 Windows 實際上保存了一個記錄,它說明每個線程獲得了多少個運行機會。每隔 20ms 左右, Windows要查看當(dāng)前存在的所有線程內(nèi)核對象。 ? 線程內(nèi)核對象的使用計數(shù)遞減 1。當(dāng)線程終止運行時,系統(tǒng)會自動撤消任何窗口,并且卸載線程創(chuàng)建的或安裝的任何掛鉤。然后系統(tǒng)將兩個值寫入新線程的堆棧的上端(線程堆棧 總是從內(nèi)存的高地址向低地址建立)。因此,新線程可以訪問進程的內(nèi)核對象的所有句柄、進程中的所有內(nèi)存和在這個相同的進程中的所有其他線程的堆棧。該線程內(nèi)核對象不是線程本身,而是操作系統(tǒng)用來管理 線程的較小的數(shù)據(jù)結(jié)構(gòu)。可以給線程函數(shù)傳遞單個參數(shù),參數(shù)的含義由你自己定義。當(dāng)然,只有在多 CPU的計算機上,多個線程才能夠真正地同時運行。 線程是一種操作系統(tǒng)對象,它表示在進程中代碼的一條執(zhí)行路徑。這意味著線程在它的進程地址空間中執(zhí)行代碼,并且在進程的地址空間中對數(shù)據(jù)進行操作 。內(nèi)核對象也是系統(tǒng)用來存放線程統(tǒng)計信息的地方。 該函數(shù)具有強制性,在執(zhí)行完畢后進程即已經(jīng)被結(jié)束,因此位于其后的任何代碼將不能被執(zhí)行。當(dāng)主線程的進入點函數(shù)返回時,進程也就隨之結(jié)束。運行以上軟件的計算機或計算機系統(tǒng)也被稱為服務(wù)器。 客戶 端( Client) 客戶端( Client)或稱為用戶端,是指與服務(wù)器相對應(yīng),為客戶提供本地服務(wù)的程序。 12 C/S 構(gòu)架 C/S( Client/Server)結(jié)構(gòu),即大家熟知的客戶機和服務(wù) 器結(jié)構(gòu)。其工作原理是:對每條連接 TCP都保持一個變量 RTT( Round Trip Time),用于存放當(dāng)前到目的端往返所需要時間最接近的估計值。在選擇重發(fā)時間的過程中, TCP 必須具有自適應(yīng)性。收方可以分 4 次接收這 80個字節(jié),每次接收 20 字節(jié)。兩個應(yīng)用程序通過 TCP 連接交換 8bit 字節(jié)構(gòu)成的字節(jié)流。如果必要, TCP 將對收到的數(shù)據(jù)進行重新排序,將收到的數(shù) 據(jù)以正確的順序交給應(yīng)用層。這個確認(rèn)不是立即發(fā)送,通常將推遲幾分之一秒 3. TCP 將保持它首部和數(shù)據(jù)的檢驗和。由 TCP 傳遞給 IP 的信息單位稱為報文段或段( segment) TCP 如何確定報文段的長度。 在一個 TCP 連接中,僅有兩方進行彼此通信。 位: 0 15 31 源端口 目的端口 長度 校驗和 8個八位位組 10 TCP 作為文件傳輸協(xié)議 盡管 TCP 和 UDP 都使用相同的網(wǎng)絡(luò)層( IP), TCP 卻向應(yīng)用層提供與 UDP 完全不同的服務(wù)。所用這些應(yīng)用可以容忍小部分的分組丟失,但 UDP 沒有任何的擁堵控制措施。報頭包括源端口和目的端口、長度字段(包括報頭和數(shù)據(jù)
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1