2010-11-29 3 views
2

두 대의 PC가 LAN으로 연결되어 있습니다. 사용자가 응용 프로그램을 통해 시간을 변경하면 두 번째 시스템에서 시간을 업데이트하거나 두 번째 시스템에서 첫 번째 시스템을 폴링 할 수 있습니다. 서버도 인터넷도 없습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?TCP/IP를 통한 두 대의 PC 사이의 시간 동기화, 서버 없음

OS : XP 임베디드.
프레임 워크 : .Net 3.5

답변

1

NTP 서버를 사용할 수 없다면 직접 작성해야합니다.

  1. 두 응용 프로그램은 모두 WCF 서비스를 구현하며 다른 응용 프로그램의 클라이언트입니다.
  2. 로컬 시간이 수정 된 응용 프로그램은 다른 응용 프로그램에 알림을 보내고 DateTime을 보냅니다.
  3. 업데이트 된 DateTime을받는 응용 프로그램은 현지 시간을 변경합니다 (단, 관리되지 않는 코드를 통해 수행해야하므로 응용 프로그램에 더 높은 권한이 필요합니다).

많은 정밀도가 필요하지 않으면 작업이 완료된 것입니다. 더 높은 정밀도가 필요한 경우 데이터 전송과 도착 사이의 손실 시간을 예측해야하며 사소하지는 않습니다.

+0

시몬을 갖고있는 것 같아요. (LAN에 연결된 두 대의 컴퓨터에서 평균 Ping은 꽤 적지 만) – Patrick

1

낮은 기술 솔루션은 업데이트해야하는 컴퓨터에서 NET TIME \\[OtherPC] /SET 명령을 실행할 수 있습니다.

기계를 특정 간격으로 호출하도록 설정할 수 있습니다.

참고로, 저는 일반적인 Windows 컴퓨터에서만 시도했지만, 임베디드에서도 작동 할 것입니다.

편집 : 둘러보기 XP Embedded가 WMI를 지원할 수있는 것처럼 보입니다. 그렇다면 Win32_OperatingSystem 클래스가 있고 SetDateTime 메서드이므로 앱이 원격 PC에 전화를 걸면 폴링을하지 않아도됩니다. 변경.

+0

감사합니다. 두 사람 모두에게 시험해 보겠습니다. – Benjol

+0

흠, [문제가 생겼습니다] (http://stackoverflow.com/questions/4311936/system-error) -5-has-occurred-accessible-when-using-net-time-remote-set)을 사용하여 액세스가 거부되었습니다. 두 번째 옵션을 사용해 보겠습니다. – Benjol

0

기계 중 하나를 NTP 서버로 지정할 수 있습니까? 따라서 표준 NTP 서버 시스템을 사용하여 직접 작성하지 않아도됩니다. 당신이 핑을 할 수있는 시간 손실을 추정하기 위해, 잘 : 나는 XPe의 익숙하지 오전하지만

이 링크 Got the time? 필요한 모든 전문 용어