zmq_msg_init_data - 從乙個指定的儲存空間中初始化乙個
zmq訊息物件的資料
synopsis
typedef void (zmq_free_fn) (void *data, void *hint);descriptionint zmq_msg_init_data (zmq_msg_t *msg, void *data, size_t size, zmq_free_fn *ffn,
void *hint);
zmq_msg_init_data()函式會用
data
引數和size
引數指定的資料對
msg引數指定的
zmq訊息物件的內容進行初始化。
zmq不會執行拷貝操作,並且
zmq會取得指定資料的擁有權。
如果提供了**功能函式ffn
,ffn
將會在data
資料不再使用的時候被
zmq呼叫一次,
zmq會將
zmq_msg_init_data()
函式中的引數
data
和hint
引數傳遞給
ffn函式。
永遠不要直接對zmq_msg_t
物件進行直接操作,而是要使用
zmq_msg
函式族進行操作。
zmq_msg_init()、
zmq_msg_init_data()
和zmq_msg_init_size()
這三個函式是互斥的。永遠不要把乙個
zmq_msg_t
物件初始化兩次。
return value
函式zmq_msg_init_data()執行成功會返回0。否則返回
-1,並且設定
errno
的值為下列指定的值。
errors
enomem
儲存空間不足。
example
使用乙個指定的儲存空間對zmq訊息物件進行初始化。
void my_free (void *data, void *hint)/*...
*/void *data = malloc (6
);assert (data);
memcpy (data,
"abcdef
", 6
); zmq_msg_t msg;
rc = zmq_msg_init_data (&msg, data, 6, my_free, null); assert (rc == 0);
C 之ZeroMQ的使用
zeromq官網的使用教程很詳細,這裡主要介紹兩種常使用的模式。request reply 請求應答模式 這種模式和網路api請求一樣,先向一位址的傳送請求,然後等待伺服器返回對應的資料或者狀態,伺服器在後端一直監聽發過來的請求,然後返回對應的資料即可。這裡 都是cppzmq的封裝的。void se...
函式式介面之function包下的介面
函式式介面提供的介面其實只是常用的一些介面,並沒有什麼特別的地方,可能只是覺得很多人會使用才新增進去的,方便程式設計師,不用自己建造,或許也可能是為了建個規範吧。public static void main string args public static intftext int a,func...
zeromq原始碼分析筆記之架構(1)
zeromq是一種基於訊息佇列的多執行緒網路庫,其對套接字型別 連線處理 幀 甚至路由的底層細節進行抽象,提供跨越多種傳輸協議的套接字。引用雲風的話來說 請求回應模型。由請求端發起請求,並等待回應端回應請求。從請求端來看,一定是一對對收發配對的 反之,在回應端一定是發收對。請求端和回應端都可以是 1...