(연관된 글이 2개 있습니다.)
안녕하세요.
TCP통신시 데이터 수신문제입니다.
현재 통신방식이
BCR_TEST <-> PMO_Test_WCS <-> ROBOT_TEST
BCR_TEST : Client
PMO_Test_WCS : Sever & Client
ROBOT_TEST : Server
이러한 구조입니다.
현재 바코드를 스캔하여 스캔한데이터를 가지고 통신하는방식입니다.(정상적인데이터면 queue에 저장)
프로젝트는 총 3개이며 BCR_TEST에서 바코드 스캔시 스캔한 데이터를 PMO_Test_WCS에 송신하게됩니다.
PMO_Test_WCS는 받은 데이터를 가지고 다시 ROBOT_TEST에 송신하게 되며(queue에 받은 데이터를 넣어두고 queue에 데이터를 꺼내서 송신) ROBOT_TEST는 에코서버입니다.
PMO_Test_WCS에서는 BCR_TEST에서 보낸 데이터가 NOREAD가 아니면 에코하며(OK를 추가하여) NOREAD이면 PASS라는 데이터를 RECIVE하게 됩니다.
(스캔하면 에코, 텍스트박스 Enter시 PASS를 RECIVE하는 형식으로 테스트)
시작점과 끝점은 따로 지정하지 않았습니다.
처음 데이터를 송수신 할시에는 데이터가 정상적으로 송수신이 됩니다.(실제 프로그램에서도 데이터가 정상적으로 오게됩니다.)
하지만 두번째부터는 데이터가 송수신이 제대로 되지 않습니다.
디버깅을 한 결과 지정한크기의 변수내에 있기는 하지만 중간에 껴있는걸 확인 했습니다.(쓰레기값이라고 해야되나 byte로 null값이 채워집니다.)
이러한 문제가 발생하는 이유가 뭔지를 모르겠습니다.
시작점과 끝점을 반드시 지정해야되는건가요?
PMO_Test_WCS에서 소켓은 비동기로 움직이고 있습니다.
[연관 글]
[최초 등록일: ]
[최종 수정일: 1/29/2018]