2011-11-18 5 views
0

내 ack 서버 및 ack 클라이언트의 논리가 올바른지 여부를 확인할 수 있습니까? 클라이언트는 ack를 서버로 계속 보내고 서버가 ack를 수신하면 타임 스탬프를 생성합니다. 나는 클라이언트와 서버가 한 대의 컴퓨터에 있고 클라이언트와 서버가 두 대의 컴퓨터에있을 때 측정 된 시간을 찾는다. 예를 들어, 한 대의 컴퓨터에서 측정 된 시간은 몇 밀리 초이지만 두 대의 컴퓨터에서 측정 된 시간은 수백 밀리 초입니다. 1ms를 초과 할 수없는 각 작업을 측정했습니다. 그래서 아마 서버와 클라이언트 측이 올바르지 않은 것 같아요. 감사.Java 클라이언트 서버 코드

+0

원격 시스템과 로컬 시스템에서 다른 결과가 예상됩니다. 그러나 수백 밀리가 너무 많이 들립니다. 두 대의 기계는 어디에 있습니까? – krakover

+0

로컬 네트워크 – susan

+0

어떤 두 번 비교하고 있습니까? 나는 당신의 "수신 시간"을 설정하는 서버의 processAck에서 System.getNanotime을 볼 수있다. 그러나 당신은 "send time"을 어디서 얻고 있는가? 그것이 클라이언트에 있다면, 당신은 아마도 "두 클럭"문제에 부딪혔을 것입니다. – CPerkins

답변

0

당신이 묻는 내용에 대해서는 명확하지 않지만 네트워크 대기 시간을 고려하고 있습니까? 예상했던 것과 비교해 본 결과를 보여줄 수 있다면 도움이 될 것입니다.

0

두 시스템의 RTC가 출력 될 수 있습니다. 이 문제로 인해 아마도 ...

시간이 자동으로 동기화되면 대기 시간 문제로 인해 거의 항상 서로 다른 두 시스템이 약간 동기화되지 않습니다.

관련 문제