2017-10-19 166 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

不,您必須爲此使用兩個不同的套接字;將每個套接字綁定到其中一個地址。

相關問題