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
[49169] SendBuf로 소켓을 통해 데이터 보낼 때 문제입니다.
Hybrid [] 1643 읽음    2007-05-06 20:53
지금까지는 계속 검색해가면서 해결을 해왔는데,

몇시간을 붙잡아도 이게 해결이 안되네요. 내일 아침까지는 마감을 해줘야 될꺼 같은데;;;


구현 내용은 간단합니다.

TImage *ScreenImage;
ScreenImage->Canvas->Handle 의 데이터를 네트웍으로 보낸 후
상대방에서 받은 다음에
다시
ScreenImage->Canvas->Handle 으로 넣는 겁니다.

정말 간단한거 같은데 잘 안되네요. 다음은 제가 시도해본 것들입니다.

1. Buffer를 그대로 사용하기
보낼때는 먼저 데이터 헤더를 보냅니다.
Client->Socket->SendBuf( &dh, sizeof(DataHeader) );
그다음에 데이터가 들어가는데,
ClientSocket->Socket->SendBuf( bm->Canvas->Handle, 400*300*3 ); // 400x300 의 크기의 이미지입니다.
이렇게 하면 bm->Canvas->Handle 에 대해서 Access Violation 이 일어납니다.

2. MemoryStream 사용하기
TMemoryStream *stream = new TMemoryStream;
bm->SaveToStream( stream );
ClientSocket->Socket->SendStream( stream );
을 사용해봤는데, 일단 이렇게 몇번 보내다보면 에러가 나고,
반대편에서는 ReceiveStream 도 없이 RecieveBuf로 받아야 되더군요. 애매하네요.

이걸 도대체 어떻게 해야하나요?
답변 부탁드립니다.


ps.
대충 보니까, 억지로 다른 데이터라도 보낼려고 하면, 전송량이 많을 경우 꼭 10053인가 그 에러를 내더군요.

전송량을 줄여서 끊어야 되나요?;;;;;

+ -

관련 글 리스트
49169 SendBuf로 소켓을 통해 데이터 보낼 때 문제입니다. Hybrid 1643 2007/05/06
49172     Re:SendBuf로 소켓을 통해 데이터 보낼 때 문제입니다. 아제나 1285 2007/05/06
49174         Re:Re:SendBuf로 소켓을 통해 데이터 보낼 때 문제입니다. Hybrid 1182 2007/05/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.