我想知道能够将 AF_INET 套接字转换为使用 AF_UNIX 是多么可行。这样做的原因是我有一个程序可以打开一个 TCP 套接字,但我们无法更改它。因此,为了减少开销,我们希望将此套接字绑定为使用 AF_UNIX 进行通信。
到目前为止,我的想法是使用 LD_PRELOAD 来实现这一点——拦截 bind() 和 accept(),但是不清楚如何最好地实现这一点,或者即使这是最好的方法。
到目前为止,在 bind() 中绑定,如果套接字类型是 AF_INET 并且它的 IP/端口是我希望转换为 AF_UNIX 的套接字,那么我在此处关闭 sockd,并打开一个 AF_UNIX。但是,这似乎在 accept() 中进一步引起问题——因为我不确定当 accept() 中的 sockfd 与我希望告诉使用 AF_UNIX 套接字的那个匹配时该怎么做。
任何帮助表示赞赏。
杰森