ZeroMQ接口函數之 :zmq_bind - 綁定一個socket

ZeroMQ 官方地址 : http://api.zeromq.org/4-0:zmq-bindhtml

zmq_bind(3)       ZMQ Manual - ZMQ/3.2.5api

Name網絡

zmq_bind - 綁定一個socket,接收發來的連接請求socket

Synopsistcp

int zmq_bind (void *socket, const char *endpoint);

Description函數

zmq_bind() 函數綁定把一個socket綁定在一個本地的網絡節點(endpoint)上,而後開始接收鏈接到本節點上的其它節點發送來的消息。spa

 

節點是一個字符串,它包括一個協議://而後跟着一個address。協議爲下列給定的協議中的一個。address指定了進行綁定的地址。線程

 

ØMQ支持如下幾種傳輸協議:翻譯

tcp code

點對點傳輸協議tcp,參見zmq_tcp(7)

ipc 

本地線程間通訊,參見zmq_ipc(7)

inproc 

本地進程內(線程間)通訊,參見zmq_inproc(7)

pgm,epgm

使用PGM進行可靠的多路廣播,參見zmq_pgm(7)

除了ZMQ_PAIR以外,全部的ZMQ socket類型都支持一對多和多對一傳輸方式。這種精確的多路傳輸依賴於在zmq_socket(3)中定義的socket類型。

ipc和tcp傳輸方式接受通配符形式的地址:更多細節參見zmq_ipc(7)和zmq_tcp(7)。

對於zmq_bind()和zmq_connect()來講,tcp,pgm和epgm的地址語法形式可能比較特別。
緊跟着zmq_bind()函數以後的操做,是這個socket開啓一種靜音狀態,直到至少一條到來的或發出去的鏈接被建立,而那個鏈接的發起者處在預備狀態。在靜音狀態的時候,socket會根據在zmq_socket(3)中定義的類型而選擇阻塞或者丟棄消息。相對的,libzmq:zmq_connect[3]函數以後,socket會處於預備狀態。

Return value

若是zmq_bind()執行成功會返回0。其它狀況則返回-1而且設置errno爲下列的對應的值。

Errors

EINVAL

  給定的終結點是不可用的。

EPROTONOSUPPORT

  請求的傳輸協議沒法被支持。

ENOCOMPATPROTO

  請求的傳輸協議和給定的socket相似沒法兼容。

EADDRINUSE

  被請求的地址已經在使用中。

EADDRNOTAVAIL

  請求的地址不是本地地址。

ENODEV

  請求的地址指向了一個不存在的網口。

ETERM

  和被指定的socket鏈接ZMQ環境被終結了。

ENOTSOCK

  提供的socket沒法使用。

EMTHREAD

  沒有可用的I/O線程來完成這個任務。

Example

綁定在一個ZMQ_PUB類型的socket上,並使用inproc傳輸方式和TCP協議。

 1 /* Create a ZMQ_PUB socket */
 2 
 3 void *socket = zmq_socket (context, ZMQ_PUB);  4 
 5 assert (socket);  6 
 7 /* Bind it to a in-process transport with the address 'my_publisher' */
 8 
 9 int rc = zmq_bind (socket, "inproc://my_publisher"); 10 
11 assert (rc == 0); 12 
13 /* Bind it to a TCP transport on port 5555 of the 'eth0' interface */
14 
15 rc = zmq_bind (socket, "tcp://eth0:5555"); assert (rc == 0);

See also

zmq_connect(3)  zmq_socket(3)  zmq(7)

Authors

This ØMQ manual page was written by Pieter Hintjens <ph@imatix.com>, Martin Sustrik

<sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>.

Web site design and content is copyright (c) 2007-2012 iMatix Corporation. Contact us for professional

support. Site content licensed under the Creative Commons Attribution-Share Alike 3.0 License. ØMQ is

copyright (c) Copyright (c) 2007-2012 iMatix Corporation and Contributors. ØMQ is free software licensed

under the LGPL. ØMQ, ZeroMQ, and 0MQ are trademarks of iMatix Corporation. Terms of Use — Privacy

Policy

 

更多 ZeroMQ APIhttp://www.cnblogs.com/fengbohello/p/4230135.html

 

翻譯:風波

mail : fengbohello@qq.com

相關文章
相關標籤/搜索