C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[12568] Re:[질문] 자동업데이트의 구현방법을 알고 싶은데요..
박지훈.임프 [cbuilder] 1741 읽음    2001-11-12 09:04
임프랍니다.

비슷한 시스템을 구현한 적이 있는데.. 별건 아닙니다.
물론 조건에 따라 얼마든지 복잡해질 수 있긴 하지만, 기본적으로는 엄청 간단하지요.

얘기를 간단히 하기 위해 프로그램 시작시에 버전 체크를 한다고 합시다.
버전 체크를 하려면 당근 서버상에 있는 파일들과 현재 파일을 어떤 식으로든 비교해야 하는데,
업그레이드할 파일이 exe나 dll 등의 파일일 경우에는 파일 자체에 버전 정보를 표시할 수 있습니다.
하지만 다른 데이터 파일의 경우에는 버전이 안나오죠. 그래서 간단히 한가지 방법만으로 실행파일과
데이터를 모두 버전 관리하려면 파일의 날짜를 비교하는 것이 가장 쉽습니다.

그러면, 버전 체크를 할 때 가장 먼저 서버상에 등록된 파일들의 파일 날짜를 가져와야 하겠죠.
이 파일이름-파일날짜 리스트를 받아오는 것은 어떤 프로토콜이든 상관겠지만, 제 경우에는 비교적
구현하기가 편한 http를 썼습니다. 파일 리스트를 보내주는 쪽을 cgi로 만들었죠.

그 리스트를 받아서 현재 로컬 시스템의 파일들의 날짜들과 비교하는 것은 클라이언트 측의 책임이죠.
날짜를 비교해서 서버상의 파일이 로컬 시스템의 파일보다 날짜가 더 최근이면 그 파일들을 따로 리스트로
남깁니다.

그 다음에는 리스트에 남은 파일들을 다운받으면 됩니다.
여기서도 파일을 받아오는 프로토콜은 무엇이든 상관없지만, 이번에도 저는 구현하기 쉬운 http로 했습니다.

이 정도면 끝입니다. 클라이언트측에서 http로 파일을 받아오는 것은 여러가지 방법이 있는데,
빌더에 포함된 패스트넷 컴퍼넌트의 http컴퍼넌트를 써도 되고 인디의 http나 ics에도 있고,
컴퍼넌트를 쓰는 것이 부담스러우면 WinINet의 http 파일 다운로드 함수를 쓸 수도 있습니다.
하지만 WinINet의 함수를 쓰면 다운로드 상태(%)를 보여줄 수가 없죠.

이런 방법 외에도 여러 변형 방법이 있을 수 있습니다.
상황에 따라서는, 클라이언트 측에서 서버쪽으로 현재 파일들의 리스트를 보내고 서버측에서 업그레이드
해야 할 리스트를 다시 알려줄 수도 있겠죠.

그럼 참고하시길....


로기 님이 쓰신 글 :
: 안녕하세요..
: 노턴안티바이러스같은 프로그램은 내가 업데이트 파일을 받아서 설치하지 않아도 최신의 바이러스정의 파일을 자동으로 업데이트 합니다.
: 노턴 뿐만 아니라 다른 프로그램들도 이렇게 업데이트를 하는 것을 많이 봤구요..
:
: 인터넷을 통한 자동 업데이트 기능을 빌더에서 구현해 보고 싶은데, 어떤 방식으로 해야 하는지 궁금합니다.
: 혹 이런 컴포넌트가 있는지요?
: 아님, 일일이 다 만들어야 하는지요..
: 인터넷에 접속이 되어있는지 검사해서 연결되어 있으면 지정된 서버에서 파일을 다운받고 자동으로 그 파일을 실행하도록 한다.. 머 대충 이런 식일텐데요...
:
: 도움 부탁드립니다.
: 그럼
:

+ -

관련 글 리스트
12551 [질문] 자동업데이트의 구현방법을 알고 싶은데요.. 로기 1741 2001/11/10
12568     Re:[질문] 자동업데이트의 구현방법을 알고 싶은데요.. 박지훈.임프 1741 2001/11/12
12572         Re:Re:[질문] 자동업데이트의 구현방법을 알고 싶은데요.. 로기 1241 2001/11/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.