ZeroMQ學習 (二) ZMQ與傳統的TCP區別

3 ZMQ與傳統的TCP區別

​ 在連接兩個節點時,其中一個需要使用zmq_bind(),另一個則使用zmq_connect()。通常來講,使用zmq_bind()連接的節點稱之爲服務端,它有着一個較爲固定的網絡地址;使用zmq_connect()連接的節點稱爲客戶端,其地址不固定。我們會有這樣的說法:綁定套接字至端點;連接套接字至端點。端點指的是某個廣爲周知網絡地址。

​ ZMQ連接和傳統的TCP連接是有區別的,主要有:

  • 使用多種協議,inproc(進程內)、ipc(進程間)、tcp、pgm(廣播)、epgm;

  • 當客戶端使用zmq_connect()時連接就已經建立了,並不要求該端點已有某個服務使用zmq_bind()進行了綁定;

  • ZMQ沒有提供類似zmq_accept()的函數,因爲當套接字綁定至端點時它就自動開始接受連接了;

  • 應用程序無法直接和這些連接打交道,因爲它們是被封裝在ZMQ底層的。

  • TCP協議只能進行點對點的連接,而ZMQ則可以進行一對多(類似於無線廣播)、多對多(類似於郵局)、多對一(類似於信箱),當然也包括一對一的情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章