免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3255 | 回复: 7

[C] 单个机器进程间通信疑问 [复制链接]

论坛徽章:
0
发表于 2011-11-17 16:50 |显示全部楼层
单台机器,进程之间的通信,一般都是会考虑用管道,消息队列,共享内存,
但是有没有可能 用socket来实现的,而不是以上三种~~~总感觉这样问很扯淡~~

论坛徽章:
0
发表于 2011-11-17 17:09 |显示全部楼层
当然可以了,不过socket的通信限制和效率方面都比以上几种要差些。
通用性当然其他几个IPC机制要好些。

论坛徽章:
0
发表于 2011-11-17 17:12 |显示全部楼层
当然可以了,不过socket的通信限制和效率方面都比以上几种要差些。
通用性当然其他几个IPC机制要好些。
samzc2010 发表于 2011-11-17 17:09



谢谢,明白了~~

论坛徽章:
0
发表于 2011-11-17 17:54 |显示全部楼层
本帖最后由 keytounix 于 2011-11-17 17:55 编辑

回复 1# hokuhouhi

哈哈
给你源代码
socket实现不同进程的通信的代码
就是俩个不同程序间的通信咯
linux下 编译通过的

http://hi.baidu.com/andio/blog/item/6acf7a60c8ef655ceaf8f885.html

论坛徽章:
0
发表于 2011-11-17 17:57 |显示全部楼层
回复  hokuhouhi


    哈哈
给你源代码
keytounix 发表于 2011-11-17 17:54


谢谢了,就是奇怪问问,比如是否有那些情况下<当然单机下>用socket比其他三个好,或者说有什么理由非得用socket而不是其他三种~~

论坛徽章:
0
发表于 2011-11-17 18:21 |显示全部楼层
本帖最后由 keytounix 于 2011-11-18 09:58 编辑
谢谢了,就是奇怪问问,比如是否有那些情况下用socket比其他三个好,或者说有什么理由非得用socket而不 ...
hokuhouhi 发表于 2011-11-17 17:57



socket机制是需要网络协议支持的

我说说不用socket的情况吧

如果你做的是嵌入式系统
你会发现网络协议很占空间的
比如你用交叉编译器编译好一个可用的内核,

可能大小只有900kB,这个因为是单机,

不上网络协议也就可以用了

如果你需要利用socket,那么就需要在Make menuconfig时候,选择相关的
网络协议

可能编译好后就有1.5MB了

在嵌入式上需要考虑空间这个东西,
因为
一个zimage文件的大小,可能直接影响到生产时候的烧录速度,也就影响到效率了
一个zImage文件的大小,可能超过ubuoot设置的分区大小,这个时候需要动uboot,很麻烦

还有,我碰到过,因为上了boa,导致socket失效的
这个是因为boa和socket通信没配置好

这个是不推荐用socket的情况

IPC机制有些什么东西呢?

一个是信号量,这个是实现进程或者线程同步的,也可以叫数据通讯咯,
百度 sem_open,第一篇文章就是讲述不同的应用程序间通过sem实现同步的,
也给你一个源代码,linux下调试通过的
http://hi.baidu.com/andio/blog/item/07bb5ec270e3bb26e4dd3be4.html

一个是消息体,这个是实现进程间信息通信的,个人习惯 小量数据,规则的数据用这个,
如果你一次要传递几个KB的数据,还是用socket

再一个是内存共享,没什么研究,个人一般不用,

以上是个人见解,欢迎指正

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
发表于 2011-11-18 09:10 |显示全部楼层
有一種叫做unix域socket的東西!有些系統的全雙工管道,stream都是使用這個東西實現的。

他是socket!!!

论坛徽章:
0
发表于 2011-11-18 09:32 |显示全部楼层
当然管道用的比较多。
socket,也是很正常的用法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP