UNIX套接字"\0XXX" 格式化抽象本地地址
创建AF_UNIX unix套接字,路径名的第一个字节为空字节时,就可以让本地套接口地址成为了格式化抽象本地地址,在路径名中空字节之后的字节才会成为抽象名字的一部分。
int32_t sock = -1;
int32_t one = 1;
sock = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
struct sockaddr_un addr =
{
.sun_family = AF_UNIX,
.sun_path = "\0UNIX.domain"
};
setsockopt(socket, SOL_SOCKET, SO_REUSEADDR, (void *)&one, sizeof(one));
bind(socket, (struct sockaddr *)&addr, sizeof(addr));
listen(socket, 5);
使用netstat -anp 查看
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 71802 5841/xxx @UNIX.domain
unix socket的路径就成为@UNIX.domain了。