|
Broadcasting을 이용하여 현재 네트웍에 물려있는 서버들의 상태를 얻어오는 기능을 만들고 있습니다.
client 프로그램에서는 정해진 메시지를 broadcasting으로 날리고,
서버는 이 메시지를 UDP를 통해 받으면 UDP를 통하여 자신의 상태를 전송하도록 작성하였습니다.
제가 알기로는 IP를 "255.255.255.255"로 지정하면
broadcasting이 가능하다고 들었는데,
TNMUDP 또는 TUdpSocket을 이용해서 이걸 수행하려 하니까,
broadcasting이 안되는거 같군요.
Indy사의 TIdUDPServer를 이용하였을 경우, BroadcastEnabled를 true로 설정해놓고
Broadcast()를 실행시키거나 Send()에 주소를 "255.255.255.255"로 지정하고 실행하였을 경우,
broadcasting이 정상적으로 수행되는 것으로 보여졌습니다.
그런데, OnUDPRead 이벤트 함수에서, parameter인 ABinding의 멤버 함수 Recv()를 통하여
서버의 상태를 정상적으로 수신하고 있습니다만,
parameter인 ABinding에 property인 IP 값이 "0.0.0.0"으로 설정이 되네요.
제 생각엔 데이터를 전송한 서버의 IP가 들어가야 할꺼 같은데....
그래서, 서버의 IP를 알 수가 없네요.
뭔가.. 좋은 방법이 없을까요?
|