在連接兩個節點時,其中一個需要使用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則可以進行一對多(類似於無線廣播)、多對多(類似於郵局)、多對一(類似於信箱),當然也包括一對一的情況。