ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-send

zmq_send(3)              ØMQ Manual - ØMQ/4.1.0

Name

zmq_send – 在一个socket上发送一个消息帧

Synopsis

int zmq_send (void *socket, void *buf, size_t len, int flags);

Description

zmq_send()函数会根据buf参数指定的内存缓冲区和len参数指定的缓冲区数据长度创建一个消息,并将消息添加到消息队列中。flags参数是由下面的标志组合成的。

  ZMQ_DONTWAIT

    对于当socket不可使用就要执行阻塞方式的socket类型来说(DEALER,PUSH),此选项可以指定这个操作以非阻塞模式执行。如果无法添加消息到socket的消息队列上,zmq_send()函数将会执行失败并设置errno为EAGAIN。

  ZMQ_SNDMORE

    指出当前正在发送的消息是个多帧消息,并且接下来还会发送更多的消息。请参考下面关于多帧消息的段落,获取更多的细节。

成功的调用zmq_send()函数并不能说明消息已经被成功的发送到了网络上,只能说明消息被添加到了这个socket的消息队列上,并且ZMQ开始对其负责。

Multi-part messages

一个ZMQ消息由1个或多个ZMQ消息帧组成。ZMQ保证自动交付消息:一个ZMQ的消息要么所有的消息帧都被接收,要么一个都不会接收。一个消息中消息帧的总数没有限制,除非内存不够用。

当一个应用程序在发送多针消息的时候,出了最后一帧消息,其它的所有消息必须使用ZMQ_SNDMORE进行注明。

Return value

当zmq_send()函数执行成功时会返回发送的消息的字节数。否则返回 -1,并且设置errno的值为下列定义的值。

Errors

  EAGAIN

    函数正在使用非阻塞模式发送消息,并且socket当前不可用。

  ENOTSUP

    这个scoket的类型不支持zmq_send()函数的操作。

  EFSM

    zmq_send()函数当前无法对这个socket进行操作,因为这个socket处在与此操作不适当的状态。这个错误可能出现在那些在几种状态之间进行切换的socket上,比如ZMQ_REP。请参照zmq_socket(3)函数部分的消息模式部分以获取更多信息。

  ETERM

    与给定的socket向关联的context被终结了。

  ENOTSOCK

    参数提供的socket不可用。

  EINTR

    此次操作被系统信号中断了。

  EHOSTUNREACH

    此消息不能被路由。

Example

  发送一个多帧消息

/* Send a multi-part message consisting of three parts to socket */
rc = zmq_send (socket, "ABC", , ZMQ_SNDMORE);
assert (rc == );
rc = zmq_send (socket, "DEFGH", , ZMQ_SNDMORE);
assert (rc == );
/* Final part; no more parts to follow */
rc = zmq_send (socket, "JK", , ); assert (rc == );

See also

zmq_send_const(3)  zmq_recv(3)  zmq_socket(7)  zmq(7)

Authors

This page was written by the ØMQ community. To make a change please read the ØMQ Contribution Policy at http://www.zeromq.org/docs:contributing.

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 API :http://www.cnblogs.com/fengbohello/p/4230135.html

翻译:风波

mail : fengbohello@qq.com

ZeroMQ接口函数之 :zmq_send – 在一个socket上发送一个消息帧的更多相关文章

  1. ZeroMQ接口函数之 :zmq_sendmsg – 从一个socket上发送一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-sendmsg zmq_sendmsg(3)        ØMQ Manual - ØMQ/4.1.0 Name ...

  2. ZeroMQ接口函数之 :zmq_recv – 从一个socket上接收一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_recv zmq_recv(3)        ØMQ Manual - ØMQ/4.1.0 Name zmq_r ...

  3. ZeroMQ接口函数之 :zmq_recvmsg – 从一个socket上接收一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-recvmsg zmq_recvmsg(3)         ØMQ Manual - ØMQ/4.1.0 Nam ...

  4. ZeroMQ接口函数之 :zmq_send_const – 从一个socket上发送一个固定内存数据

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...

  5. ZeroMQ接口函数之 :zmq_msg_recv - 从一个socket中接受一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq_msg_recv zmq_msg_recv(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_ ...

  6. ZeroMQ接口函数之 :zmq_msg_send – 从一个socket发送一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_msg_send zmq_msg_send(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_ ...

  7. ZeroMQ接口函数之 :zmq_setsockopt –设置ZMQ socket的属性

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html 本文地址 :http://www.cnblogs.com/fengbo ...

  8. ZeroMQ接口函数之 :zmq_getsockopt – 获取ZMQ socket的属性

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html 本文地址 :http://www.cnblogs.com/fengbo ...

  9. ZeroMQ接口函数之 :zmq_socket – 创建ZMQ套接字

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ZeroMQ 官方地址:http://api.zeromq.org/4 ...

随机推荐

  1. 即时搜索或input实时检测监听输入框变化

    js实现的文本框内容发生改变立马触发事件简单介绍:本章节介绍一下如何在文本框的内容发生变化的时候,立马触发一个事件执行响应的操作,而不是像是keydow或者keyup事件一样,只能够检测通过键盘输入导 ...

  2. Spring 入门知识

    ------------------------------------------------------------------------------------- Spring是什么? Spr ...

  3. linux下cp覆盖原so文件时引起的段错误原因确定

    原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5694416.html 最近因为一个很有意思的段错误学习了一些新的东西. 当时现象是这样的,程序正在运行,系 ...

  4. CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(2)CSS3利用图层叠加实现多背景

    CSS 3允许设置多个背景图片,每个背景图片占一层,层的上下按照在CSS中书写的顺序来定,最先写的背景在最上层,每层图片定义使用英文逗号隔开. 例如下面的代码: background:url(http ...

  5. jquery_DOM笔记

    回头补充知识: jquery事件复习: bind() 用于绑定多个事件,当某一个节点需要进行多项处理的时候使用 .使用方式 $(select).bind({event:function(),event ...

  6. 分布式应用下的Redis单机锁设计与实现

    背景 最近写了一个定时任务,期望是同一时间只有一台机器运行即可.因为是应用是在集群环境下跑的,所以需要自己实现类一个简陋的Redis单机锁. 原理 主要是使用了Redis的SET NX特性,成功设置的 ...

  7. r-cnn学习(八):minibatch

    这段代码包括由输入图片随机生成相应的RoIs,并生成相应的blobs,由roidb得到相应的 minibatch.其代码如下. # ---------------------------------- ...

  8. selenium 总结篇,常见方法和页面元素的操作

    今天,总结一下selenium怎么操作web页面常见的元素. 主要有: 上传 alter dialog prompt dialog confirm dialog select list radio b ...

  9. 校园网搭建HUSTOJ记录

    上学期和网管中心的老师说过很多次--要在校园网上搭OJ,当时那边老师说要等"虚拟化搞好了以后才能搭".直到上周,终于在校园网上申请到了一个虚拟主机,4核,10G内存,100G硬盘, ...

  10. Linux find 用法示例

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...