UNIX套接字“\0XXX“ 格式化抽象本地地址

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了。

猜你喜欢

转载自blog.csdn.net/vegeta852/article/details/114401662