4

我正在尝试了解多播代码,但我不了解一小部分的实用程序:

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

4

1 回答 1

7

对于 UDP 套接字,设置该SO_REUSEADDR选项允许在同一端口上打开多个套接字。

如果这些套接字也加入了多播组,则进入该组和端口的任何多播数据包都将被传递到该端口上打开的所有套接字。

于 2016-11-13T18:11:38.260 回答