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_msg_send – 从一个socket发送一个消息帧
Synopsis
int zmq_msg_send (zmq_msg_t *msg, void *socket, int flags);
Description
zmq_msg_send函数和zmq_sendmsg(3)函数是完全相同的,只是zmq_sendmsg(3)在以后的版本中会被弃用。zmq_msg_send()函数在操作性方面和其他消息函数更有一致性。
zmq_msg_send()函数将会使用socket指定的socket,以队列方式(FIFO)将msg参数指定的消息添加到发送队列里面。flags参数由下列标志组合(|)而成:
ZMQ_DONTWAIT
指明本次操作使用非阻塞方式执行。如果这个消息不能被添加到哦消息队列里面,zmq_msg_send()函数会执行失败,并设置errno的值为EAGAIN.。
ZMQ_SNDMORE
指明正在被发送的消息是个多帧消息,并且后面还有更多的消息会进行发送。参见下面关于多帧消息的章节,以获取更详细的信息。
在调用zmq_msg_send()函数的时候,消息结构zmq_msg_t是失效的。如果想把消息发送给多个socket,需要调用复制函先数复制这个消息(比如zmq_msg_copy()函数)。
注意:调用zmq_msg_send()成功并不意味着消息已经成功得发送到网络上了,只能说明消息已经添加到消息队列,ZMQ会确保消息的发送。
多帧消息(Multi-part messages 具体怎么翻译我也不会。。。)
一个ZMQ消息是由1个或多个帧组成的。每个消息段都是一个对立的zmq_msg_t消息结构。ZMQ确保对消息进行原子交付:每个socket或者接收整个消息,或者一个消息帧也不接收。每个消息中的帧数是不受限制的,除非内存不够用了。
除了发送最后一帧消息,应用进程每次发送消息时必须使用ZMQ_SNDMORE标志以发送多帧消息。
Return value
如果zmq_msg_send()函数执行成功则返回消息中数据的长度。否则返回 -1,并且设置errno的值为下列值。
Errors
EAGAIN
在使用非阻塞模式发送消息的时候此消息不可用。
ENOTSUP
zmq_msg_send()函数不支持此socket的类型。
EFSM
当socket处在不正确的状态时,zmq_msg_send()操作无法执行。这中情况可能发生在一个socket在集中状态间切换的时候,比如ZMQ_REP。请查看zmq_socket(3) 函数的消息模式章节获得更多信息。
ETERM
和socket相联系的ZMQ context被终结了。
ENOTSOCK
参数提供的socket不可用。
EINTR
在消息发送之前,操作被系统信号中断了。
EFAULT
参数提供的消息不可用。
Example
向一个消息对象写入内容并发送
/* Create a new message, allocating 6 bytes for message content */
zmq_msg_t msg;
int rc = zmq_msg_init_size (&msg, );
assert (rc == );
/* Fill in message content with 'AAAAAA' */
memset (zmq_msg_data (&msg), 'A', );
/* Send the message to the socket */
rc = zmq_msg_send (&msg, socket, ); assert (rc == );
发送一个多帧消息
/* Send a multi-part message consisting of three parts to socket */
rc = zmq_msg_send (&part1, socket, ZMQ_SNDMORE);
rc = zmq_msg_send (&part2, socket, ZMQ_SNDMORE);
/* Final part; no more parts to follow */ rc = zmq_msg_send (&part3, socket, );
See also
zmq_recv(3) zmq_send(3) zmq_msg_recv(3) zmq_socket(7) zmq(7)
Authors
This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>, and Pieter Hintjens <ph@imatix.com>.
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_msg_send – 从一个socket发送一个消息帧的更多相关文章
- ZeroMQ接口函数之 :zmq_send – 在一个socket上发送一个消息帧
ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-send zmq_send(3) ØMQ Manual - ØMQ/4.1.0 Name ...
- 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_ ...
- ZeroMQ接口函数之 :zmq_connect - 由一个socket创建一个对外连接
ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_connect zmq_connect(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_c ...
- 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 ...
- ZeroMQ接口函数之 :zmq_send_const – 从一个socket上发送一个固定内存数据
ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...
- ZeroMQ接口函数之 :zmq_setsockopt –设置ZMQ socket的属性
ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html 本文地址 :http://www.cnblogs.com/fengbo ...
- ZeroMQ接口函数之 :zmq_tcp – 使用TCP协议的ØMQ网络单播协议
ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-tcp zmq_tcp(7) ØMQ Manual - ØMQ/4.1.0 Name zmq_t ...
- ZeroMQ接口函数之 :zmq_ipc – ZMQ本地进程间通信传输协议
ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...
- ZeroMQ接口函数之 :zmq_inproc – ØMQ 本地进程内(线程间)传输方式
ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...
随机推荐
- MySQL 调优/优化的 100 个建议
MySQL 调优/优化的 100 个建议 MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...
- 百度地图API简单应用
在做移动端应用时经常用到百度地图API,百度API有强大的示例和文档,开发之前去百度相关网站注册密钥,很块博主只花了几分钟 百度地图API范例 百度地图API文档说明 例子1:输入特定关键字绘制地图标 ...
- 14个技巧助你适配 iOS10
1.Notification(通知) 自从 Notification 被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大改重构,这让开发者也体会到 Us ...
- 开放数据库互联ODBC配置(odbcconf)
开放数据库互连(ODBC)是微软引进的一种早期数据库接口技术,通过ODBC驱动程序可访问数据库数据:使用ODBC管理器可以完成对数据库的链接操作.笔者利用ODBC接口,将WINDOWS计数器信息写入到 ...
- thinkphp3.2跨控制器调用其他模块的方法
thinphp中前台后台都有互相调用方法,这样可以省去重复内容. 1 2 $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他 ...
- CSS-dl+dt+dd的应用(非常实用)
http://smallpig301.blog.163.com/blog/static/9986093201010262499229/
- 用JS获取地址栏参数的方法
采用正则表达式获取地址栏参数: function GetQueryString(name) { var reg = new RegExp("(^|&)"+ nam ...
- Ubuntu 14.04 LTS 安装Docker
Docker官方是有很详细的安装文档(https://docs.docker.com/engine/installation/ubuntulinux/),这里做了一个Ubuntu 14.04 LTS中 ...
- windows系统和ubuntu虚拟机之间文件共享——samba
参考:http://www.cnblogs.com/phinecos/archive/2009/06/06/1497717.html 一. samba的安装: sudo apt-get insall ...
- PHP 版去bom头
原理: 找出文件前3个字符 如果它们对应的ASCII 值分别是 239,187,191 则判断为bom头,去掉前3个字符. 代码实现如下: $basedir = isset($_GET['dir'] ...