是否可以将套接字绑定到c中的2个地址?
问题描述:
我必须创建一个从两个IP地址侦听的套接字。它可能吗?是否可以将套接字绑定到c中的2个地址?
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,但只侦听其中的两个。
答
不,您必须为此使用两个不同的套接字;将每个套接字绑定到其中一个地址。
没有。创建两个套接字。 –
不,您不能将套接字绑定到多个接口。如果您需要绑定到多个接口,则每个接口需要一个套接字。不过,复用或轮询多个套接字很容易。 –
@Someprogrammerdude接缝很好地复用或轮询多个套接字。任何提示? – Gioviiz