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
[63599] Re:시리얼통신 할때 아스키코드이용할려 하는데요.....
송신영 [palindrome] 5457 읽음    2011-01-26 10:46
시리얼 통신에서 일반적으로 SOT(STX)를 0x02 EOT(ETX)를 0x03을 주로 사용합니다.
그리고 데이터는 일반적으로 문자를 사용합니다.
전송하고자 하는 데이터가 숫자로 123 이라면 이것을 문자열 "123" 으로 변경하여 전송하게 됩니다.
그래야 STX또는 ETX와 혼동되지 않기 때문입니다.

char sSendMsg[100];
memset(sSendMsg, '\0', sizeof(sSendMsg));
sprintf(sSendMsg, "%d%s%d", 0x02, "123", 0x03);
Send(sSendMsg);

수신 측에서는 STX와 ETX를 확인하여 데이터를 파싱하면됩니다.

가능하면 모든 데이터를 XOR 연산한 값을 맨 뒤에 붙여서 데이터가
전송중에 손상된 것인지 확인하는 신뢰성 확인 데이터를 추가하는 것도 좋다.

민이 님이 쓰신 글 :
: 안녕하세요 사회생활초짜인 청년입니다.
:
: 현재 제가 다른 사람과 연결하여 간단한 send / Read/ Recive를 할려 하는데요
:
: 아스키 코드를 이용을 할려 합니다.
:
: 상대방에서 CR_____LF 를 보내면(______ = START입니다)
: 저는 STX___EOT(____ = RUN)형식으로 보낼려 합니다.
:
: 10진수로 바꾸어서 해야 될까요??
:
: 제 생각에는 STX의 10진수 값이랑 빈칸에 있는 글자들의 값이랑 EOT의 10진수 값을 더해서 비교 할려 했지만
:
: 아닌것 같아 질문 드립니다..ㅠㅠ
:
: 간단한 예제일수도 있는데 ㅠㅠ
:
: 감이 잘 안오네요 ㅠㅠ
:
: 알려주시면 감사하겠습니다.

+ -

관련 글 리스트
63581 시리얼통신 할때 아스키코드이용할려 하는데요..... 민이 1567 2011/01/24
63599     Re:시리얼통신 할때 아스키코드이용할려 하는데요..... 송신영 5457 2011/01/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.