本發明專利技術公開了一種通訊方法和系統、存儲介質,涉及通訊技術領域。通訊方法包括以下步驟:客戶端與服務器端之間通過客戶端代理和服務器代理建立連接;客戶端代理向服務器代理發送創建管道的消息;服務器代理根據創建管道的消息,創建指定數量的管道,并將管道放入管道池,并返回第一個管道號給客戶端代理;當客戶端的用戶程序向客戶端代理申請管道時,客戶端代理返回一個空閑管道給客戶端的用戶程序;客戶端的用戶程序通過空閑管道向服務器端調用服務。根據本發明專利技術實施例的通訊方法,客戶端代理和服務器代理之間能夠建立多條管道,雙方的多個事務可以獨立使用屬于自己的管道,該技術提高了編程的便利性,特別適用于多線程的使用場景。特別適用于多線程的使用場景。特別適用于多線程的使用場景。
【技術實現步驟摘要】
通訊方法和系統、存儲介質
[0001]本專利技術涉及通訊
,尤其是涉及一種通訊方法和系統、存儲介質。
技術介紹
[0002]終端與主機分離的系統結構廣泛存在,例如工業設備,特別是復雜大型的工業設備,它們的操作終端(如圖形化界面、觸摸屏等)與主機(工業設備主體)往往是分離的,即操作終端是獨立的計算設備(如工控一體機,平板電腦等),而主機是處理能力更強的計算機。對于這種系統結構,終端與主機之間的高速高效通訊技術是影響軟件開發效率和系統用戶體驗的關鍵技術。
技術實現思路
[0003]本專利技術旨在至少解決現有技術中存在的技術問題之一。為此,本專利技術提出了一種高速高效的通訊方法和系統、存儲介質。
[0004]一方面,根據本專利技術實施例的通訊方法,包括以下步驟:
[0005]客戶端與服務器端之間通過客戶端代理和服務器代理建立連接;
[0006]所述客戶端代理向所述服務器代理發送創建管道的消息;
[0007]所述服務器代理根據所述創建管道的消息,創建指定數量的管道,并將所述管道放入管道池,并返回第一個管道號給所述客戶端代理;
[0008]當所述客戶端的用戶程序向所述客戶端代理申請管道時,所述客戶端代理返回一個空閑管道給所述客戶端的用戶程序;
[0009]所述客戶端的用戶程序通過所述空閑管道向所述服務器端調用服務。
[0010]根據本專利技術的一些實施例,所述客戶端與服務器端之間通過客戶端代理和服務器代理建立連接的步驟之前,還包括以下步驟:
[0011]初始化所述服務器代理,使所述服務器端的用戶程序指定內存對齊字節數、指定大端或小端模式、以及指定socket監聽端口號。
[0012]根據本專利技術的一些實施例,所述客戶端與服務器端之間通過客戶端代理和服務器代理建立連接的步驟,具體包括:
[0013]所述客戶端代理發送連接服務器的消息給所述服務器代理;所述連接服務器的消息包括所述客戶端的用戶程序指定的服務器端的IP地址、端口號、以及需要創建的管道的數量;
[0014]根據所述連接服務器的消息,所述服務器端與所述客戶端建立連接。
[0015]根據本專利技術的一些實施例,所述根據所述連接服務器的消息,所述服務器端與所述客戶端建立連接的步驟,具體包括:
[0016]當所述服務器端的socket監聽到所述端口號時,所述服務器端獲取所述連接服務器的消息;
[0017]所述服務器端檢查所述客戶端的用戶程序的內存對齊字節數,并在檢查無誤后,
返回確認連接的消息給所述客戶端;所述確認連接的消息指定了大端或小端模式;
[0018]根據所述確認連接的消息,所述客戶端與所述服務器端建立連接。
[0019]根據本專利技術的一些實施例,所述當所述客戶端的用戶程序向所述客戶端代理申請管道時,所述客戶端代理返回一個空閑管道給所述客戶端的用戶程序的步驟,具體包括:
[0020]所述客戶端代理設置有兩個管道集合,分別用于容納空閑管道和占用管道;
[0021]當所述客戶端的用戶程序向所述客戶端代理申請管道時,所述客戶端代理從用于容納空閑管道的所述管道集合中,取出一個空閑管道,將所述空閑管道的管道號返回給所述客戶端的用戶程序,并將所述空閑管道放入用于容納占用管道的所述管道集合中。
[0022]根據本專利技術的一些實施例,所述客戶端的用戶程序通過所述空閑管道向所述服務器端調用服務的步驟,具體包括:
[0023]所述客戶端的用戶程序在所述空閑管道上向所述服務器端發送調用服務的消息;
[0024]當所述調用服務的消息發送成功時,所述客戶端的用戶程序在所述空閑管道上向所述服務器端發送流式參數,并接收所述服務器端返回的流式返回值。
[0025]根據本專利技術的一些實施例,還包括以下步驟:
[0026]當所述客戶端的用戶程序調用服務完成時,所述客戶端代理將所述空閑管道從用于容納占用管道的所述管道集合中取出,并放入用于容納空閑管道的所述管道集合中。
[0027]根據本專利技術的一些實施例,還包括以下步驟:
[0028]所述客戶端代理發送銷毀管道的消息給所述服務器端;
[0029]根據所述銷毀管道的消息,所述服務器端將所述管道銷毀,并返回確認銷毀的消息給所述客戶端代理;
[0030]根據所述確認銷毀的消息,所述客戶端代理斷開與所述服務器端的連接。
[0031]根據本專利技術的一些實施例,所述客戶端與所述服務器端之間通過UDP協議進行通訊。
[0032]另一方面,根據本專利技術實施例的通訊系統,包括:
[0033]客戶端,設置有客戶端代理;
[0034]服務器端,設置有服務器代理;
[0035]所述客戶端與所述服務器端之間通過所述客戶端代理和所述服務器代理建立連接;所述客戶端代理和所述服務器代理之間能夠建立管道,以使所述客戶端的用戶程序通過所述管道向所述服務器端調用服務。
[0036]另一方面,根據本專利技術實施例的存儲介質,所述存儲介質存儲有計算機可執行指令,所述計算機可執行指令用于使計算機執行上述的通訊方法。
[0037]根據本專利技術實施例的通訊方法和系統、存儲介質,至少具有如下有益效果:客戶端與服務器端之間通過客戶端代理和服務器代理進行通訊,而客戶端代理和服務器代理之間能夠建立多條管道,雙方的多個事務可以獨立使用屬于自己的管道,該技術提高了編程的便利性,特別適用于多線程的使用場景;而且,通過設置管道池用于存放管,進一步降低用戶請求管道的響應時間。
[0038]本專利技術的附加方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本專利技術的實踐了解到。
附圖說明
[0039]本專利技術的上述和/或附加的方面和優點從結合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0040]圖1為本專利技術實施例的通訊系統的結構示意圖;
[0041]圖2為本專利技術實施例的通訊系統的通訊協議;
[0042]圖3為本專利技術實施例的通訊方法的步驟流程圖;
[0043]圖4為本專利技術實施例的客戶端代理申請創建管道的流程示意圖;
[0044]圖5為本專利技術實施例的服務器端創建管道和銷毀管道的流程示意圖;
[0045]圖6為本專利技術實施例的客戶端調用服務的流程示意圖;
[0046]圖7為本專利技術實施例的服務器端響應客戶端調用服務的流程示意圖;
[0047]圖8為本專利技術實施例的客戶端代理申請銷毀管道的流程示意圖。
具體實施方式
[0048]本部分將詳細描述本專利技術的具體實施例,本專利技術之較佳實施例在附圖中示出,附圖的作用在于用圖形補充說明書文字部分的描述,使人能夠直觀地、形象地理解本專利技術的每個技術特征和整體技術方案,但其不能理解為對本專利技術保護范圍的限制。
[0049]本專利技術的描述中,除非另有明確的限定,設置、安裝、連接等詞語應做廣義理解,所屬
技術人員可以結合技術方案的具體內容合理確定上述本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種通訊方法,其特征在于,包括以下步驟:客戶端與服務器端之間通過客戶端代理和服務器代理建立連接;所述客戶端代理向所述服務器代理發送創建管道的消息;所述服務器代理根據所述創建管道的消息,創建指定數量的管道,并將所述管道放入管道池,并返回第一個管道號給所述客戶端代理;當所述客戶端的用戶程序向所述客戶端代理申請管道時,所述客戶端代理返回一個空閑管道給所述客戶端的用戶程序;所述客戶端的用戶程序通過所述空閑管道向所述服務器端調用服務。2.根據權利要求1所述的通訊方法,其特征在于,所述客戶端與服務器端之間通過客戶端代理和服務器代理建立連接的步驟之前,還包括以下步驟:初始化所述服務器代理,使所述服務器端的用戶程序指定內存對齊字節數、指定大端或小端模式、以及指定socket監聽端口號。3.根據權利要求1所述的通訊方法,其特征在于,所述客戶端與服務器端之間通過客戶端代理和服務器代理建立連接的步驟,具體包括:所述客戶端代理發送連接服務器的消息給所述服務器代理;所述連接服務器的消息包括所述客戶端的用戶程序指定的服務器端的IP地址、端口號、以及需要創建的管道的數量;根據所述連接服務器的消息,所述服務器端與所述客戶端建立連接。4.根據權利要求3所述的通訊方法,其特征在于,所述根據所述連接服務器的消息,所述服務器端與所述客戶端建立連接的步驟,具體包括:當所述服務器端的socket監聽到所述端口號時,所述服務器端獲取所述連接服務器的消息;所述服務器端檢查所述客戶端的用戶程序的內存對齊字節數,并在檢查無誤后,返回確認連接的消息給所述客戶端;所述確認連接的消息指定了大端或小端模式;根據所述確認連接的消息,所述客戶端與所述服務器端建立連接。5.根據權利要求1所述的通訊方法,其特征在于,所述當所述客戶端的用戶程序向所述客戶端代理申請管道時,所述客戶端代理返回一個空閑管道給所述客戶端的用戶程序的步驟,具體包括:所述客戶端代理設置有兩個管道...
【專利技術屬性】
技術研發人員:王長軍,鄭艷文,鄧文波,
申請(專利權)人:珠海市奧德維科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。