2009-03-02 4 views
1

클라이언트/서버 소프트웨어를 개발 중이며 클라이언트 시계를 서버 시계와 동기화하여 유지하는 가장 좋은 방법을 찾고 있습니다.클라이언트/서버 시간 간격은 어떻게 계산합니까?

물론 시스템 시계를 건드리지 않기 때문에 NTP을 사용할 수 없습니다.

  • : 난 그냥 내가 아는 위해 할 것은 즉

    는 '현지 시간'으로 변환하는 서버에서받은 모든 단일 날짜에 추가 할 수 있도록 timegap을 계산하기 위해 노력하고있어

    GMT 시간을 사용하여 TimeZone 문제를 처리합니다.

  • 서버가 연결되면 클라이언트에 현재 시간을 보내고 클라이언트는 시간에서 서버 시간을 뺍니다. 네트워크 지연이 일정 할 때

이이 위대한 작품을

은, 불행하게도, 내 소프트웨어는 인터넷에서 작업 할, 심지어 모바일 클라이언트에서 ("내 LAN을"... 읽기)하는 I 최대 지연 시간은 1 분입니다.

내가 작업하고있는 소프트웨어의 경우 그러한 지연은 허용되지 않습니다.

클라이언트/서버 시간 간격을 계산하는 좋은 전략은 무엇입니까?


마지막 일 : 나는

그것은 아마 관련이없는,하지만이 뒤에 기술은 몇 가지가있는 httpbinding를 사용하여 .NET의 WCF 클라이언트입니다 (클라이언트 서버 및 서버에 클라이언트) 두 방법으로 메시지를 보낼 수 있습니다 폴링

답변

0

일정한 간격으로 서버에 핑 (ping)을 수행하여 지연을 계산할 수 있습니다. 나는 네가 인터넷을 통해 정말로 가까이 다가 갈 수 있다고 생각하지 않는다.

1

왜 NTP를 사용할 수 없습니까? 물론 ntp의 기본 설정은 시스템 시간을 설정하는 것입니다. 그러나 이는 의무 사항은 아닙니다 :

$ ntpdate -q ntp.ubuntu.com 
server 91.189.94.4, stratum 2, offset -0.102597, delay 0.05426 
2 Mar 11:44:36 ntpdate[12239]: adjust time server 91.189.94.4 offset -0.102597 sec