SO_REUSEADDR的目的是什么?

时间:2016-11-13 17:07:37

标签: c sockets multicast setsockopt

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

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 个答案:

答案 0 :(得分:5)

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

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