est*_*ban 3 c sockets getaddrinfo
有谁知道是否可以在 C (AF_UNIX) 中将 getaddrinfo 与 unix 套接字一起使用。我尝试了一些方法,但无法使其发挥作用。这基本上就是我正在尝试的:
struct addrinfo hints, *res;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNIX;
hints.ai_socktype = SOCK_STREAM;
if(getaddrinfo("What should I put here?", "What should I put here?", &hints, &res) != 0){
//do sth about
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何填充节点和服务字段,以防可以将其与 unix 套接字一起使用。
提前致谢。
某些实现getaddrinfo()
支持AF_UNIX
套接字地址,但出于安全考虑,它们不再这样做。
无论如何,您实际上并不需要一个函数来“查找”AF_UNIX
地址 - 如果您知道套接字路径,那么您可以直接将其复制到sockaddr_un
足够大小的地址中。地址没有解析步骤AF_UNIX
- 套接字名称就是套接字地址。