2012-06-27 2 views
1

C에서 클라이언트 작업을, C에서 서버 작업을 개발했습니다. 클라이언트는 서버에 연결하기 위해 서버 IP 주소가 필요합니다. 문제는 다음과 같습니다. 어떤 컴퓨터가 클라이언트를 실행하고 어떤 시스템이 서버를 실행할 것인지 미리 알 수 없으므로 런타임에만 서버의 IP 주소를 알 수 있습니다. 내 질문 : 런타임에 클라이언트가 어떻게 알 수 있습니까? 서버의 IP 주소?런타임시 서버의 IP 주소

+1

대신 DNS 항목을 사용하지 않으시겠습니까? IP 주소로 구성 할 수 있습니까? –

+0

[DNS] (http://en.wikipedia.org/wiki/Domain_Name_System)? –

+0

아이디어를 더 자세히 설명해 주시겠습니까? 도와 주셔서 대단히 감사합니다 – researcher

답변

0

클라이언트와 서버 모두 미리 알고있는 타사 브로커 서버를 사용하십시오.

알려진 IP 주소로 어디서든 서버를 설정하기 만하면됩니다. (클라우드 서버를 사용하는 것은 값 싸고 빠른 옵션입니다.)

서버가 시작되면 IP 주소를 브로커 서버로 보내고 클라이언트가 시작될 때 브로커 서버가 연결될 서버를 쿼리합니다.

물론 프로토콜을 작성해야하지만 매우 간단 할 수 있습니다.

+1

보안에 문제가 없다면 매우 간단 할 수 있습니다 ... – moooeeeep

+0

게시물에 대한 큰 문제는 보안에 대해 깊이 생각하지 말고 숙제 문제에 대한 답변 일 뿐이라고 생각합니다. – uvesten

3

의견 작성자가 지적한대로 DNS를 사용할 수도 있습니다. 어떤 이유로 든 DNS 항목을 가져올 수 없거나 서버와 클라이언트가 동일한 네트워크에서 실행되는 경우 일종의 mDNS를 사용하는 것이 좋습니다. 레코드가있는 DNS 서버가 필요하지는 않습니다. 달리기. 소개 개요는 http://en.wikipedia.org/wiki/MDNS#Multicast_DNS을 방문하십시오.

0

먼저 무엇을 검색 할 것인지 기억해야합니다. 그리고 약간의 문제가있는 경우 DNS를 사용하면 매우 유용합니다 .....

+0

freepastry API를 사용하면 작업 할 수 있으므로 작은 규모의 로컬 네트워크 또는 대규모 (인터넷) 서버를 사용할 수 있습니다. – researcher

0

서버와 클라이언트가 로컬 네트워크에서 실행되는 경우이 아름다운 MAC 주소를 사용하십시오 : FF-FF -FF-FF-FF-FF ...;) 그러나 이름이 같으면 DNS를 사용하는 것이 가장 좋습니다.

+0

서버가 시작될 때 serv에 호스트 이름을 변경할 수 있다고 말할 수 있습니다. 서버 코드 (C 언어)에서이 작업을 수행 할 수 있습니까? 어떤 컴퓨터가 서버를 실행할 것인지 미리 알지 못하기 때문에 ... – researcher

+0

DHCP 서버는 클라이언트가 네트워크에서 새로운 서버 일 때 여기서 DHCP 서버는 (어떤 IP)이며 서버는 연결을 끊습니다. 서버/클라이언트 모두에서 똑같은 작업을 수행하십시오. –