|
정말 정말 정말 감사하고 또 감사 합니다
회사에 입사해서 매일 밥충이라고 했는데 오늘 한 건 했습니다. 제가 한거 아니지만여...
정말 감사하구여...올 한해 답변해주시느라 수고하셨구여 내년에도 부탁드립니다..
감사합니다..내년에 복 많이 받으시구여...크리스마스 즐겁게 보내세여...메리 크리스마스........^^
장성호 님이 쓰신 글 :
: 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 이니
: : : : 프레임 구조는 이렇게 합니다...뭐 이런식으로요 도와주십시요...
|