Linux,C++,dup(socket) 是不是可以从另一个未分叉的进程中工作(如果不是如何启用它)?
Posted
技术标签:
【中文标题】Linux,C++,dup(socket) 是不是可以从另一个未分叉的进程中工作(如果不是如何启用它)?【英文标题】:Linux, C++, will dup(socket) work from another not forked process (if not how to enable it)?Linux,C++,dup(socket) 是否可以从另一个未分叉的进程中工作(如果不是如何启用它)? 【发布时间】:2011-03-18 08:59:01 【问题描述】:所以我打开了一个套接字连接,就像here 中描述的那样,我想让其他进程使用该打开的连接。 dup()
会帮助我还是我该怎么办?
【问题讨论】:
你的意思是这样的:***.com/questions/5312773/…?dup
在这里根本没有用处。
是的...但是在不到 10 行的时间内执行黑魔法会更酷...=)
顺便说一句,Unix 的方式是在进程中创建一个套接字,然后使用fork()
。该子进程继承所有套接字(除非它们是用O_CLOEXEC
打开的)。这种方式在 Unix 中非常容易。在 Windows 中更难......每个操作系统都有其优点和缺点。
【参考方案1】:
为了在现有进程之间传递套接字,您需要使用 sendmsg
- 或 libancillary 来抽象整个事情。
【讨论】:
好的...所以没有什么比 WSADuplicateSocket 在 linux 上开箱即用... hm=(以上是关于Linux,C++,dup(socket) 是不是可以从另一个未分叉的进程中工作(如果不是如何启用它)?的主要内容,如果未能解决你的问题,请参考以下文章