2017-10-19 171 views
0

我必须创建一个从两个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,但只侦听其中的两个。

+0

没有。创建两个套接字。 –

+2

不,您不能将套接字绑定到多个接口。如果您需要绑定到多个接口,则每个接口需要一个套接字。不过,复用或轮询多个套接字很容易。 –

+0

@Someprogrammerdude接缝很好地复用或轮询多个套接字。任何提示? – Gioviiz

回答

3

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

相关问题