2010-06-23 9 views
2

Qt에서 화면을 볼 수있는 간단한 응용 프로그램을 만들려고합니다. 나는 내 자신의 서버와 클라이언트를 작성했다. 현재 클라이언트는 전체 화면의 스크린 샷을 서버에 보내어 표시 할 수 있습니다. 내 서버와 클라이언트에 VNC를 구현할 수 있는지 궁금하거나 두 이미지를 비교하는 방법이있어서 변경된 내용 만 보낼 수 있습니까?Qt에서 VNC 구현

클라이언트와 서버는 UDP를 사용하여 스크린 샷을 보내며 최상의 품질로 이미지를 원합니다.

답변

1

화면에 대한 변경을 감지하는 방법은 여러 가지가 있지만 가장 효율적인 방법은 아마도 미러 드라이버를 사용하는 것입니다.

VNC는 "변경할 가능성이있는"화면 영역을 등록하기 위해 후킹 시스템을 사용합니다.

변경 사항을 모두 잡은 다음 픽셀을 비교하는 것도 가능하지만 이미 클라이언트에 보낸 내용의 버퍼를 유지해야하기 때문에 서버 측에서 조금 더 많은 작업이 필요합니다. 이 버퍼는 현재 스냅 샷을 비교하여 변경 사항을 탐지 할 때 사용됩니다.