是否可以将套接字绑定到c中的2个地址?

时间:2017-10-19 12:36:59

标签: c sockets ipv6

我要创建一个从两个IP地址收听的套接字。可能吗?

struct sockaddr_in6 bind_addr;
memset(&bind_addr, 0, sizeof(bind_addr));

bind_addr.sin6_family = AF_INET6;
bind_addr.sin6_port   = htons(9001);
bind_addr.sin6_addr   = in6addr_any;

if (bind(fd,(struct sockaddr *) &bind_addr,sizeof(bind_addr)) < 0) {
    perror("bind() failed");
    return -1;
}

我应该需要类似“in6addr_any”的内容,它可以收听所有IP,但仅限其中两个。

1 个答案:

答案 0 :(得分:3)

不,你必须使用两个不同的插座;将每个套接字绑定到其中一个地址。