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
[51559] Re:Re:Re:다시 질문드립니다.
장성호 [nasilso] 1060 읽음    2007-12-10 16:41
AnsiString으로 하시면 안됩니다.
AnsiString은 문자열을 처리하기 위한 class입니다.
왜냐하면 문자열은 기본적으로 시작부터 0x00을 만나면 끝은로 간주합니다.

예를 들어

char buf[100];
        buf[0]='a';
        buf[1]=0;
        buf[2]='b';
        buf[3]='c';

strlen(buf) 해보세요   100 이 아닌 1이 나올겁니다.  왜냐하면 0까지만 문자열로 보기때문에...

그냥 char buf를 쓰세요

unsigned char buf[256];
buf[0]= 5  ;  //Length or Count
buf[1]= iFrameType ;
buf[2]= 0;
buf[3]= 0 ;
buf[4]= ~ ( buf[0]+buf[1]+buf[2]+buf[3]); 

SendBuff(buf,5) ;  //이런식으로 해야하죠

checksum은 data가 길어지면 간단하지 않으므로 for문으로 만들면 되구요

그럼..





코코정 님이 쓰신 글 :
: 답변 정말 정말 감사합니다.
: 그런데여 또 한가지 질문이 있습니다.
: 제가TCP/IP통신을 하려고 하는데여 방금 테스트를 하고 왔는데 서버가 아는척 를 안하더라구여..
: AnsiString Count = 0x05;
: AnsiString Type  = 0x00;
: AnsiString Data  = 0x00;
: AnsiString Sum  = !(Count + Type + Data);
: AnsiString  Frame = Count + Type + Data + Sum;
: Sendbuff(Frame.c_str(),Frame.length()); 이렇게여....
: 이렇게 해서 버퍼로 보냈는데 제가 작성한거에 무슨 문제라도 있는건가여?
:
:
: 장성호 님이 쓰신 글 :
: : Frame = Count+FType+Data(n)+CheckSum
: :
: : * Count = 프레임 전체 길이 입니다.
: :        1+1+n+1 가 되겠네요
: :        (좀 애매한데 보통 Count부분을 빼기도 합니다.)
: :
: : * FrameType은 데이타 아무거나 올것이구
: : * Data는 총 250 Byte이하 이구
: :
: : * CheckSum은?
: :      Check sum – is inverted sum of all previous bytes of the a Frame.
: :      즉  체크썸 앞에까지 전체 sum해서 invert하라네요
: :      
: :      예) 아래와 같은경우..
: :       Count 5 + FType 1  + Data { 0x03 , 0x04 } + ChkSum
: :       ChkSum= ~ (0x05 + 0x01 + 0x03 + 0x04 ) ;  이렇게 됩니다.
: :    
: : 그럼..
: :
: :
: :  
: :
: :
: :
: : 코코정 님이 쓰신 글 :
: : : 바로 아래질문을 하였는데 제가 읽어봐도 무슨 말 인지 이해가 되질않아서 이렇게 다시 질문합니다.
: : : 첨부한 파일이 프로토콜입니다.
: : : 해석좀 부탁 드립니다.
: : : Byte count가 무엇을 하고자 하는 놈인지 궁금하구요
: : : check sum을 계산하라고 하는데 어떻게 계산하는건지도 궁금합니다..
: : : 그리고 예를 들어 설명해 주시면 감사하겠습니다.
: : : 예)
: : : 프레임 타입은 0x00이고
: : : 데이터는            0 이니
: : : 프레임 구조는 이렇게 합니다...뭐 이런식으로요  도와주십시요...

+ -

관련 글 리스트
51553 다시 질문드립니다. 코코정 920 2007/12/10
51556     Re:다시 질문드립니다. 크레브 907 2007/12/10
51554     Re:다시 질문드립니다. 장성호 978 2007/12/10
51555         Re:Re:다시 질문드립니다. 코코정 1001 2007/12/10
51559             Re:Re:Re:다시 질문드립니다. 장성호 1060 2007/12/10
51560                 Re:Re:Re:Re:다시 질문드립니다. 코코정 976 2007/12/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.