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. Java类中各种静态变量的加载顺序的学习

    最近在补<thinking in java>...有一节提到了加载类需要做的一些准备...我照着书本敲了一下代码...同时稍微修改了一下书本上的代码.... package charpte ...

  2. .net core 跨平台实践

    本人采用Ubuntu 14.04 来实现.net core 的跨平台实践. 首先安装Ubuntu14.04系统.安装细节问百度. 1..net core console程序的跨平台 首先新建一个con ...

  3. Bash 中为 _ 变量赋空值的三个场景

    $_ 有好几个功能,我们最常用的是用它来获取“刚刚执行过的命令的最后一个参数”这个功能,比如下面这样: $ ls ~/Downloads/very/long/dir/  # ls 到某个目录看看有没有 ...

  4. tyvj1096 数字组合

    描述 在N个数中找出其和为M的若干个数.先读入正整数N(1<N<100)和M(1<M<10000), 再读入N个正数(可以有相同的数字,每个数字均在1000以内), 在这N个数 ...

  5. ASP.NET 系统对象 Request(一)

    Request对象 用来获取客户端在请求一个页面或传送一个Form是提供的所有信息.它包括用户的HTTP变量.能够识别的浏览器.存储客户端的Cookie信息和请求地址等. Request对象是Syst ...

  6. update语句关联表更新

    UPDATE dbo.NodeInstance SET OrderNumber=temp.OrderNo FROM dbo.NodeInstance ins,dbo.NodeTemplate temp ...

  7. kxbdSuperMarquee.js滚动的神器-推荐

    http://code.ciaoca.com/jquery/kxbdmarquee/ 版本:jQuery v1.3.2+ 查看 Demo 下载 jQuery kxbdMarquee 文档目录 使用方法 ...

  8. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼       Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...

  9. PowerDesigner使用

    首先我们需要创建一个测试数据库,为了简单,我们在这个数据库中只创建一个Student表和一个Major表.其表结构和关系如下所示. 看看怎样用PowerDesigner快速的创建出这个数据库吧. 1. ...

  10. java3

    1:在定义Long或者Float类型变量的时候,要加L或者f. 整数默认是int类型,浮点数默认是double. byte,short在定义的时候,他们接收的其实是一个int类型的值. 这个是自己做了 ...