2012-11-23 85 views
4

本地C套接字API在accept()上返回一個新的套接字描述符,該描述符綁定到某個遠程套接字。這很好,因爲我可以創建線程,傳遞套接字並建立點對點,或者通過互聯網更好地建立線程到線程的連接。這正是我想要的:來自客戶端的一個線程應該連接到服務器上的目標線程。因此我不需要一個workerpool或負載平衡甚至不是異步操作。服務器線程保存歷史記錄。 ZeroMQ看起來很棒,但據我瞭解,它不會分割接受的套接字。ZeroMQ是否允許多個服務器套接字?

是否有建立這樣與ZerMQ的同步螺紋與螺紋連接的方式?

回答

5

你詢問如何複製特定的解決方案(移交socket到線程)到更廣泛的問題(如何編寫出可伸縮的服務器)。

'每個插槽的一個線程'設計只能在請求回覆的一種模式下工作,例如, HTTP。數量分佈(發佈 - 訂閱)或任務分配(管道)的真正大量使用案例。兩者都不適合1對1模型。

這是一個常見的錯誤,當你學習一個新的工具問「這個工具如何做我的舊工具做」,但你不會得到這樣的好結果。相反,花時間去真正瞭解該工具的工作原理,然後利用這些知識重新考慮您的問題以及最佳解決方案。

0

我以爲Zmq爲你處理這個多重連接;我更喜歡通過處理線程回調函數內的連接來創建一個線程到線程的通信,這意味着我的主要zmq連接在單獨的線程中創建;這可以在線程內進行單獨的連接控制。

相關問題