今天來說說它的特色之一 -- Blocking
很多人都會很好奇,SocketServer和idTCPServer主要的差異在於一個預設為non-Blocking,另一個則是恆為Blocking,但這兩者之間有什麼樣的不同呢?
我不知道!(被毆)
但在 Indy in Depth 中提供了這樣的解釋 (原文自己去找!):
Blocking = 專業!
1. 簡單的程式設計:Blocking socket是非常簡單的設計方式。所有使用者都能把邏輯程式寫在同一個空間且連續的範圍裡面。
2. 跨平台(好像一定都會看到這個特色):由於Unix使用Blocking socket,能輕易地寫出便於移轉的程式碼。Indy發揮這個論述,去實現單一來源的跨平台能力。其它跨平台的Socket元件則是透過內部使用Blocking來模仿non-Blocking的行為。
3. 在執行緒裡工作:由於Blocking Socket先天就屬於連續的封裝類型,所以非常適合與執行緒搭配。
4. 不依賴Messages:Non-Blocking Socket依存於視窗訊息傳遞系統。於執行緒下使用時,必須建立獨立的訊息佇列。不使用執行緒時,則在進行多點連線時非常容易造成效能瓶頸。
不管你信不信,反正我是信了! |
沒有留言:
張貼留言