SO_REUSEADDR的目的是什么?

5

我正在尝试理解一个多播代码,但是我不明白其中一小部分的实用程序:

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

1个回答

8

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

如果这些套接字还加入了一个多播组,那么任何发往该组和端口的多播数据包都将传递到该端口上打开的所有套接字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接