SO_REUSEADDR 的目的是什么?

What is the purpose of 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

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

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