2009-08-15 6 views
3

클라이언트가 수동으로 구성을 망칠 필요가 없도록 클라이언트가 네트워크의 서버 상태를 자동으로 감지 할 수 있어야하는 클라이언트 - 서버 응용 프로그램을 작성 중입니다.네트워크를 통해 브로드 캐스트 서버가 존재 함

나는 서버가 어떻게 든 그 존재를 방송해야한다고 생각한다. 가장 좋은 방법은 무엇입니까?

서버는 Windows/Linux 또는 OS X에서 실행되므로 솔루션은 크로스 플랫폼이어야합니다. 클라이언트와 서버는 C++로 작성됩니다.

답변

4

이 정보를 방송하는 일반적인 방법으로 ZeroConf를 조사해야합니다. Apple 시스템에서 Bonjour (이전의 Rendezvous)라고도 알려져 있지만, Apple 만의 특별한 것이 아닙니다. 다른 많은 장치 (임베디드 및 OS 모두)를 브로드 캐스트/사용합니다.

많은 언어로 ZeroConf를 처리 할 수있는 라이브러리가 많이 있습니다. 그 중 하나는 인터넷 검색의 문제입니다. ZeroConf 자체는 프로세스의 광고/발견 부분이며 기계와 소켓을 식별한다는 점을 명심하십시오. 그러나 식별 할 수있는 소켓을 통해 원하는 모든 작업을 수행 할 수 있습니다.

예를 들어 Apache mod_zeroconf을 사용하면 Apache 사이트를 브로드 캐스트 할 수 있습니다. 솔루션은 귀하가 의존하는 라이센스 및 사용 권한에 따라 다릅니다.

2

직접하고 싶다면 multicasting을 사용할 수 있습니다. 그 일을하는 (braindead) 방법은 다음과 같습니다. 1) 서버가 주기적으로 구독 클라이언트에 자신의 존재를 알리고 클라이언트와 서버 사이에 유니 캐스트 전송을합니다. & 서버; 2) 구독 한 서버에 클라이언트 신호 (여러 번)가 있고, 다시 서버 & 클라이언트간에 유니 캐스트 전송이 이어집니다. 멀티 캐스트가 모든 UDP가되고 유니 캐스트가 TCP 또는 UDP가 될 수 있다고 생각해야 할 또 하나의 사항.

관련 문제