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

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

Name

zmq_recv – 从一个socket上接收一个消息帧

Synopsis

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

Description

zmq_recv()函数会从socket参数指定的socket上接收一个消息,并把这个消息存储在buf参数指定的内存空间中。超过len参数指定长度的任何数据都会被删去。如果在socket上没有消息可接收,zmq_recv()函数会进行阻塞,直到请求被满足为止。flag参数是由下面的选项组合而成的标志。

  ZMQ_DONTWAIT

    指明此函数在非阻塞模式下执行。如果在指定的socket中没有消息,zmq_recv()函数会执行失败,并返回值为EAGAIN的errno。

Multi-part messages

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

一个应用进程想要接收多帧的ZMQ消息,必须在zmq_recv()函数执行完成后使用zmq_getsockopt(3)函数的ZMQ_RCVMORE标志选项进行检查,以确认是否还有更多的消息帧等待接收。

Return value

如果zmq_recv()函数执行成功,将会返回接收到的消息的字节数。注意这个值可能会超过len参数指定的值,以免消息被截断。如果执行失败,这个函数将会返回 -1,并且设置errno的值为下列指定的值。

Errors

  EAGAIN

    使用非阻塞方式接收消息的时候没有接收到任何消息。

  ENOTSUP

    socket参数指定的socket类型无法使用zmq_recv()进行操作。

  EFSM

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

  ETERM

    与制定的socket相关联的context被终结了。

  ENOTSOCK

    制定的socket不可用。

  EINTR

    在接接收到消息之前,这个操作被系统信号中断了。

Example

  从一个socket中接收消息

char buf [];
nbytes = zmq_recv (socket, buf, , ); assert (nbytes != -);

See also

zmq_send(3)  zmq_getsockopt(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

最新文章

  1. JDBC MySQL 多表关联查询查询
  2. 连接池的实现 redis例子
  3. Python_Day10_进程、线程、协程
  4. [转载]TFS源代码管理
  5. ODBC错误处理
  6. display:flex
  7. jQuery图片无缝滚动JS代码ul/li结构
  8. 15、NFC技术:使用Android Beam技术传输文件
  9. P.V操作【转】
  10. Excel Skill (1) -- 判断时如何去掉框里的空格
  11. 大数据及hadoop相关知识介绍
  12. python 批量修改数字类的文件名
  13. 一句话了解JAVA与大数据之间的关系
  14. Java之Spring mvc详解
  15. 调试利器GDB(下)
  16. Arduino IDE for ESP8266 教程(一) 局域网 网页查看数据 不控制
  17. KVM -> 虚拟机在线热添加技术_04
  18. UML类图快速入门篇
  19. 2019.01.02 poj1322 Chocolate(生成函数+二项式定理)
  20. 无法链接glew的解决办法-编译开源库出现: error LNK2001: 无法解析的外部符号

热门文章

  1. [Maven] 变态问题收集
  2. CSS-dl+dt+dd的应用(非常实用)
  3. PHP变量入门教程(3)global 关键字
  4. CentOS 安装tomcat 7
  5. css-单位%号-background-size-background-position-遁地龙卷风
  6. Android-做个性化的进度条
  7. 【JSOI2007】麻将 bzoj 1028
  8. 一个简单的servlet的demo
  9. js 获取元素宽高
  10. c# 正则表达式用法