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
[26832] HEX넣는 배열..해결했나 싶었는데..
요구르트 [bbulte] 769 읽음    2003-08-21 00:02
먼저..
여러님들이..
많은 답글을 올려주신거..
정말 고맙습니다..

나름대로 헬프도 뒤지고,,
해서 새로 코드를 만들었거든요..

ReadStr(), WriteStr()대신 Read(), Write()를 보니깐 버퍼 타입이 void길래 그걸로 했거든요..

char buf[3];                               char Str[3];
int cont;                                  int cont;
                            -->
memset(buf, 0, 4);                         memset(Str, 0, 4);
                            -->
buf[0] = 0x10;                             ComPort1->Read(Str, cont);
buf[1] = 0x11;
buf[2] = 0x12;

ComPort1->Write(buf, cont);

이렇게 했더니..


뭐.
if(Str[0] == 0x10) ShowMessage("!!"); //

데이터가 들어온걸 확인 했거든요..

근데요..

[질문1]
다른 분이나 제가 가지고 있는 코드를 보면,,
받는쪽의 버퍼의 크기를 4096으로 잡던데..
그러는 이유가 있나요??

데이타에 생각지 않는 널문자가 포함될수 있다는건 알지만,
만약 제가 받는 데이타의 크기가 10바이트인데도 그렇게 크게 버퍼를 잡아줘야 하나요??

[질문2]
위에서는 연습삼아 3개의 데이터를 보내는 거예서는
받는쪽도 보내는 쪽도 버퍼크기를 4로 잡았는데요..

이걸 좀 바꿔봤더니 안되네요?

case1. 받는 쪽은 그대로 크기 4로 두고 보내는 쪽의 버퍼를 4096으로 바꿔
       봤더니 이때는 아무 이상이 없었거든요.

case2. 보내는 쪽의 버퍼를 10으로만 올려도..
       대충 디버그를 잘 몰라서
      
       ShowMessage("START");    
       ComPort1->Read(Str, cont);
       ShowMessage("END");
       이렇게 검사했더니..
       START는 보이는데.. END는 안뜨더라구요..
      
       혹시 입력받는 버퍼의 크기가 커서 그거 다 받을려고 기다리느라 시간이 지연되는건 아니겠죠?
       아무튼 받는쪽의 버퍼크기를 조정하면 왜 문제가 생기죠?

       또 해결방법은 무엇이죠??

+ -

관련 글 리스트
26832 HEX넣는 배열..해결했나 싶었는데.. 요구르트 769 2003/08/21
33167     Re:HEX넣는 배열..해결했나 싶었는데.. 쏭이 744 2003/08/21
33166     Re:HEX넣는 배열..해결했나 싶었는데.. 김성협 994 2003/08/21
33165     Re:HEX넣는 배열..해결했나 싶었는데.. 즐겁게~ 745 2003/08/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.