2016-11-13 9 views
3

나는 멀티 캐스트 코드를 이해하려고 노력하고, 나는 작은 부분의 유틸리티를 이해하지 않는다 : 나는 setsockopt를 함수의 유틸리티를 이해하지 못하는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)); 

. 나는이 기능이 커널의 소켓을 수정하는 것을 허용하고, SOL_SOCKET은 나의 수정이 소켓 레벨에 관한 것이지 프로토콜 레벨에 관한 것이 아니기 때문에 이해한다. 나는 SO_REUSEADDR을 이해하지 못한다.

답변

5

UDP 소켓의 경우 SO_REUSEADDR 옵션을 설정하면 동일한 포트에서 여러 소켓을 열 수 있습니다.

해당 소켓이 멀티 캐스트 그룹에도 가입되어있는 경우 해당 그룹과 포트로 들어오는 멀티 캐스트 패킷은 해당 포트에서 열려있는 모든 소켓에 전달됩니다.

+0

답변 해 주셔서 감사합니다. – wammder