首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过LD_PRELOAD将AF_INET套接字转换为使用AF_UNIX

通过LD_PRELOAD将AF_INET套接字转换为使用AF_UNIX
EN

Stack Overflow用户
提问于 2013-06-07 20:16:11
回答 1查看 661关注 0票数 1

我想知道将AF_INET套接字转换为使用AF_UNIX的可行性有多大。这样做的原因是我有一个程序可以打开TCP套接字,但我们不能更改它。因此,为了减少开销,我们希望将此套接字绑定为使用AF_UNIX套接字进行通信。

到目前为止,我的想法是使用LD_PRELOAD来实现这一点-截取绑定()和接受(),然而目前还不清楚如何最好地实现这一点,或者这是否是最好的方法。

到目前为止,在绑定()中绑定,如果套接字类型是AF_INET,并且它的IP/端口是我想要转换为AF_UNIX的套接字,那么我在这里关闭sockd,并打开一个AF_UNIX套接字。然而,这似乎在accept()中引起了更多的问题--因为我不确定当accept()中的sockfd与我希望告知的使用AF_UNIX套接字的sockfd匹配时该怎么办。

如有任何帮助,敬请惠顾。

杰森

EN

Stack Overflow用户

发布于 2013-06-07 22:16:29

你的想法听起来完全可行。事实上,我认为这听起来是实现你想要的最好的方法。不过,我认为开销/性能不会有很大的不同,甚至不会有明显的不同。

当然,除了bind()accept()之外,您还必须拦截socket()。例如,在bind()中,您可以将请求的TCP端口转换为固定的路径名/tmp/converted_socket.<port-number>或类似的东西。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16983918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档