ZeroMQ接口函数之 :zmq_ipc – ZMQ本地进程间通信传输协议-阿里云开发者社区

开发者社区> 范大脚脚> 正文

ZeroMQ接口函数之 :zmq_ipc – ZMQ本地进程间通信传输协议

简介:
+关注继续查看

zmq_ipc(7)          ØMQ Manual - ØMQ/3.2.5

Name

zmq_ipc – ZMQ本地进程间通信传输协议

Synopsis

进程间传输采用与系统相关的IPC机制进行本地进程间的消息通信。

进程间传输方式目前只在提供UNIX定义的socket系统上完全的实现了

Addressing

一个终结点包括transport://跟着一个address (对于IPC也就是 ipc://address)。transport指定了要使用的底层的系统协议。address指定了需要连接的指定地址。

对于进程间的传输,transport指的是ipc,address部分在下面进行定义。

绑定一个socket

当使用zmq_bind()函数以ipc传输方式绑定一个本地socket的时候,终结点应该是一个任意字符串的文件名,能够唯一标志将要创建的文件。文件名应该是在使用ipc进行操作是,这个操作系统名称空间中唯一的。这个文件名还必须满足操作系统对正常文件名在格式和长度上的限制。

当地址是*的时候,zmq_bind()函数会生成一个临时的文件名。调用者需要使用ZMQ_LAST_ENDPOINT属性获取此文件名。查看zmq_getsockopt(3)函数获取更多细节。

所有绑定在一个已经存在的文件名的动作都会被重载。在这种情况下,ipc协议和tcp或者inproc协议是不一样的。

连接一个socket

当使用zmq_connect()函数向一个对端发起ipc连接的时候,终结点需要是一个能够唯一标志一个文件名的任意字符串。这个文件名必须是已经由操作系统创建,并且被分配给了一个通过zmq_bind()操作过的socket。

Examples

  给一个socket分配一个地址

//  Assign the pathname "/tmp/feeds/0"
rc = zmq_bind(socket, "ipc:///tmp/feeds/0");
assert (rc == 0);

  连接一个socket

//  Connect to the pathname "/tmp/feeds/0"
rc = zmq_connect(socket, "ipc:///tmp/feeds/0");
assert (rc == 0);

See also

zmq_bind(3)  zmq_connect(3)  zmq_inproc(7)  zmq_tcp(7)  zmq_pgm(7)  zmq_getsockopt(3)  zmq(7)

Authors

This ØMQ manual page was written by Pieter Hintjens <ph@imatix.com>, Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>.

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


本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/4320014.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用单进程、strace、gdb调试PHP错误
使用单进程、strace、gdb调试PHP错误PHP一般是在FPM的呵护下运行的,但是某些情况下进程异常崩溃会导致502。下面是解决思想: 1. 单进程运行: php -d display_errors=1 -S 0.
1546 0
从制定通信协议所想到的......
第一次听到通信协议有关的事,是2001年初到公司的时候,那个时候,总是把通信协议和硬件(或通信链路)扯在一起,对232/485、TCP等通信链路和Modbus、PPI、TFP分不清到底是什么关系(记得当时,陈老师有好多次纠正我不要把通信说成通讯,通信包括通讯和可信两部分含义,有通讯可靠的意思)。
849 0
西门子PPI协议的工控通信控件
    PPI协议是西门子PLC的私有协议,但是PPI又是西门子PLC200系列的默认的协议,如果用公开协议Modbus还得占用目前的程序空间和变量空间。
609 0
linux strace-跟踪进程的系统调用或是信号产生情况,lstrace-跟踪己丑年调用库函数情况,进程跟踪调试命令
本工具可以用来做大多数排除,比如mount一个NFS,很慢,找不出原因,我们可以使用strace命令来跟中mount这个经常所有的调用过程。 strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。
1352 0
【Java8新特性】还没搞懂函数式接口?赶快过来看看吧!
Java8中内置了一些在开发中常用的函数式接口,极大的提高了我们的开发效率。那么,问题来了,你知道都有哪些函数式接口吗?
13 0
《UNIX网络编程 卷2:进程间通信(第2版)》——1.8 书中IPC例子索引表
生产者-消费者:一个或多个线程或进程(生产者)把数据放到一个共享缓冲区中,另有一个或多个线程或进程(消费者)对该共享缓冲区中的数据进行操作。序列号持续增1:一个或多个线程或进程给一个共享的序列号持续增1。该序列号有时在一个共享文件中,有时在共享内存区中。
1057 0
Linux下C编程,子进程创建函数fork() 执行解析
最近在看进程间的通信,看到了fork()函数,虽然以前用过,这次经过思考加深了理解。现总结如下: 1.函数本身   (1)头文件   #include  #include   (2)函数原型   pid_t fork( void);  (pid_t 是一个宏定义,其实质是int 被定义在#include中)  返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1   (3)函数说明   一个现有进程可以调用fork函数创建一个新进程。
638 0
Spring MVC 函数式编程进阶
1. 前言 上一篇对 Spring MVC 的函数式接口编程进行了简单入门,让很多不知道的同学见识了这种新操作。也有反应这种看起来没有传统写法顺眼,其实大家都一样。但是我们还是要敢于尝试新事物。Java Lambada 刚出来也是被人各种吐槽,现在我在很多项目都见到了它的身影。好了转回正题,本文是对上一篇的延伸,我们继续对 Functional Endpoint 进行一些了解和运用。范式转换其实上一篇已经介绍差不多了,但是一旦你初次接触这种方式往往会面临新的问题。 2. 新的问题 在使用这种风格时我们也会遇到一些新的问题。接下来我们将通过举例来一步步解决这些问题。 2.1 如何异常处理 接
26 0
《UNIX网络编程 卷2:进程间通信(第2版)》——2.2 IPC名字
这也许是你第一次碰到snprintf函数。许多现有代码调用的是sprintf,但是sprintf不检查目标缓冲区是否溢出,不过snprintf要求其第二个参数是目标缓冲区的大小,因此可确保缓冲区不溢出。提供能有意溢出一个程序的sprintf缓冲区的输入数据是黑客们已使用很多年的一种攻破系统的方法
1785 0
+关注
3656
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载