免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: love2000

进程间能否传递socket [复制链接]

论坛徽章:
0
发表于 2007-05-18 12:43 |显示全部楼层
参考一下inet.d

论坛徽章:
0
发表于 2007-05-18 15:32 |显示全部楼层
sendmsg可以满足

A把自己拥有的SOCK,通过sendmsg发送给B,B就会自动获得这个SOCK的引用

论坛徽章:
1
黑曼巴
日期:2020-02-27 22:54:26
发表于 2009-06-09 18:36 |显示全部楼层

论坛徽章:
0
发表于 2009-06-09 20:09 |显示全部楼层
原帖由 love2000 于 2007-4-17 09:10 发表
rt
我想要用一个进程监听端口,如果有请求过来,则让另一个进程去处理,请问能否做到? ?

如果只有一个CPU,多个进程是轮流执行的。

论坛徽章:
0
发表于 2009-06-10 01:03 |显示全部楼层
原帖由 converse 于 2007-4-17 10:27 发表
如果是我上面说的那个意思,那么我认为是不行的.因为在unix中socket属于文件描述符的一种,独立于进程的(父子进程间可以复制),一个进程退出的时候系统会自动关闭这个进程打开的所有文件描述符,所以对一个进程而言 ...


谁说的, 当然可以了. UNP第一卷有相关的介绍, 叫做传递描述字. 就算创建这个fd的进程关闭了它, 但只是在底层的引用计数上-1, 如果有传递到别的进程去是不会真正关闭的.
只是这个用法相当少, 用于处理并发服务器时, 感觉也不方便...

论坛徽章:
0
发表于 2009-06-10 09:08 |显示全部楼层
父进程 接受信息 ,子进程处理信息 可以的

论坛徽章:
0
发表于 2009-06-10 09:38 |显示全部楼层
就是数据间的共享。
建议使用线程比较好实现,然后将共享资源加锁

论坛徽章:
0
发表于 2009-06-10 10:50 |显示全部楼层
学习了!!!!!!

论坛徽章:
0
发表于 2009-06-12 15:09 |显示全部楼层
原帖由 bleem1998 于 2007-4-17 10:53 发表
mq110以前问过一个传递文件描述符的问题
用sendmsg可以做到
转一个网上的文章

我们知道父进程在子进程被fork出来之前打开的文件描述符是能被子进程继承下来的,但是一旦子进程已经创建后,父进程打开的文件 ...


验证了此代码, 在linux下存在两个问题:
1,         新的POSIX使用以下两个结构成员
        msg.msg_control = pcm;
        msg.msg_controllen = SLEN;
2,  发送 -1会失败, 因为OS把它当然无效描述符

论坛徽章:
0
发表于 2009-06-12 15:12 |显示全部楼层
原帖由 思一克 于 2007-4-17 10:48 发表
有亲属关系的进程可以。否则不可以。


OS提供进程间传递描述符的功能, 就是可以解决没有亲缘关系的进程之间传递。  圣经里面说的! (UNP)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP