2016-11-13 10 views
3

私は、マルチキャストコードを理解しよう、と私は少し一部のユーティリティを理解していない:C APIのソケットのSO_REUSEADDR

int fd_socket = socket(AF_INET, SOCK_DGRAM, 0); 
u_int yes = 1; 

setsockopt(fd_socket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); 

私はsetsockopt関数のユーティリティを理解していません。私は、この機能はカーネル内のソケットを変更することを許していると私は理解しています。SOL_SOCKETは私の変更がプロトコルのレベルではなくソケットのレベルに関するものだからです。私は理解していないSO_REUSEADDR

答えて

5

UDPソケットの場合、SO_REUSEADDRオプションを設定すると、複数のソケットを同じポートで開くことができます。

これらのソケットもマルチキャストグループに参加している場合、そのグループとポートに入ってくるマルチキャストパケットは、そのポートで開いているすべてのソケットに配信されます。

+0

ありがとうございました! – wammder