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
[58517] Indy를 이용한 파일 전송 질문입니다.
Nake [gold85] 1655 읽음    2009-09-11 23:12
안녕하세요. Indy를 이용하여 파일을 전송하려고 하는데 초보자여서 어렵네요.
원래는 리눅스 기반으로 QT를 사용하여 서버와 클라이언트를 구성하였는데.
클라이언트만 C++빌더 기반으로 바꾸려고 합니다.

원래 시스템은 서버(이동 로봇)에서 카메라로 영상을 저장(bmp파일)한 후 클라이언트로 전송하여
클라이언트에서 이 영상을 재생하는 것이 목적입니다.
영상 외에도 text 데이타를 주기적으로 전송하고 있습니다. 

소켓 접속부터 text 데이타 전송까지는 성공하였습니다. (타이머, ReadLn이용)
문제는 bmp파일의 전송입니다. 질문이 많습니다. 죄송하지만 꼭 한 번 봐주세요~

질문1)
서버(리눅스/QT기반)에서 text데이타와 그림파일은 각각 주기적으로 보내고 있는데 이러한 경우에
클라이언트(C++빌더)에서 구분하여 받을 수 있는지요?
받을 수 있다면 어떤 식으로 구성해야 하는지?
text 데이타는 ReadLn,타이머1를 이용해서 받고 있습니다.
bmp파일은 ReadBuffer,타이머2를 이용해서 받으면 되는건가요?

질문2)
클라이언트에서 bmp파일 받는 부분은 아래와 같이 넣었는데요

        TFileStream* outHandle;
        unsigned char *pszBuffer;
        pszBuffer = new char[4000];
        outHandle = new TFileStream("d:\\camera.bmp", fmCreate);      
        IdTCPClient1->ReadBuffer(pszBuffer,4000);
        outHandle->WriteBuffer(pszBuffer,4000);

RUN 시키면
Project ***.exe raised exception clas EFCreateError with message 'Cannot create file d:\camera.bmp'.
Process stopped. Use Step or continue
라는 에러 메세지가 뜨면서 실행이 안되네요. d:\에 camera.bmp파일은 생성이 됩니다.

질문3)
indy에서 한방에 보내고 받을 수 있는 데이타의 크기는 얼마나 되나요?
현재 서버의 카메라에서 찍어서 저장한 bmp파일이 56.3KB정도입니다.
가능할까요? 나눠서 보내야 하나요?
QT에서 jpg 라이브러리가 죽어도 안 올라가서.. 어쩔수 없이 bmp로 저장해서 전송하고 있습니다.ㅠㅠ

초보자의 두서 없는 긴 글 읽어주셔서 감사합니다..
고수님들의 지도 부탁드릴께요~~

+ -

관련 글 리스트
58517 Indy를 이용한 파일 전송 질문입니다. Nake 1655 2009/09/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.