天天看點

ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳

現在我們将在 ESFramework Demo -- 檔案傳送Demo  的基礎上,使用ESPlus提供的第四個武器,為其增加P2P通信的功能。在閱讀本文之前,請務必先掌握 ESFramework 開發手冊(04) -- 可靠的P2P

 一文中介紹的P2P的基礎知識以及相關API的用法。

      本Demo主要示範以下功能:

(1)建立基于TCP的P2P通道

(2)建立基于UDP的P2P通道(内部使用可靠的UDP)

(3)使用P2P通道發送消息和傳送檔案 

一.服務端

      在P2P打洞的過程中,服務端會參與協助P2P通道的建立,整個過程是由ESFramework/ESPlus内部自動完成的,而這個過程對于架構使用者是透明的。P2P通道建立後,用戶端與用戶端之間的通信就與伺服器沒有任何關系了。是以我們直接把上一個demo的服務端拿過來用,不需要做任何修改。 

二.用戶端

      用戶端主要使用IRapidPassiveEngine提供的P2PController來查詢和控制P2P通道的狀态。

嘗試建立P2P通道    

      正如

 一文中介紹的,并不是所有的用戶端之間的P2P通道都可以建立成功,建立P2P通道是一個嘗試的過程,IP2PController的P2PConnectAsyn方法就是嘗試與目标使用者建立P2P通道。

      時機很重要。在何時建立P2P通道了?一般而言,是在兩個用戶端需要高頻通信之前,調用P2PConnectAsyn進行嘗試建立。

      在本Demo中,我們是在每次打開與目标使用者的聊天視窗的時候,來嘗試建立P2P通道的。如下所示:

ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳
void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
  {
      if (e.Button != System.Windows.Forms.MouseButtons.Left)
      {
          return;
      }

      ListViewHitTestInfo info = this.listView1.HitTest(e.Location);
      if (info.Item != null)
      {
          //嘗試與目标使用者建立P2P通道
            this.rapidPassiveEngine.P2PController.P2PConnectAsyn(info.Item.Text);

          ChatForm form = this.chatFormManager.GetForm(info.Item.Text);      
......      
 }
  }       
ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳

      使用P2PConnectAsyn方法開始打洞時,若雙方位于同一區域網路,一般會建立起基于TCP的P2P通道;若雙方位于不同的網絡,一般會建立起基于UDP的P2P的通道。如果與目标使用者之間已經存在可用的P2P通道,則P2PConnectAsyn将不再做任何動作,而直接傳回。

      為了獲得P2P通道建立成功或失敗以及後續P2P通道被關閉的通知,demo中我們在MainForm的Initialize方法中預定了P2PController的P2PChannelOpened和P2PChannelClosed事件。

//預定P2P Channel建立成功的事件
   this.rapidPassiveEngine.P2PController.P2PChannelOpened += new CbGeneric<P2PChannelState>(P2PController_P2PChannelOpened);
   //預定P2P Channel關閉時的事件
   this.rapidPassiveEngine.P2PController.P2PChannelClosed += new CbGeneric<P2PChannelState>(P2PController_P2PChannelClosed);      

      當P2P通道建立成功或被關閉時,本demo通過修改對應聊天視窗的Title文字來顯示這種狀态。比如,當P2P通道建立成功時,聊天視窗的Title顯示如下:

ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳

      通常,如果兩個用戶端位于同一個LAN,或者有一個用戶端直接位于Internet上,則它們之間的P2P通道是基于TCP的;否則,建立的P2P通道是基于UDP的。

      ChatForm提供了ShowP2PChannelState方法來顯示與聊天對象之間的P2P通道狀态。

ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳
///<summary>
       /// 顯示P2P連接配接的狀态
        ///</summary>
        public void ShowP2PChannelState(P2PChannelState state)
        {
            this.Text = (state != null) ? string.Format("正在與{0}對話中【{1}直連:{2}】...", this.friendID, state.ProtocolType, state.DestIPE) : string.Format("正在與{0}對話中...", this.friendID);
        }       
ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳

      請注意,當與目标使用者之間沒有P2P通道時,P2PController的GetP2PChannelState方法傳回的是null。

觀察P2P通信

      當P2P通道建立成功後,兩個使用者之間的後續通信将經過P2P通道傳送,在本Demo中,表示後續的聊天消息以及檔案傳送都将通過P2P通道進行。

      那麼,如何判斷消息是通過伺服器中轉的,還是經過P2P通道直接傳送的了?我們常用的有兩個簡單的方法。

(1)觀察伺服器的MainServerForm界面。      

ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳

      如果消息是經過伺服器中轉的,那麼界面上顯示消息接收者使用者對應的“下載下傳次數”、“上傳次數”、“最後一次下載下傳時間”等都會跟着發生變化。就本例來說,每當你給對方發送一個聊天消息,如果是經過伺服器中轉,那麼界面上顯示的對方的下載下傳次數會增加1,自己的上傳次數也增加1,自己的最後一次上傳時間也會變化。而如果消息是通過P2P通道傳送的,這些資料就不會受影響。

(2)檢視資源螢幕

      如果是Win7的系統,任務管理器“性能”顯示中提供了“資源螢幕”,可以監控網絡的活動。使用它,我們就可以看到應用程式在和哪些機器進行通信。如下圖所示:

ESFramework Demo -- P2P通信Demo(附源碼)一.服務端二.用戶端三.源碼下載下傳

      上面是我們另一個P2P應用demo的截圖,圖中59.175.145.163是伺服器的IP,而我們看到OMCS.ClientDemo.exe接收資料的主要流量來自于ZY-PC這台電腦,這表示兩個用戶端之間的資料是經過P2P通道傳送的,沒有通過伺服器中轉。之是以圖中顯示的用戶端與伺服器之間還有微小的流量,那是由類似定時心跳消息等産生的。

      如果不是Win7系統,也可以通過安裝網絡監控軟體(如NetLimiter)來檢視這些資訊。

三.源碼下載下傳

 ESFramework.Demos.P2P 源碼

閱讀 

更多ESFramework開發手冊系列文章

----------------------------------------------------------------------------------------------------------------------------------------------- 

關于ESFramework的任何問題,歡迎聯系我們:

電話:027-87638960

Q Q:372841921

郵件:

[email protected]

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

今日(2024年1月9日),英特尔发布了全新的酷睿第 14 代移动和台式机处理器系列,包括全新酷睿HX 系列移动处理器,以及主流的 65W 和 35W 桌面(台式机)处理器。另外,英特尔还发布了全新英特尔酷睿移动处理器 1 系列,适用于高性能主流轻薄本。

■第 14 代酷睿HX 系列,为移动发烧友带来卓越性能体验

全新英特尔酷睿第 14 代 HX 系列移动处理器专为游戏玩家、创作者和专业人士打造,以提供杰出的计算性能和出色的笔记本电脑便携性。在全新的英特尔酷睿 HX 系列处理器中,i9-14900HX 拥有 8 个性能核和 16 个能效核,提供出色的连接性能以及令人惊艳的单线程和多线程性能。此外,英特尔酷睿 i7-14700HX 处理器的能效核增加了 50%,使 HX 系列实现了创作性能的跃升。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

14代酷睿HX系列的亮点包括:

·最高睿频可高达 5.8 GHz,游戏性能和多任务处理性能均有提升。

·i9-14900HX处理器最多拥有 24 核心(8 个性能核和 16 个能效核)和 32 线程。

·i7-14700HX处理器的能效核增加了 50%,达到 20 核心(8 个性能核和 12 个能效核) 28 线程。

·总体支持最高 192GB 的DDR5-5600内存。

·HX系列处理器拥有出色的超频功能,支持英特尔Extreme Utility(XTU)和英特尔Extreme Memory Profile(XMP)。

·HX系列支持全新的英特尔应用优化器(APO),自英特尔酷睿第 14 代于 2023 年 10 月首次发布以来,其支持的游戏增加了 6 款(总计 8 款)。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

·Thunderbolt 5 提供 80 Gbps 双向带宽,能够提供最高 120 Gbps 的带宽,是 Thunderbolt 4 带宽的 3 倍,带来出类拔萃的显示和数据传输体验。此外还支持拥有 40 Gbps 带宽的 Thunderbolt 4,并且支持 PC 连接多个4K 显示器和配件。

·拥有出色的无线连接性能,包括通过集成方式支持英特尔Wi-Fi 6E,并可以通过独立方式支持英特尔Wi-Fi 7,能够在更多场景下实现千兆级速度,其响应能力和可靠性堪比有线连接。

·最新的Bluetooth 连接,支持 Bluetooth 5.4 和Bluetooth 5.3,为同时连接多个 Bluetooth 设备提供非凡的性能。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

2024年,超过 60 款搭载英特尔酷睿第 14 代 HX 处理器的笔记本电脑机型即将上市,让移动发烧友能够在游戏、创作和移动办公时获得更加卓越的体验。

■14 代酷睿主流桌面处理器,从台式机到边缘设备的优选

英特尔扩展了英特尔酷睿第 14 代台式机处理器家族,使主流 PC 用户和各类面向垂直市场的企业能够以全新的方式体验到英特尔最新一代台式机处理器的卓越性能。该 18 款新处理器覆盖全面,包括无后缀数字系列、无集成显卡的F系列和低功耗的T系列,提供用户日常游戏、创作和工作时的所需性能,让其拥有可以满足期待的英特尔平台功能。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布
英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布
英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

(上面的规格表可点击放大浏览)

最新的英特尔14代桌面处理器带来:

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

·睿频频率可高达 5.8 GHz,与前一代相比,多线程性能最高可提升 37%,微软Office性能最高可提升 7%。

·i9-14900处理器最多拥有 24 核心(8 个性能核和 16 个能效核)和 32 线程。

·i7-14700处理器增加了 4 个能效核,达到 20 核(8 个性能核和 12 个能效核)和 28 线程。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

·总体最高支持 192 GB 的 DDR5-5600/DDR4-3200内存,向下兼容当前的英特尔 600 和 700 系列芯片组。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

·继续支持盒内散热解决方案,提供英特尔Laminar RH1 和 RM1 散热器。

·新一代无线连接性能,支持英特尔Killer Wi-Fi 7和英特尔Killer Wi-Fi 6E。

·继续支持PCIe Gen 5.0、Gen 4.0 和可以提供40 Gbps 带宽的Thunderbolt 4。此外,支持集成的 USB 3.2 以提供最高可达 20 Gbps 传输带宽。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

全系列酷睿第 14 代台式机处理器目前已经在线上和线下发售。PC 用户在各个价位都能找到适合自己的处理器,满足日常的游戏、创作和办公需求。

在边缘端,通过在 LGA 插槽封装内集成更多核心,这些处理器能够在边缘处理强大的 AI 和计算密集型工作负载。从学校课堂内的交互式白板,到细节丰富的医学影像显示器,和工厂内的控制自动化和机器人,英特尔酷睿第 14 代处理器让各个垂直行业都能以更高能效、更具安全、更好效果的方式实现创新成果。

■英特尔1系列酷睿U 处理器:或定位低价位及超轻薄本

最新推出的1系列酷睿 U 系列移动处理器主要是满足用户对轻薄本的期待(正儿八经的轻薄本而非那些性能爆棚的“轻便本”),标准TDP为15W,最大功率55W,在轻薄本上实现性能与功耗的平衡。与此同时,1系列酷睿U处理器在平台功能上毫不妥协。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

全新的英特尔酷睿 U 处理器 1 系列提供:

·睿频频率可高达 5.4 GHz,英特尔酷睿 7 处理器 150U 拥有 10 核心(2 个性能核和 8 个能效核)和 12 线程。

·总体最高支持96 GB 的DDR5-5200/DDR4-3200内存。

英特尔第14代酷睿HX、酷睿主流桌面处理器,及全新酷睿U系列发布

·支持用于工作和娱乐的 Thunderbolt 4 通用连接,为连接多台 4K 显示器和配件提供 40 Gbps 带宽支持。

·支持 8 个PCIe Gen 4.0 和12 个PCIe Gen 3.0 通道,可用于最新的固态硬盘存储。

·支持最新的Bluetooth 5.4 和Bluetooth 5.3,包括Bluetooth 低功耗音频,实现低功耗下的沉浸式、高保真 PC 音频体验。还支持 Bluetooth Auracast广播音频这一新功能,用于广播音频调节、个人音频共享以及更好地使用助听器和新的助听服务。

·新一代无线连接,支持英特尔Killer Wi-Fi 7和英特尔Killer Wi-Fi 6E。

搭载酷睿 U 处理器 1 系列的笔记本将在 2024 年第一季度上市,届时,英特尔合作伙伴将公布更多细节。

处理器 处理 系列