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. C语言基础(4)-原码,反码,补码及sizeof关键字

    1. 原码 +7的原码是0000 0111 -7的原码是1000 0111 +0的原码是0000 0000 -0的原码是1000 0000 2. 反码 一个数如果值为正,那么反码和原码相同. 一个数如 ...

  2. 深入理解IoC/DI

    ------------------------------------------------------------------------ 理解IoC/DI 1.控制反转 --> 谁控制谁 ...

  3. tyvj4541 zhx 提高组P1

    背景 提高组 描述 在一个N×M的棋盘上,要求放置K个车,使得不存在一个车同时能被两个车攻击.问方案数. 输入格式 一行三个整数,N,M,K. 输出格式 一行一个整数,代表答案对1000001取模之后 ...

  4. 如何修改 Total commander 配置文件的路径

    在官方主页 http://www.ghisler.com/tools.htm#other 上提供了一个名为 INIreloc.exe  的小程序,它可以变更ini文件的保存位置.

  5. Spring面试题

    69道Spring面试题和答案 原文地址    译者:深海(1422207401@qq.com)  校对:方腾飞 目录 Spring 概述 依赖注入 Spring beans Spring注解 Spr ...

  6. Unity3D代码旋转

    subGameObject.transform.Rotate (,,,Space.Self); 一行代码

  7. jQuery视差滚动插件,(附原理分析,调用方法)

    演示地址:http://www.jq22.com/jquery-info1799 jquery插件,使用验证过可用. 分析源代码后总结原理:设置background样式为fixed,判断浏览器滚动距离 ...

  8. html中表格元素的相关总结

    表格元素相关总结: 1.在CSS中,内部表元素(如td.tr.col等)生成矩形框,这些矩形框包含内容.内边距和边框,但没有外边距,因此如果定义外边距,浏览器将忽略该定义:对于table元素,外边距有 ...

  9. javascript的window.ActiveXObject对象,区别浏览器的方法

    (window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("M ...

  10. Android 动态生成 EditTest

    这几天,开始一个项目,需要一个小效果,就是一个输入邮箱地址的EditTest 需要动态的添加.默认有两个,然后最多5个,手机的屏幕总是有限的 好的 ,这就上代码了 布局文件 <LinearLay ...