TTL : Time to Live, 패킷의 거리, 라우터를 지나면 1이 감소하고 0이되면 패킷이 소멸한다.
//TTL 설정, time_live는 int다.
setsockopt(send_sock, IPPROTO_IP, IP_MULTICAST_TTL, (void*)&time_live, sizeof(time_live));
// 그룹 가입
struct ip_mreq join_adr;
join_adr.imr_multiaddr.s_addr = "멀티캐스트 그룹 주소";
join_adr.imr_interface.s_addr = "그룹의 호스트 주소";
setsockopt(recv_sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void*)&join_adr, sizeof(join_adr));
송신
UDP 소켓을 만들고 TTL을 설정한 뒤 대상을 멀티캐스트 그룹의 주소와 포트로 지정한다.
수신
멀티캐스트 그룹에 들어가고 수신
동일한 네트워크의 모든 호스트에게 데이터를 전송하는 기술. IP주소의 형태에 따라 Directed, Local로 구분한다.
// so_brd = 1을 주면 브로드캐스트가된다. 클라이언트에는 별 다른 작업을 해줄 필요가 없다. 윈도우에서도 큰 차이는 없다.
setsockopt(send_sock, SOL_SOCKET, SO_BROADCAST, (void*)&so_brd, sizeof(so_brd));