[發明專利]一種時間可控的客戶端服務器傳輸方法有效
| 申請號: | 201110364294.2 | 申請日: | 2011-11-17 |
| 公開(公告)號: | CN102413133A | 公開(公告)日: | 2012-04-11 |
| 發明(設計)人: | 袁清波;許建衛;劉新春;邵宗有 | 申請(專利權)人: | 曙光信息產業(北京)有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京安博達知識產權代理有限公司 11271 | 代理人: | 徐國文 |
| 地址: | 100084 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 時間 可控 客戶端 服務器 傳輸 方法 | ||
技術領域
本發明涉及數據傳輸,具體來說,涉及一種時間可控的客戶端服務器傳輸方法。
背景技術
大部分網絡協議的實現都由客戶端和服務器端來協作完成。這種模型本質上涉及兩個不同的程序,通常這兩個程序在不同機器上運行。這些機器之間都有網絡連接,服務器端程序提供服務并對來自客戶程序的請求做出響應,而客戶端程序則是在使用者和服務器端程序之間建立某種溝通的渠道,或者是作為使用服務器提供的某種網絡服務的工具。一個典型的服務器與客戶端之間的交互可能如下所示:
客戶端發出一個請求;
服務器收到客戶端的請求,進行分析處理;
服務器將運行處理的結果返回給客戶端。
通常一個服務器需要向多個客戶端提供服務,因此對服務器來說,還需要考慮如何有效地處理多個客戶的請求。
Socket的連接類型可以分為兩種,分別是面向連接的字節流類型和面向無連接數據報類。面向無連接數據報類型的Socket工作流程比較簡單,雙方不需要進行太多的溝通與交互,客戶端直接將用戶的請求打包發送到服務器端,省略了建立一個固定信息通道的過程,服務器端也是直接將處理的結果發送給客戶端,每個發送的數據報都攜帶有傳遞所需要的所有地址信息;面向連接的字節流類型的Socket工作中有比較嚴格的操作次序,工作的原理也比較復雜。在這種類型的Socket的工作過程中.必須首先啟動服務器端,通過調用Socket()函數建立一個Socket對象,然后調用Bind()函數將該Socket對象和本地網絡地址綁定到一起。再調用Listen()函數使該Socket對象處于偵聽狀態,并規定它的最大請求的數量,其工作流程如圖1所示。總的來說,無連接和面向連接的通信方式各有長處和短處,在僅僅涉及少量的信息傳遞的場合可以使用無連接操作,如果涉及大量信息傳遞的場合可以采用面向連接操作。
發明內容
為解決上述問題,本發明提供了一種時間可控的客戶端服務器傳輸方法。
一種時間可控的客戶端服務器傳輸方法,在客戶端和服務器操作中,將每個操作函數分為阻塞函數和非阻塞函數,為客戶端和服務器連接過程中的阻塞函數創建獨立的等待線程,對于發送和接收函數,設置一個超時重連參數。
優選的,所述等待線程在創建后,連接過程中的主線程可以繼續執行其它操作。
優選的,所述發送和接收函數無論是否成功都會在超時重連參數時間之內做出返回。
優選的,所述操作封裝成lib庫的形式提供給用戶,包括客戶端和服務器端兩部分。
優選的,所述服務器端的lib庫包括:
服務器初始化庫,用于初始化服務器端運行環境,輸入參數為IP地址、端口,執行的操作為創建一個socket、綁定到指定地址和端口、設置偵聽,另外專門創建一個新的線程來等待客戶端的連接;如果整個過程沒有錯誤則返回給用戶新創建的socket,如果出錯則通知用戶出錯的地方和原因;
服務器發送庫,用于發送數據到指定客戶端,輸入參數為socket句柄、數據緩沖區地址和大小、timeout;該函數采用非阻塞方式循環發送數據,一旦超過timeout時間則終止發送,并通知用戶;否則一直嘗試發送緩沖區數據到指定客戶端;
服務器接收庫,用于從客戶端收取數據,輸入參數為socket句柄、接收緩沖區地址和大小、timeout;該函數采用非阻塞方式循環接收數據,一旦超過timeout時間則終止接收過程,并通知用戶;否則一直嘗試從指定客戶端接收數據;
服務器中止庫,用于終止整個運行環境,輸入參數為socket句柄,該函數關閉socket連接并終止之前建立的線程,整個過程沒有阻塞操作。
優選的,所述客戶端的lib庫包括:
客戶端初始化庫,用于初始化客戶端運行環境,輸入參數為服務器端的IP地址、端口、timeout,執行的操作為創建一個socket,并用此socket連接服務器端,連接過程是非阻塞的,嘗試時間超過用戶指定的timeout后不再嘗試,而是返回給用戶具體的出錯原因,等待用戶的進一步動作;
客戶端發送庫,用于發送數據到指定客戶端,輸入參數為socket句柄、數據緩沖區地址和大小、timeout;該函數采用非阻塞方式循環發送數據,一旦超過timeout時間則終止發送,并通知用戶;否則一直嘗試發送緩沖區數據到指定客戶端;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于曙光信息產業(北京)有限公司,未經曙光信息產業(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110364294.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:炊具的開合蓋裝置
- 下一篇:一種用于治療銀屑病的中藥組合物





