999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#的多線程P2P即時通訊系統

2021-03-07 12:36:37吳曉華梁哲劉同來
電腦知識與技術 2021年36期

吳曉華 梁哲 劉同來

摘要:為實現局域網內多個終端間信息、文件互通,同時滿足用戶對數據傳輸的即時性需求,結合P2P、Socket等通信技術,設計了一個多線程即時通訊系統。系統實現了局域網絡中用戶登錄、在線用戶列表實時更新、即時性信息傳輸以及文件傳輸等功能。系統摒棄第三方集中服務器,有效提升了數據傳輸的安全性;同時,數據傳輸不需第三方中轉,其傳輸速率可得到大幅提升。此外,系統采用多線程通信技術,進一步加速了大文件的傳輸速率。

關鍵詞:C#;P2P;局域網;多線程;Socket

中圖分類號:TP311.52? ? ? 文獻標識碼:A

文章編號:1009-3044(2021)36-0075-04

開放科學(資源服務)標識碼(OSID):

A C#-based Multi-Thread P2P Communicating System

WU Xiao-hua1, LIANG Zhe2, LIU Tong-lai3

(1.Network and Information Technology Center, Guilin University of Electronic Technology, Guilin 541004, China; 2. China Mobile Guangxi Company, Nanning 530000, China; 3. College of Information Science and Technology, Zhongkai University of Agriculture and Engineering, Guangzhou 510225, China)

Abstract: To achieve the message and file interchange among multiple clients, as well as the immediacy demand of data transmission of the clients in a local area network, a multi-thread real-time communicating system is designed using technologies such as peer-to-peer, socket and so on. The system realized the functions of user login, real-time updates of online user list, real-time message and file transmission, etc. The system eliminates the third-party centralized server, which effectively improves the security of data transmission; In the meanwhile, since there is no need for a third party to transfer data, the data transmission rate can be greatly increased. In addition, the system uses multi-thread technology, which further accelerates the transmission rate of large files.

Key words: C#; P2P; LAN; multi-thread; Socket

1 背景

作為效率低、費用高的信件、電報、電話等老式通信技術的替代品,即時通訊系統因其快速、便捷等特點,被人們廣泛應用于教育、商業以及社交活動中。同時,隨著互聯網技術的迅速發展,即時通訊系統被賦予越來越多先進的功能,如文件傳輸、遠程視頻等,其實時性也得到不斷提高,給人們帶來諸多便利。

現有的即時通訊系統,大多采用集中式服務器-客戶端架構(即C/S架構)實現用戶注冊、登錄以及好友列表等功能。在此網絡架構下,用戶憑據、聊天內容等重要信息存儲在服務器端的數據庫中,任何能夠訪問服務器和數據庫的人都可以輕松訪問用戶信息,存在較大的安全隱患。同時,其資源損耗總是集中在服務器端,運營成本較大。此外,一旦服務器發生故障,數據損失將不可挽回。

作為另一通信方案,點對點架構(Peer to Peer,P2P),因其去中心化、健壯性、可擴展性等優勢,廣泛應用在即時通訊領域[1-2]。沒有了第三方服務器的介入,即時通訊系統將由用戶控制,信息安全由通訊雙方自主管理,大大提高了系統的安全性。

眾所周知,進程是指在PC系統中正在運行的一個應用程序,是程序的基本執行實體,它同所有進程共享相同的一個存儲空間。而進程的執行需要依賴線程,也就是說,線程是進程的最小執行單位。一般來說,一個進程中需要一個線程支撐。為加快文件的下載速率,本文采用多線程技術實現同步下載。

本文采用P2P、Socket、線程池等技術,實現以下功能:

1)實現同一局域網內用戶注冊、登錄、查看在線列表等功能,用戶主機之間實現即時通訊。

2)實現多用戶間文檔、音頻、圖片以及視頻等文件的傳輸。

3)實現多線程多任務同步,加速文件下載。

2 關鍵技術

2.1 P2P

與常見的C/S網絡架構不同的是,P2P網絡環境中的節點既可以充當服務器端,為其他節點提供服務,如資源、算力共享,信息交換等;又可以作為客戶端,獲取其他節點提供的服務。網絡中彼此連接的每個節點之間沒有主從之分,其關系對等,因此又稱對等網絡[3]。如圖1所示為兩種不同網絡的基本架構。

利用P2P技術,可以充分利用邊緣網絡中潛在的帶寬資源以提高通信效率,同時還能克服中央服務器因帶寬、存儲等資源有限所導致的性能瓶頸。

2.2 多線程

為實現文件的多線程多任務同步,本文將文件的下載過程劃分為以下3個模塊:

1)任務創建

如圖2所示,每個待傳輸文件將被創建為一個任務,即時通訊系統向PC請求當前內存使用狀況,并申請多開線程。當線程數量確定時,系統將對文件進行分塊,以達到同時下載。最后發送線程啟動消息,等待下載完成。

2)線程鎖機制

在多線程下載過程中,為避免多任務之間的線程互相干擾,保證線程的安全。如圖3所示,本文引入線程鎖機制,即某一進程將某個線程占用時,系統將對該線程進行加鎖操作,直到該進程結束,才對線程解鎖。這樣一來,可以保證系統同時運行多個線程時,相互之間互不干擾,為實現多任務同步下載提供了技術支持[4]。

3)線程下載

線程接收到啟動請求,獲取下載任務分配的數據分塊,此時線程被鎖。等到數據接收完畢之后,線程發送請求解鎖消息,系統釋放該線程,以便其他下載任務使用,如圖4所示。

2.3 局域網通訊

局域網通訊的高效、輕便、低成本、易于管理等特點,使得其能應用于校園網、企業網等封閉私有領域[5]。基于局域網的即時通信系統能夠快速建立局域網內用戶的信息交流。廣域網上的即時通訊軟件,一般采用UDP或者TCP協議體系[6]。國內常見的即時通信軟件有較早的MSN即時通信軟件,還有騰訊公司的QQ、微信等,國外有Line,WhatsApp,Skype等。這些軟件在實際體驗方面各具優勢,也基本具備了實時通信、照片傳輸,甚至語音通話等功能[7]。然而這些軟件的具體實現代碼均屬于商業機密,各種技術細節不得而知。在局域網環境下,相較常見的基于廣域網環境設計的軟件,局域網即時通訊系統雖然更容易被實現,但可借此理解TCP、UDP等通信協議以及Socket的實現原理,具有一定研究價值。

2.4 Socket

套接字(Socket)可以看作是雙向通訊信道中的一個端點,其為不同主機之間通訊創建通信通道,一般由IP地址和端口組成,是一個通信鏈的句柄[8-9]。Socket的簡單通信過程如圖5所示。首先,服務器端初始化Socket,綁定IP地址以及端口,同時服務器端對該端口進行監聽,等待客戶端的連接;這時有一個客戶端創建一個Socket,與該端口進行連接,經過“三次握手”之后,客戶端便可以與服務器端成功建立通訊;接著,客戶端可以向服務器端發送服務請求,比如數據共享、算力共享等;服務器端接受請求并處理,然后把請求的服務數據回饋給客戶端,客戶端讀取數據;最后,連接關閉,一次通信交互結束。

基于Socket設計與實現局域網通訊,具有信息收發速度快、保密性好、易于編程實現等優點。

3 系統功能

3.1 登錄模塊

用戶運行即時通訊系統,輸入用戶名登錄。登錄之后系統采用UDP廣播整個網段,同時檢測處于同一局域網環境中的在線用戶,并發送用戶名和IP地址信息,告知其他用戶“我已上線”。與此同時,用戶接收上線用戶的廣播消息,并把廣播主機加入通信名單。至此,不同用戶間已經能夠相互通訊。

3.2 通信模塊

通信模塊是本系統的主要模塊,該模塊實現了用戶間信息交流,文檔、圖片、音樂以及視頻等文件的傳輸,該模塊的實現主要基于Socket技術。Socket端口首先對系統中端口進行監聽,當某個用戶請求文件傳輸時,建立文件發送連接,同時對方建立接口進行文件接收,以此實現文件傳輸功能。

3.3 實現多線程通信

對于P2P網絡,每一個用戶既是客戶端又是服務器端,當建立連接后,其中一個客戶端提出請求,服務器端將產生一個線程用來與該客戶端建立起Socket連接。由于線程的創建和銷毀會產生一定開銷,同時線程過多帶來調度開銷以及降低內存資源利用率,進而影響系統整體性能。出于對性能的考慮,本文引入線程池模式。線程池維護著多個線程,等待系統分配可并發執行的任務,線程執行完畢之后不會立即被銷毀,避免了處理短期任務頻繁創建與銷毀線程導致的執行延遲以及能耗等代價。

4 實驗結果與分析

程序在三臺計算機上進行了運行,并測試功能的完備性,系統基于C#語言開發,對系統的登錄功能、通信功能以及文件傳輸功能進行了測試。

如圖6為此聊天系統的啟動界面,顯示本機IP地址以及登錄用戶名。

如圖7所示,用戶成功登錄系統,通過UDP向整個網段廣播,通知所有在線用戶。

如圖8所示,監聽到新用戶上線所發送的UDP消息,將新上線用戶添加入通信列表。

局域網下文件的P2P共享,包括音頻、圖片以及視頻等文件的傳輸,是本系統最核心的功能,系統的多線程多任務主要在此模塊實現,實現文件傳輸與通信功能同步。

如圖9所示,其中一個用戶向另一用戶發送文件,在選擇文件以及保存文件時調用Window自帶的文件存儲目錄,完成文件的發送和接收。

信息發送是本系統的另一個核心功能,包含以廣播形式發送的文字信息,以及選擇某個用戶進行私聊的通信模塊,信息發送的實現同樣采用基于Socket技術。

如圖10所示,選擇想要進行對話的用戶,應用P2P技術,便可進行聊天,系統顯示用戶發送消息的時間、用戶名以及用戶IP地址。

5 結束語

本文所設計和實現的多線程P2P即時通訊系統,采用了P2P技術,Socket技術以及線程池等技術,實現了登錄模塊,即時通訊模塊以及文件傳輸模塊。采用基于TCP的Socket通信機制,保證了網絡通信的準確性、及時性。通過在三臺設備上進行測試,系統運行穩定,文件傳輸速度快。系統很好地解釋了P2P、Socket以及多線程技術的實現原理,為后續開發多線程P2P通訊技術提供了參考。

參考文獻:

[1] 李佳琦.基于P2P技術的即時通信監控系統研究[J].中國管理信息化,2017,20(17):187-188.

[2] 王建.基于JXTA的P2P即時通信軟件的Java實現研究[J].無線互聯科技,2018,15(4):11-12.

[3] 江鳳蓮.P2P技術綜述[J].電腦知識與技術(學術交流),2006,2(12):36-37,65.

[4] 賀嘉貝.基于P2P的局域網多線程共享軟件設計[J].電腦編程技巧與維護,2016(8):21-23,55.

[5] 徐文莉,熊燕,李燕.P2P即時通信系統關鍵技術研究及應用[J].軟件導刊,2017,16(9):151-153,157.

[6] 光文華.基于局域網的即時通信軟件設計與實現[D].昆明:昆明理工大學,2014.

[7] 朱浩悅,張軍軍,周楠,等.基于Socket的P2P在線通信系統的實現[J].黑龍江科技信息,2015(31):153.

[8] Yogi T,Shiroma T,Nagata T,et al.Study on P2P Communication between Web Browsers using WebSocket[J].Ieice Technical Report,2010(110):59-62.

[9] 朱浩悅,張軍軍,周楠,等.基于Socket的P2P在線通信系統的實現[J].黑龍江科技信息,2015(31):153.

【通聯編輯:謝媛媛】

主站蜘蛛池模板: 欧美在线一级片| 老色鬼欧美精品| 色香蕉影院| 亚洲视频无码| 久久99国产精品成人欧美| 日本黄色a视频| 国产精品30p| 亚洲女同欧美在线| 国产精品欧美激情| 欧美精品伊人久久| 久久人体视频| 亚洲综合天堂网| 日韩成人在线视频| 一本一道波多野结衣一区二区| 中文字幕色站| 久久久四虎成人永久免费网站| 精品视频一区二区观看| 久久午夜夜伦鲁鲁片无码免费| 国产网站黄| 中文字幕人妻av一区二区| 伊人激情综合网| 午夜不卡视频| 少妇露出福利视频| 精品国产免费观看一区| 亚洲成人一区在线| 亚洲日本中文字幕乱码中文| 亚洲精品麻豆| 国产免费久久精品99re不卡| 国产视频a| 国内精品久久久久久久久久影视| 午夜无码一区二区三区| 美女高潮全身流白浆福利区| 国产午夜不卡| 欧美日本视频在线观看| 福利视频久久| 免费黄色国产视频| 19国产精品麻豆免费观看| 久久中文无码精品| 国内丰满少妇猛烈精品播| 国产精品欧美日本韩免费一区二区三区不卡 | 色综合五月婷婷| 久久一日本道色综合久久| 亚洲精品欧美日本中文字幕| 9999在线视频| 精品人妻系列无码专区久久| 国产免费高清无需播放器| a毛片在线免费观看| 国产精品毛片一区| 91高清在线视频| 女人一级毛片| 91精品国产自产在线观看| 国产在线一二三区| 国产美女自慰在线观看| 日韩欧美国产精品| 999精品视频在线| 免费看美女自慰的网站| 丁香婷婷激情网| 亚洲成人网在线播放| 青青草国产免费国产| 91黄视频在线观看| 久草视频福利在线观看| 亚洲综合第一区| 欧美一区精品| 国产美女久久久久不卡| 亚洲国产天堂久久综合226114| 久久永久视频| 欧美啪啪一区| WWW丫丫国产成人精品| 亚洲制服中文字幕一区二区| 欧美激情网址| 免费jizz在线播放| av尤物免费在线观看| 色综合久久无码网| 欧美区一区| 拍国产真实乱人偷精品| 亚洲热线99精品视频| 亚洲最新在线| 亚洲色大成网站www国产| 日韩欧美国产成人| 中文一区二区视频| 91日本在线观看亚洲精品| 国产人前露出系列视频|