程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 異步客戶服務端框架(一),異步客戶服務端框架

異步客戶服務端框架(一),異步客戶服務端框架

編輯:C++入門知識

異步客戶服務端框架(一),異步客戶服務端框架


 

我遇到的問題

  在做上位機軟件的時候,需要將上位軟件的命令傳輸到每個被控席位,也需要和被控計算機進行數據交換,我們的被控端是服務器,也可能是客戶端,甚至有時候會遇到客戶端先啟動服務端後啟動情況,要控制的機器也可能是多台,同時我們要支持TCP和UDP兩種協議。

  

好酒加冰塊-交互過程

  如果采用Tcp作為連接的時候會產生如下的過程:

  

   session代表數據交互過程,我們將這個過程抽象為會話對象(Udp也有類似的會話對象,只不過沒有Tcp的連接過程)。該對象直接管理著服務與客戶端的數據讀取與寫入過程,當有網絡數據到本地的時候,io中斷會調用session中的讀取成員函數(in_event)讀取數據,當網絡Io可以寫入數據時io中斷也會調用session的寫成員函數(out_event)將數據傳入網絡棧中。在連接的過程中客戶端需要指定遠端服務器的IP與端口,而服務端則需要指定本地綁定監聽的IP與端口號。

  UDP的交互過程:

  

 

 Udp節點之間沒有握手的過程,都會指定本地綁定的ip地址和端口號,Udp在數據傳輸時需要指定對端的Ip與端口號,這樣兩個節點之間就可以相互輸入與獲取數據,session也同tcp的session功能一致,只是數據讀取與寫入時系統Api不一致而已。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved