게임엔진/크로스플랫폼 : HazelEngine
231004 자체 엔진 개발 : Child Process Multicast 구현 하기
mrawesome
2024. 4. 28. 13:42
https://www.youtube.com/watch?v=hG45hISou58
TCP / IP mutlcast 를 구현해보고자 했다.
하나의 컴퓨터로 multicast 를 구현하는 상황이다.
기본적으로 Server 역할, 혹은 Sender 역할을 하는 Process 를 하나 만들고
Child Process 로 , 여러 Receiver 들을 만들어보려고 했다.
1st 시도 : receiver 들에게 각각 같은 Port 할당해주기
Multicast 는 기본적으로 UDP 통신이다.
이때 Receiver 쪽에 bind 함수를 실행해줘서
어떤 Multicast Port 와 Multi Cast Address 에서 오는 데이터를 수신하는지를 세팅해줘야 한다.
그런데 그 결과, 하나의 Receiver 가 만들어졌다.
추가 Receiver 를 만드려고 하면, 에러가 나왔다.
2nd 시도 : receiver 들에게 각각 다른 Port 할당해주기
같은 Port 번호를 할당해주려고 하는 것이라면, Receiver 쪽에 다른 Port 를 할당해주면 된다.
그런데 이러고 나니, Receiver 는 만들어지지만 의도한 대로 Server 에서 보낸 내용이
모든 Receiver 에게 전파되지 않았다.
이유
멀티캐스트 통신은 기본적으로 특정 multicast 주소와 port 로 데이터를 보내는 것에 의존한다.
즉, receiver들은 같은 주소와 port 를 이용하여 같은 멀티캐스트 그룹에 가입해야만 정상동작한다.