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

正文內(nèi)容

基于visualc的p2p文件傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(完整版)

  

【正文】 ............................................................................4 TCP 協(xié)議 ........................................................................................4 UDP 協(xié)議 ........................................................................................5 多線程編程 ................................................................................................5 WinI編程與 WinSock 編程的比較及其優(yōu)點(diǎn) ............................................6 通信原理及過(guò)程 .........................................................................................6 第三章 具體的設(shè)計(jì)方法 .........................................................................................8 基本的 SOCKET 函數(shù) ................................................................................8 通信過(guò)程 ................................................................................................. 11 C/S模式的請(qǐng)求響應(yīng)方式 ..................................................................... 11 SOCKET 建立連接過(guò)程 ........................................................................ 12 ....................................................................................... 13 ....................................................................................... 15 具體實(shí)現(xiàn)部分 .......................................................................................... 17 ............................................................................. 17 ............................................................................. 24 ..................................................................................................... 26 .............................................................................................. 27 東南大學(xué)成賢學(xué)院 第 VI 頁(yè) 共 44 頁(yè) .............................................................................................. 29 第四章 存在的問(wèn)題及解決辦法 .............................................................................. 33 第五章 后記 .......................................................................................................... 36 第六章 參考文獻(xiàn) ................................................................................................... 37 第七章 致 謝 ...................................................................................................... 38 東南大學(xué)成賢學(xué)院 第 1 頁(yè) 共 44 頁(yè) 第一章 緒論 課題的主要內(nèi)容和國(guó)內(nèi)外發(fā)展方向 P2P 可以理解為“伙伴對(duì)伙伴”的意思。在現(xiàn)實(shí)生活中我們每天都按照 P2P 模式面對(duì)面地或者通過(guò)電話交流和溝通。 今天, P2P 再一次被關(guān)注主要是由 于 Napster 以及 ICQ 類(lèi)軟件的出現(xiàn),雖然在Napster 之前 P2P 方式的研究也從未停止。 在國(guó)外, P2P 發(fā)展已經(jīng)如火如荼, Intel、 Sun、 Microsoft 等公司已經(jīng)在制定 P2P的標(biāo)準(zhǔn)?;窘Y(jié)構(gòu)如圖 , 這個(gè)結(jié)構(gòu)存在于Inter 中計(jì)算機(jī)之中,它決定了計(jì)算機(jī)在網(wǎng)絡(luò)上的動(dòng)作。 TCP 協(xié)議即采用流式套接字 SOCKET_STREAM。 Datagram(UDP) Socket 雖然提供雙向的通信,但沒(méi)有可靠、有次序、不重復(fù)的保證,所以 UDP 傳送數(shù)據(jù)可能會(huì)收到無(wú)次序、重復(fù)的數(shù)據(jù),甚至數(shù)據(jù)在傳輸過(guò)程中出現(xiàn)遺漏。 Exit Process()函數(shù)即可在進(jìn)程中的某個(gè)線程中使用,并將立即終止本進(jìn)程的運(yùn)行。 通信原理及過(guò)程 大多數(shù)通過(guò)網(wǎng)絡(luò)進(jìn)行通信的應(yīng)用程序,不論是通過(guò)因特網(wǎng)還是小型的辦公網(wǎng)絡(luò),它們都使用同樣的原則和功能來(lái)執(zhí) 行通信。正像兩個(gè)人打電話交談一樣,這個(gè)連接是一個(gè)雙向的通道,即雙方都可以發(fā)送消息?,F(xiàn)在的 Winsock已經(jīng)基本上實(shí)現(xiàn)了與協(xié) 議無(wú)關(guān),你可以使用 Winsock來(lái)調(diào)用多種協(xié)議的功能,但較常使用的是 TCPIP 協(xié)議。 SOCKET PASCAL FAR socket( int af, int type, int protocol ) 參數(shù) af 目 前 只 提 供 PF_INET(AF_INET) ; type : Socket 的 類(lèi) 型 (SOCK_STREAM、 SOCK_DGRAM); protocol:通訊協(xié)定 (如果使用者不指定則設(shè)為0); 如果要建立的是遵從 TCPIP協(xié)議的 socket,第二個(gè)參數(shù) type應(yīng)為 SOCK_STREAM,如為 UDP(數(shù)據(jù)報(bào))的 socket,應(yīng)為 SOCK_DGRAM。 int PASCAL FAR listen( SOCKET s, int backlog )。為了使服務(wù)器端接受客戶(hù)端的連接請(qǐng)求,就要使用 accept() 函數(shù),該函數(shù)新建一 Socket 與客戶(hù)端的 Socket 相 通,原先監(jiān)聽(tīng)之 Socket 繼續(xù)進(jìn)入監(jiān)聽(tīng)狀態(tài),等待他人的連接要求。 參數(shù): s: Socket 的識(shí)別碼; int PASCAL FAR WSACleanup( void )。參數(shù): s: Socket 的識(shí)別碼 buf:存放要傳送的資料的暫存區(qū); len buf:的長(zhǎng)度;flags:此函數(shù)被調(diào) 用的方式。 傳輸文件過(guò)程 東南大學(xué)成賢學(xué)院 第 14 頁(yè) 共 44 頁(yè) 自己中斷 服務(wù)器 客戶(hù)端 向客戶(hù)端發(fā)送傳輸文件請(qǐng)求,等待 等待服務(wù)器的請(qǐng)求 自己中斷 開(kāi)始傳輸文件進(jìn)程進(jìn)程 開(kāi)始傳輸文件進(jìn)程進(jìn)程 SOCKET 建立連接并傳輸文件 SOCKET 建立連接并傳輸文件 過(guò)程中斷或?qū)Ψ降闹袛? 過(guò)程中斷或?qū)Ψ降闹袛? 傳輸完畢,結(jié)束進(jìn)程 傳輸完畢,結(jié)束進(jìn)程 關(guān)閉 連接,返回 關(guān)閉連接,返回 對(duì)方拒絕 對(duì)方拒絕 東南大學(xué)成賢學(xué)院 第 15 頁(yè) 共 44 頁(yè) 圖 3. 3 傳輸文件過(guò)程 首先服務(wù)器向客戶(hù)端發(fā)送請(qǐng)求,要求傳送文件,在得到客戶(hù)端相應(yīng)之前,雙方都可以取消這次傳輸,同時(shí)通知對(duì)方已經(jīng)取消連接;一旦客戶(hù)端給了服務(wù)器響應(yīng),則建立進(jìn)程,進(jìn)行傳輸;建立的進(jìn)程里,要定義新的 SOCKET 套接字,以建立連接,在 傳輸過(guò)程中,同樣可以進(jìn)行中斷,同時(shí)通知對(duì)方已經(jīng)取消連接;傳輸結(jié)束后,斷開(kāi)連接,結(jié)束該進(jìn)程。指定類(lèi)型為 void,函數(shù)聲明為 SetParent (CDialog* pWnd)。 連接應(yīng)用程序 客戶(hù)端與服務(wù)器的連接通過(guò)建立 SOCKET 套接字完成的,客戶(hù)端進(jìn)行連接,服務(wù)器進(jìn)程偵聽(tīng),如果在規(guī)定的時(shí)間內(nèi)連接不上,或是網(wǎng)絡(luò)問(wèn)題,則系統(tǒng)自動(dòng)退出,提示用戶(hù)有錯(cuò)誤發(fā)生;一旦建立連接,就可以通 過(guò)以定義函數(shù)發(fā)送和接受消息,直到用戶(hù)退出。在實(shí)際 Windows 網(wǎng)絡(luò)通信軟件開(kāi)發(fā)中,異步非阻塞套接字是用的最多的。 ②接收 (這是本程序的一個(gè)關(guān)鍵部分,一些文件的傳輸狀態(tài)要靠這部分決定,但不是理想解決方案,主要是在傳輸文件時(shí)用到)。(在傳送線程函數(shù)里沒(méi)傳送 1k 的文件就會(huì)循環(huán)詢(xún)問(wèn)一次 m_bSendEnd 是否為 true),故在確定 m_bSendEnd 為 true 后,向?qū)Ψ桨l(fā)東南大學(xué)成賢學(xué)院 第 25 頁(yè) 共 44 頁(yè) 送消息 發(fā)送端終止 ,然后結(jié)束退出; ( 4)在傳送過(guò)程中:如果對(duì)方中止,則會(huì)受到消息“客戶(hù)端接收終止”,則設(shè)置m_bRecEnd 為 TRUE,同樣的在傳送 線程函數(shù)里沒(méi)傳送 1k 的文件就會(huì)循環(huán)詢(xún)問(wèn)一次m_bSendEnd 是否為 true,故在確定 m_bSendEnd 為 true 后,結(jié)束退出; 在沒(méi)有任何終止消息的情況下,調(diào)用函數(shù) AfxBeginThread創(chuàng)建線程,開(kāi)始發(fā)送文件:首先調(diào)用 Open 函數(shù)打開(kāi)要傳送的文件,然后創(chuàng)建 CSocket 類(lèi)的對(duì)象 sockSrvr,開(kāi)始另一個(gè)套接字,等待對(duì)方的連接;連接成功后,創(chuàng)建 SSFI 對(duì)象,來(lái)接收文件的信息, SSFI 結(jié)構(gòu)如下: typedef struct SSFI { //SOCKET_STREAM_FILE_INFO 獲取文件信息 TCHAR szFileTitle[128]。 //保留,為 0 DWORD dwReserved1。常見(jiàn)的WAVE 語(yǔ)音文件主要有兩種,分別對(duì)應(yīng)于單聲道( 采樣率、 8Bit 的采樣值)和雙聲道( 采樣率、 16Bit 的采樣值)。(本程序還沒(méi)有完全實(shí)現(xiàn)這個(gè)功能)。然后用 waveInOpen 函數(shù)打開(kāi)錄音設(shè)備,以初始化WAVE 波形的頭信息, waveInPrepareHeader為錄音設(shè)備準(zhǔn)備緩存后, waveInAddBuffer/給 輸 入 設(shè) 備增 加 一 個(gè)緩 存 ,開(kāi) 始 錄 音, 調(diào) 用 waveInStart 函 數(shù) , 開(kāi)始Audio_Listen_CThread 和 Audio_Send_CThread 進(jìn)程; ① Audio_Listen_CThread:聲音文件接受線程 先定義 CSocket 類(lèi)的對(duì)象 m_Server,調(diào)用 Create, Listen,等待對(duì)方連接,連接成功后,開(kāi)始循環(huán)接收聲音文件,首先接收文件長(zhǎng)度,接下來(lái)開(kāi)辟 length 長(zhǎng)的內(nèi)存空間,內(nèi)存申請(qǐng)成功,可以進(jìn)行循環(huán)檢測(cè)接受,每輪聲音文件接收完畢 后,都要檢查是否地址越界;接受完畢后,關(guān)閉 SOCKET 連接; ② Audio_Send_CThread:聲音文件發(fā)送線程 東南大學(xué)成賢學(xué)院 第 29 頁(yè) 共 44 頁(yè) 先定義 CSocket 類(lèi)的對(duì)象 m_Client,調(diào)用 Connect 函數(shù),建立與對(duì)方的連接,循環(huán)檢測(cè)發(fā)送聲音文件,首先發(fā)送塊的長(zhǎng)度,其次發(fā)送塊的內(nèi) 容;用 dwSent 表示已經(jīng)發(fā)送的字節(jié)數(shù),發(fā)送聲音文件開(kāi)始,每輪聲音文件發(fā)送完畢后,都要檢查是否地址越界;接受完畢后,關(guān)閉 SOCKET 連接; 遠(yuǎn)程控制 此功能類(lèi)似于 的遠(yuǎn)程協(xié)助,但有很大的局限性,僅能夠鎖定或解鎖對(duì)方鍵盤(pán),鼠標(biāo),得到對(duì)方進(jìn)程和殺死某個(gè)進(jìn)程。采樣值是指每一次采樣周期內(nèi)聲音模擬信號(hào)的積分值。//對(duì)象和指針 定義變量 dwRead,來(lái)累計(jì)傳送字節(jié)數(shù),初始為 0,只要比要傳送的文件小就進(jìn)行循環(huán)傳送;在循環(huán)過(guò)程中還要判斷 2種中斷的方式是否發(fā)生,每次傳送過(guò)程中都要分配 1024字節(jié)的空間,來(lái)存儲(chǔ)讀入的文件流, sockRecv 對(duì)象調(diào)用函數(shù) S
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1