簡體   English   中英

在Linux中的進程之間傳輸套接字

[英]transfer socket between processes in Linux

如何在Linux下的進程之間傳輸套接字的所有權? Windows有一個Socket.DuplicateAndClose函數,但有沒有辦法在Linux上執行此操作?

如果它有所作為,我想將所有權從父進程轉移到子進程,並且在我獲得套接字時子進程還沒有啟動,所以我對涉及fork有趣解決方案持開放forkexec系列的功能。

子進程將繼承文件描述符。 因此,除了在分叉子項后關閉父項中的套接字之外,您無需執行任何操作。

如果在子exec另一個可執行文件,則可能需要使用特定參數通知文件描述符值。

鑒於您希望在創建套接字后生成子進程,因此沒有傳輸。 子進程繼承父描述符。 因此,父母只需要關閉套接字以將所有權傳遞給孩子。

但是,要將新創建的套接字實際傳遞給現有進程,需要使用輔助數據接口打包套接字,並使用sendmsgrecvmsg進行數據傳輸。 cmsg手冊頁包含有關如何創建要執行傳輸的消息的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM