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

—————————————————————————————————————

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

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

Name

zmq_send_const – 从一个socket上发送一个固定内存数据

Synopsis

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

Description

zmq_send_const()函数会将通过buf参数和len参数创建的消息添加到socket的消息队列中。消息内存被认为是一个固定的空间,并且不会以任何方式被复制或者被释放。flags参数是下面定义的标志的组合:

  ZMQ_DONTWAIT

当一些socket类型(DEALER、PUSH)由于对端不可用(或者所有的对端都到达高水位线),此选项指定本次的操作以非阻塞方式执行。如果无法添加到socket的消息队列中,zmq_send_const()函数会执行错误,并设置errno的值为EAGAIN。

  ZMQ_SNDMORE

指明当前发送的消息是个多帧消息,并且还会有次消息的更多帧要发送。参见下面对多消息的描述章节,以获取更多信息。

成功的调用zmq_send_const()函数并不能说明消息已经被发送到网络上,而是消息已经被添加到了消息队列上,并且ZMQ将对这个消息负责。

Multi-part messages

一个ZMQ消息由一个或多个消息帧组成。ZMQ保证自动交付这个消息:一端会完全接收这个消息,或者完全不接收这个消息。消息的帧的总数没有限制,只要内存够用就行。

应用进程在发送多帧消息的时候,出了发送最后一帧的时候,必须要使用ZMQ_SNDMORE标志。

Return value

如果函数zmq_send_const()执行成功,则返回消息的字节数。否则,函数返回 -1,并且设置errno的值为下列定义的值。

Errors

  EAGAIN

    非阻塞模式发送时,消息在此刻无法被发送。

  ENOTSUP

    zmq_send_const()函数不支持此socket的类型。

  EFSM

    zmq_send_const()操作此刻无法在这个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_const (socket, "ABC", , ZMQ_SNDMORE);
assert (rc == );
rc = zmq_send_const (socket, "DEFGH", , ZMQ_SNDMORE);
assert (rc == );
/* Final part; no more parts to follow */
rc = zmq_send_const (socket, "JK", , );
assert (rc == );

See also

zmq_send(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

翻译:风波

mail : fengbohello@qq.com

ZeroMQ接口函数之 :zmq_send_const – 从一个socket上发送一个固定内存数据的更多相关文章

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

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

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

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

  3. 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 ...

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

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

  5. ZeroMQ接口函数之 :zmq_z85_encode – 使用Z85算法对一个二进制秘钥进行加密,输出可打印的文本

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq-z85-encode zmq_z85_encode(3)          ØMQ Manual - ØMQ/4. ...

  6. 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_ ...

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

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

  8. ZeroMQ接口函数之 :zmq_proxy_steerable – 以STOP/RESUME/TERMINATE控制方式开启内置的ZMQ代理

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

  9. 用java的socket来发送一个类

    用socket可以简单的发送一些文本信息,太复杂的可能发送不了,比如图片音频可能要用到http来发送和接收了.最基本的使用socket来发送一个字符串,但有的时候我们希望能够发送一个类,这样serve ...

随机推荐

  1. 大熊君学习html5系列之------XHR2(XMLHttpRequest Level 2)

    一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会" ...

  2. ZOJ 3703 Happy Programming Contest

    偏方记录背包里的物品.....每个背包的价值+0.01 Happy Programming Contest Time Limit: 2 Seconds      Memory Limit: 65536 ...

  3. GitHub使用教程

    一直以来都想使用Git来管理自己平时积累的小代码,就是除了工作之外的代码了.有时候自己搞个小代码,在公司写了,就要通过U盘或者网盘等等一系列工具进行Copy,然后回家才能继续在原来的基础上作业.Cop ...

  4. Android 学习笔记

    1.sleep(),wait(),notify(),notifyAll() sleep()是线程类的静态方法,阻塞线程一定时间后再次使线程处于可以被调度运行的状态wait(),notify(),not ...

  5. rcnn学习(六):imdb.py学习

    # -------------------------------------------------------- # Fast R-CNN # Copyright (c) 2015 Microso ...

  6. C#基本工具代码

    1.下载Xlsx public static void TryToDisplayGeneratedFileXlsx(string writeFilePath, string fileName) { H ...

  7. MySQL 5.7 学习:功能性能的提升

    背景: 继上次介绍 初识 MySQL 5.6 新功能.参数完之后,刚好MySQL 5.7又GA了,在官方测试里看到,MySQL5.7在功能.性能.可用性.安全和监控上又提升了很高.现在看看和MySQL ...

  8. MysqlWorkbench连接远程数据

  9. Jquery点击本身,修改出本身之外的其他同级元素的样式

    1.引用Jquyer库 2.Jquery代码: <script type="text/javascript"> $(function () { slidColor('d ...

  10. eclipse中如何安装插件ADT及SDK工具

    1.如何在eclipse中安装ADT 首先下载ADT Plugin 下载地址: http://tools.android-studio.org/index.php/adt-bundle-plugin ...