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

正文內(nèi)容

基于visualc++的p2p文件傳輸系統(tǒng)的設(shè)計與實現(xiàn)-預(yù)覽頁

2025-01-07 02:23 上一頁面

下一頁面
 

【正文】 是一個實用性通信軟件。 學(xué)生簽 名: 日 期: 東南大學(xué)成賢學(xué)院 第 III 頁 共 44 頁 P 2 P 摘 要 P2P 是 peertopeer的縮寫,或稱為對等聯(lián)網(wǎng)。如論文涉及任何知識產(chǎn)權(quán)糾紛,本人將承擔(dān)一切責(zé)任。由于它們都需要有位于中心的服務(wù)器來協(xié)調(diào),于是便有了編寫本軟件的構(gòu)想。本軟件創(chuàng)建的是對話框應(yīng)用程序,采用多線程操作;連接后服務(wù)器可以充當(dāng)客戶機,客戶機也可以充當(dāng)服務(wù)器。在傳輸文件過程中,需要建立另一個進(jìn)程,在新建的進(jìn)程中傳輸文件,并且可以隨時中斷傳輸;遠(yuǎn)程控制功能主要是獲取對方機器信息,獲取對方進(jìn)程,鎖定和解鎖鍵盤,鎖定和解鎖鼠標(biāo)等 。通信 。 procedures in Windows XP system and under Visual C + + piler , and is running good in Windows NT and 100M software creates the dialog box applications through multithreaded operation。目前人們認(rèn)為其在加強網(wǎng)絡(luò)上人的交流、文件交換、分布計算等方面大有前途。 P2P 使得一個用戶可以直接連接到其它用戶的計算機,并交換文件,而不是像過去那樣連接到服務(wù)器去瀏覽與下載。即使從網(wǎng)絡(luò)看, P2P 也不是新概念, P2P 是互聯(lián)網(wǎng)整體架構(gòu)的基礎(chǔ)。但是,對于服務(wù)器來說,它們 之間仍然是對等聯(lián)網(wǎng)的。 Napster 正是喚醒了深藏在互聯(lián)網(wǎng)背后的對等聯(lián)網(wǎng)。 P2P 引導(dǎo)網(wǎng)絡(luò)計算模式從集中式向分布式偏移,也就是說網(wǎng)絡(luò)應(yīng)用的核心從中央服務(wù)器向網(wǎng)絡(luò)邊緣的終端設(shè)備擴散:服務(wù)器到服務(wù)器、服務(wù)器到 PC 機、 PC 機到 PC機, PC機到 WAP 手機??所有網(wǎng)絡(luò)節(jié)點上的設(shè)備都可以建立 P2P 對話。 P2P 技術(shù)的巨大影響力橫亙了內(nèi)容發(fā)行、通信等領(lǐng)域,它廣闊的前景引 來微軟、 Google、雅虎、新聞集團等公司的關(guān)注,但是 P2P 對內(nèi)容產(chǎn)業(yè)以及對傳統(tǒng)通信公司的負(fù)面影響依然存在,在很多國家都曾經(jīng)出現(xiàn)過互聯(lián)網(wǎng)服務(wù)提供商封殺 P2P的事件。 具有代表性的技術(shù)有: P2P 多線程斷點續(xù)傳的實現(xiàn); P2P 之 UDP 穿透 NAT 的原理與實現(xiàn); IPTV 業(yè)務(wù)承載網(wǎng)的解決; IPTV 流媒體分發(fā)和交付技術(shù)的新突破;第三代google 排名搜索引擎技術(shù);網(wǎng)格的應(yīng)用;基于 P2P 思想的 蠕蟲的原理與防治;網(wǎng)絡(luò)電話;流媒體應(yīng)用等。 圖 2 1TCP/IP 模型中早期的協(xié)議和網(wǎng)絡(luò) 如果 IP 數(shù)據(jù)包中有已經(jīng)封好的 TCP 數(shù)據(jù)包,那么 IP 將把它們向‘上’傳送到 TCP層。應(yīng)用程序輪流將信息送回 TCP 層, TCP 層便將它們向下傳送到 IP 層,設(shè)備驅(qū)動程序和TELNET FTP SMTP DNS TCP UDP IP ARPANET SATNET LAN 協(xié)議 網(wǎng)絡(luò) 應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 物理層和數(shù)鏈層 東南大學(xué)成賢學(xué)院 第 5 頁 共 44 頁 物理介質(zhì),最后到接收方。 UDP 協(xié)議 UDP 與 TCP 位于同一層 , UDP 不被應(yīng)用于那些使用虛電路的面向 連接的服務(wù),UDP 主要用于那些面向查詢 應(yīng)答的服務(wù),例如 NFS。UDP 協(xié)議使用數(shù)據(jù)報式套接字 SOCKET_DGRAM。由于 UDP Socket 在傳送數(shù)據(jù)時,并不保證數(shù)據(jù)能完整地送達(dá)對方,所以本程序采用 TCP 協(xié)議處理 Socket,以保證數(shù)據(jù)的正確性。當(dāng)主線程的進(jìn)入點函數(shù)返回時,進(jìn)程也就隨之結(jié)束。 該函數(shù)具有強制性,在執(zhí)行完畢后進(jìn)程即已經(jīng)被結(jié)束,因此位于其后的任何代碼將不能被執(zhí)行。 程序維護簡單,升級方便 Inter 發(fā)展迅速,其各種協(xié)議 也在不斷發(fā)展與完善。計算機上的一個應(yīng)用程序正在等待另一個程序打開通信連接,可以說這前一個應(yīng)用程序正在“偵聽”該連接請求,這很像你在等待某人給你打電話時,一直在留心電話鈴聲。當(dāng)然,要完成電話的呼叫,必須知道被呼叫方的電話號碼。最后,如果一方或雙方完成了對話,連接即關(guān)閉,就像打完電話一樣,你能夠知道電話中的對方是否把電話給掛斷了,或者雙方由于其它原因連接不上了。這樣就能看到完整的已 發(fā)送和已接收到的消息列表,還可以對發(fā)送消息的應(yīng)用程序和接收消息的應(yīng)用程序進(jìn)行比較。 Socket 實際在計算機中提供了一個通信端口,可以通過這個端口與任何一個具有 Socket接口的計算機通信。WSAData),其中 (181)表示我們用的是 , WSAata 用來存儲系統(tǒng)傳回的關(guān)于 WinSocket 的資料。 綁定端口 接下來要為服務(wù)器端定義的這個監(jiān)聽的 Socket 指定一個地址及端口( Port),這樣客戶端才知道待會要連接哪一個地址的哪個端口,為此我們要調(diào)用 bind()函數(shù),該函數(shù)調(diào)用成功返回 0,否則返回 SOCKET_ERROR。 監(jiān)聽 當(dāng)服務(wù)器端的 Socket 對象綁定完成之后 ,服務(wù)器端必須建立一個監(jiān)聽的隊列來接收客戶端的連接請求。 參 數(shù): s:需要建立監(jiān)聽的 Socket; backlog:最大連接個數(shù); 服務(wù)器端的 Socket調(diào)用完 listen()后,如果此時客戶端調(diào)用 connect()函數(shù)提出連接申請的話, Server 端必須再調(diào)用 accept() 函數(shù),這樣服務(wù)器端和客戶端才算正式 完成通信程序的連接動作。參數(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ù)調(diào)用成功返回一個新產(chǎn)生的 Socket 對象,否則返回 INVALID_SOCKET。另外,與程序啟動時調(diào)用 WSAStartup()憨數(shù)相對應(yīng),程序結(jié)束前,需要調(diào)用 WSACleanup() 來通知 Winsock Dll 釋放 Socket 所占用的資源。 建立客戶端的 Socket 客戶端應(yīng)用程序首先也是調(diào)用 WSAStartup()函數(shù)來與 Winsock的動態(tài)連接庫建立關(guān)系,然后同樣調(diào)用 socket()來建立一個 TCP 或 UDP socket(相同協(xié)定的 sockets 才能相通, TCP 對 TCP, UDP 對 UDP)。參 數(shù): s: Socket 的識別碼; name: Socket想要連接的對方地址; namelen:name 的長度。 int PASCAL FAR recv( SOCKET s, char FAR *buf, int len, int flags )。 第一次握手:建立連接時,客戶端發(fā)送 syn 包 (syn=j)到服務(wù)器,并進(jìn)入 SYN_SEND狀態(tài),等待服務(wù)器確認(rèn); 第二次握手:服務(wù)器收到 syn 包,必須確認(rèn)客戶的 SYN( ack=j+1),同時自己也發(fā)送一個 SYN包( syn=k),即 SYN+ACK包,此時服務(wù)器進(jìn)入 SYN_RECV 狀態(tài); 第三次握手:客戶端收到服務(wù)器的 SYN+ ACK 包,向服務(wù)器東南大學(xué)成賢學(xué)院 第 12 頁 共 44 頁 發(fā)送確認(rèn)包 ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入 ESTABLISHED 狀態(tài),完成三次握手。 遠(yuǎn)程控制過程 圖 3. 4 遠(yuǎn)程控制過程 首先客戶端向服務(wù)器發(fā)出請求,服務(wù)器同意后建立連接,用戶如果想執(zhí)行某個功已經(jīng)建立了連接 已經(jīng)建立了連接 發(fā)送遠(yuǎn)程控制請求 接受遠(yuǎn)程控制請求 修改注冊表 向?qū)Ψ桨l(fā)送結(jié)果 接受結(jié)果信息 判斷命令類別 退出 退出 服務(wù)器 客戶端 東南大學(xué)成賢學(xué)院 第 16 頁 共 44 頁 能,則向服務(wù)器發(fā)送消息,服務(wù)器收到消息后根據(jù)標(biāo)志字符判斷屬于哪項操作,然后作出相應(yīng)操作,直到退出。 控件 功能 ID 標(biāo)題 VALUE BUTTON1 打開服務(wù)器 IDC_BUTTON1 SERVER BUTTON2 停止與客戶端連接 IDC_BUTTON2 STOP BUTTON3 發(fā)送消息 IDC_BUTTON3 SEND BUTTON4 語音聊天 IDC_BUTTON4 PHONE BUTTON5 更改用戶權(quán)限 IDC_BUTTON5 CHANGE BUTTON6 發(fā)送文件 IDC_BUTTON6 Transmisson BUTTON7 停止接受文件 IDC_BUTTON7 Stop BUTTON8 接收文件 IDC_BUTTON8 Receive BUTTON9 設(shè)置字體 IDC_BUTTON9 FONT BUTTON10 截圖 IDC_BUTTON10 Capture BUTTON11 托盤 IDC_BUTTON11 HIDE PROGRESS1 發(fā)送文件進(jìn)度 IDC_PROGRESS1 m_CtrlProgressSend LIST1 顯示消息 IDC_LIST1 m_ctlRecvd EDIT2 編輯要發(fā)送的消息 IDC_EDIT2 m_strMsg STATIC 顯示連接狀態(tài) IDC_STATIC STATUS STATIC2 先是客戶端 IP IDC_STATIC2 m_socketIP 表 服務(wù)器對話框上控件的功能 創(chuàng)建客戶端和服務(wù)器端 創(chuàng)建的這兩個類基類為 CasyncSocket,類名為 MySocket,向該類中添加一個成員變量,用作指向父對話框窗口的指針。 對于這個報路類還要做的是添加事件函數(shù),要加入的事件函數(shù)為: ①客戶端: void OnConnect(int nErrorCode) 。 virtual void OnAccept(int nErrorCode)。 具體操作如下: 客戶端:首先獲取服務(wù)器的 IP 地址,輸入后,點擊 CONNECT 按鈕,連接成功前不允許其它按鈕能夠工作,所以都設(shè)置位 FALSE, 例如: GetDlgItem (IDC_BUTTON1)EnableWindow(FALSE)設(shè)置按鈕 BUTTON1不能工作,由于對話框類 CSocketDlg繼承了 CAsyncSocket 類,消息響應(yīng)函數(shù)里直接調(diào)用類成員 Create(),Connect()即可 ,當(dāng)連接到服務(wù)器后,自動調(diào)用 OnConnect(),使對話框上各 控件可以工作。 發(fā)送與接收消息 這里有必要講解一下阻塞套接字與非阻塞套接字。平常所說的 C/S結(jié)構(gòu)的軟件就是異步非阻塞模式的。 服務(wù)器端:定義局 部變量 iLength 表示發(fā)送數(shù)據(jù)長度, iSentmessage 表連接狀態(tài),用字符串 m_strMessage。 客戶端:主要是調(diào)用函數(shù) .Receive 接受對方的消息,然后根據(jù)對方發(fā)送的消息判斷是否進(jìn)行文件的傳輸?shù)裙δ?;例如:?dāng)接收到消息 “服務(wù)器停止工作”時,m_bSendDataEnd 設(shè)置為 TRUE。 實現(xiàn)傳輸文件的功能 由于考慮到網(wǎng)絡(luò)問題,限制為發(fā)送文件時不能同時接收文件,接收時也不能發(fā)送文件。 //文件的標(biāo)題名 DWORD dwFileAttributes。 //文件的最后修改時間 DWORD nFileSizeHigh。 //保留,為 0 } SSFI, * PSSFI。 語音通信 圖 3. 14語音通信主界面 當(dāng)前計算機系統(tǒng)處理聲音文件有兩種辦法:一是使用現(xiàn)成的軟件,如微軟的錄音機、SoundFe、 CoolEdit 等軟件可以實現(xiàn)對聲音信號進(jìn)行錄音、編輯、播放的處理,但它們的功能是有限的,為了更靈活,更大限度地處理聲音數(shù)據(jù),就不得不使用另外一種方法,既利用微軟提供的多媒體服務(wù),在 Windows 環(huán)境下自己編寫程序來進(jìn)行聲音處理來實現(xiàn)一些特定的功能。這里的采樣率是指聲音信號在進(jìn)行?!鷶?shù)轉(zhuǎn)換過程中單位時間內(nèi)采樣的次數(shù)。對于前者,采用 Windows MDK的低層音頻服務(wù)比較合適,因為低層音頻服務(wù)中的回調(diào)機制為我們提供了很大的方便。 以下是本程序的實現(xiàn)過程: 初始時,分配兩個緩沖區(qū) pBuffer1和 pBuffer2 ,用于存儲聲音信息, 大小為 16384字節(jié)(可自己設(shè)定),分配成功后,初始化 WAVE 波形的采集參數(shù),聲道設(shè)為 1,采樣率 11025,數(shù)據(jù)位設(shè)為 8
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1