程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中多進程解決datasnap支持的tcp長連接數量少的問題

Delphi中多進程解決datasnap支持的tcp長連接數量少的問題

編輯:Delphi

對於實時采集數據的項目,應用場景比如是這樣的:5000客戶端,每個客戶端每隔500MS要給服務器上傳一次數據。

大家知道,像INDY這種阻塞型的通信控件,所能支持的TCP長連接的一般地不能超過1000的數量(如果想要維持穩定運行的話)。

原因是大家都曉得的,阻塞方式會為每一個SOCKET連接創建一個新的線程為之服務,而WINDOWS單個進程理論上允許最多的線程數量是2048個,

實際當中要少得多才行。

有人說可以用WINDOWS的IOCP通信模型解決,誠然!但IOCP編程過於復雜。

有人說,可以用INDY,使用短連接的方式解決。鑒於每隔500MS就要上傳一次數據的頻率,短連接其實不適合用,因為短連接每次都要建立和斷開SOCKET連接,

而建立和斷開SOCKET連接是特別耗時的,所以使用TCP長連接的方式。

有人說為什麼想著阻塞的方式,答案是:因為阻塞的編程是最簡單的。

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