1. 程式人生 > >ZeroMQ中單播傳輸協議使用說明(windows下)

ZeroMQ中單播傳輸協議使用說明(windows下)

ZMQ提供了一組單播傳輸協議(inporc, ipc, tcp),和兩個廣播協議(epgm,pgm)。廣播協議是比較高階的協議,我們會在以後講述。如果你不能回答我扇出比例會影響一對多的單播傳輸時,就先不要去學習廣播協議了吧。
一般而言我們會使用tcp作為傳輸協議,這種TCP連線是可以離線運作的,它靈活、便攜、且足夠快速。為什麼稱之為離線,是因為ZMQ中的TCP連線不需要該端點已經有某個服務進行了繫結,客戶端和服務端可以隨時進行連線和繫結,這對應用程式而言都是透明的。

程序間協議,即ipc,和tcp的行為差不多,但已從網路傳輸中抽象出來,不需要指定IP地址或者域名。這種協議很多時候會很方便,本指南中的很多示例都會使用這種協議。ZMQ中的ipc協議同樣可以是離線的,但有一個缺點——無法在Windows作業系統上運作(所以在這裡說明,如果是windows的機器,協議使用請直接使用tcp,其餘暫時都不可行

),這一點也許會在未來的ZMQ版本中修復。我們一般會在端點名稱的末尾附上.ipc的副檔名,在UNIX系統上,使用ipc協議還需要注意許可權問題。你還需要保證所有的程式都能夠找到這個ipc端點。

程序內協議,即inproc,可以在同一個程序的不同執行緒之間進行訊息傳輸,它比ipc或tcp要快得多。這種協議有一個要求,必須先繫結到端點,才能建立連線,也許未來也會修復。通常的做法是先啟動服務端執行緒,繫結至端點,後啟動客戶端執行緒,連線至端點。