DSAPI中TCP、UDP、HTTP的選擇

来源:https://www.cnblogs.com/dylike/archive/2019/03/25/10422716.html
-Advertisement-
Play Games

在DSAPI中,網路通訊主要有以下幾種:1 [TCP] TCP服務端 TCP客戶端 2 [UDP] UDP服務端 UDP客戶端 UDP指令版服務端 UDP指令版客戶端 3 [HTTP] HTTP服務端 (客戶端由瀏覽器或任何能訪問HTTP的函數或軟體替代,DSAPI中未提供HTTP客戶端) HTTP ...


在DSAPI中,網路通訊主要有以下幾種:
1 [TCP]
TCP服務端
TCP客戶端

2 [UDP]
UDP服務端
UDP客戶端
UDP指令版服務端
UDP指令版客戶端

3 [HTTP]
HTTP服務端
(客戶端由瀏覽器或任何能訪問HTTP的函數或軟體替代,DSAPI中未提供HTTP客戶端)
HTTP指令版服務端
HTTP指令版客戶端


 

對於以上這些,在開髮網絡通訊程式過程中如何選擇呢?先看上述各服務端功能的主要服務對象:

TCP服務端

適用範圍

需要高速通訊,且服務端主動推送信息

優    點

高速通訊、服務端主動傳輸

缺    點

必須服務端先開才能提供客戶端連接、須自行維護一個斷開重連機制

 

UDP服務端

適用範圍

高速短數據量通訊(一般數據量不應超過65500位元組)

優    點

高速通訊、服務端可延遲啟動、無需事先建立連接

缺    點

數據量較小、不能確保一定發送成功,建議服務端和客戶端雙方做應答機制

 

 

UDP指令版服務端

適用範圍

高速短數據量通訊(一般數據量不應超過65000位元組),目前大部分物聯網、工業通訊等正在使用DSAPI中的UDP指令版服務端

優    點

高速通訊、服務端可延遲啟動、無需事先建立連接、傳輸過程加密、內置自動重發、通訊失敗(或無返回數據)自動觸發事件、內置客戶端用戶名密碼數據傳遞,可允許或拒絕返回給客戶端數據

缺    點

數據量較小、服務端不能主動推送數據給客戶端

 

HTTP服務端

適用範圍

WebAPI、小型靜態網頁和數據服務、網站公共數據介面

優    點

無需超高速通訊、服務端可延遲啟動、無需事先建立連接、迷你IIS、可在任何支持http通訊的服務端和客戶端使用、最大數據量預設200M以內(可更改)、無需架設IIS即可開始靜態網頁服務

缺    點

服務端不能主動推送數據給客戶端

 

HTTP指令版服務端

適用範圍

高速通訊,目前很多物聯網、工業通訊、醫院醫葯等正在使用DSAPI中的HTTP指令版服務端

優    點

高速通訊、服務端可延遲啟動、無需事先建立連接、傳輸過程加密、內置自動重發、通訊失敗(或無返回數據)自動觸發事件、內置客戶端用戶名密碼數據傳遞,可允許或拒絕返回給客戶端數據

缺    點

服務端不能主動推送數據給客戶端


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 說明 操作系統:Windows 10 Python 版本:3.7x 虛擬環境管理器:virtualenv 代碼編輯器:VS Code 環境搭建 打開 執行下述操作 Hello World 在 目錄下創建一個 __init__.py ,示例代碼如下所示: 在 目錄下創建一個 manage.py 文件, ...
  • 前言:由於對面向對象思想認識的不夠深刻,所以這一單元的作業寫的是非常不oo的,從代碼結構來看,結構也顯得有些混亂,,沒有一個清晰的設計。 作業分析 第一次作業 反思 1. 輸入 對於三次的作業其實大部分的難點就是在判斷輸入的合法性上,對於第一次作用來說,最初的想法還是用一整個正則表達式來判斷輸入,但 ...
  • ~~「前言」為防止在某巨巨的毒瘤idea 紫荊花之“店" 面前一臉懵,特滾來補此題。~~ ~~我還是太naive了。~~ 「題義」給出一棵單點度數很小的無根帶邊權、點權的樹,每次詢問在所有點權在\[l,r\]的點到c的距離之和。 「分析」考慮建立點分樹,分治結構每個點都儲存對應分治範圍(簡稱範圍)內 ...
  • 一、環境需求 二、怎樣使用 三、本地化 3.1擴展卡爾曼濾波本地化 3.2無損卡爾曼濾波本地化 3.3粒子濾波本地化 3.4直方圖濾波本地化 四、映射 4.1高斯網格映射 4.2光線投射網格映射 4.3k均值物體聚類 4.4圓形擬合物體形狀識別 五、SLAM 5.1迭代最近點匹配 5.2EKF SL ...
  • 一、CAS概念與原理 CAS,全稱Compare And Swap(比較與交換),解決多線程並行情況下使用鎖造成性能損耗的一種機制。 實現思想 CAS(V, A, B),V為記憶體地址、A為預期原值,B為新值。如果記憶體地址的值與預期原值相匹配,那麼將該位置值更新為新值。否則,說明已經被其他線程更新,處 ...
  • Python 提供了很多內置的工具函數(Built-in Functions),在最新的 Python 3 官方文檔中,它列出了 69 個。 大部分函數是我們經常使用的,例如 print()、open() 與 dir(),而有一些函數雖然不常用,但它們在某些場景下,卻能發揮出不一般的作用。內置函數們 ...
  • 你可以使用xml配置創建CacheManager,根據這個schema definition ( http://www.ehcache.org/documentation/3.7/xsds.html#core ) 一. 配置元素 <config> 根元素 config是我們xml配置文件的根元素。它 ...
  • Ehcache支持分層緩存的概念,這節主要介紹不同的配置選項,同時也解釋了規則和最佳實踐。 一. 數據緩存到堆外 當在cache中除了有heap層之外,有一些需要註意的: 添加一個key-value到cache時,意味著key和value要被序列化。 從cache中讀取key-value時,意味著k ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...