|
Thread모드 라면 님이 데이터를 읽고 다른 함수를 수행하는 순간에도 데이터가 수신되면
컴포넌트가 차곡차곡 모아서 버퍼에 담아 둘것 입니다. 따라서 버퍼만 초기화 해서는 문제 해결이
되지 않을수 있습니다. 이때는 상대방이 몇바이트를 보낼것인지 아는것이 중요합니다.
데이터의 예상 길이 이상 수신 버퍼에 쌓였으면 딱 예상 길이 만큼만 수신 버퍼에서 읽어 내면 됩니다.
Kenzuro 님이 쓰신 글 :
: 안녕하세요.. 초보가 궁금한게 있어서 질문 올립니다~ 많은 관심좀 부탁드립니다.
:
: 궁금한 것은요..
:
: 제가 장비에서 시리얼 통신으로 정보를 받는데요.. 정보가 5개씩 한 세트로 50세트가 들어오도록
:
: 되어있습니다. D라는 정보가 처음 시작이라면 D가 맨 앞에 와줘야 하는데.. 어쩔 때는 정보가 제대로
:
: 들어오다가도 처음 시작정보인 D가 중간에 껴 있는 경우도 있습니다. 값이 이상하게 들어오나 싶어서
:
: 들어오는 정보를 파일로 출력해보니 정보는 제대로 들어옵니다.. 이것저것 생각해본 결과
:
: 버퍼에서 출력되지 않고 남아있던 정보가 한번에 출력되면서 그런거 같은데요.. 이 버퍼를 초기화 해 줄 방법
:
: 이 있을까요? 검색을 해봤는데.. 검색도 코딩도 초보라 그런지 잘 못찾겠더라구요.. 잘 부탁드립니다!!
:
: 컴포트는 TComPort를 사용했습니다.
|