Chinaunix

标题: socket句柄共享问题 [打印本页]

作者: jd808    时间: 2010-07-06 11:12
标题: socket句柄共享问题
我有一个程序
fork()2个子进程出来后父进程关闭,进程1将接到的socket句柄存入共享内存中,进程2对共享内存中的句柄实释操作,比如发送和读取信息等,现在的问题是进程2读取到句柄了,发现句柄不可用呵呵,就是说1号进程写入到共享内存中的句柄不能为进程2所用,大侠们有什么好的办法
作者: zylthinking    时间: 2010-07-06 11:18
进程1 先accept, 然后 for/exec  进程2 试一试, 不要  close on exec。
作者: hellioncu    时间: 2010-07-06 11:57
句柄是进程级的
作者: jd808    时间: 2010-07-06 12:39
进程1 先accept, 然后 for/exec  进程2 试一试, 不要  close on exec。
zylthinking 发表于 2010-07-06 11:18

你这个不是加入一个句柄就创建一个进程了么?这个不合适吧
作者: zylthinking    时间: 2010-07-06 13:12
你这个不是加入一个句柄就创建一个进程了么?这个不合适吧
jd808 发表于 2010-07-06 12:39


合适不合适是另一回事, 只说能不能做到
作者: yulihua49    时间: 2010-07-06 13:24
我有一个程序
fork()2个子进程出来后父进程关闭,进程1将接到的socket句柄存入共享内存中,进程2对共享内存 ...
jd808 发表于 2010-07-06 11:12



    用全局变量传送到子进程,不要用共享内存。
作者: jd808    时间: 2010-07-06 13:28
我是把全局变量映射到共享内存的,我开启了两个进程,物理内存已经被拷贝出来了,这样子应该不行的,我以前试过,楼上的那种方式是可以的,但在现实中没法用啊,链接3000个就得准备3K的进程,去拿弄这么多进程来啊,况且进程间又不好通讯。
作者: zylthinking    时间: 2010-07-06 13:30
那你想做成什么样子的呢
作者: ubuntuer    时间: 2010-07-06 14:05
frok是copy过去的,不是共享




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2