도와주세요!!
글 수 15,339
2007.12.28 16:27:11 (*.237.221.77)
9628
밑에 답변 감사 합니다.
그러한 방법을 구성하는게 보편적이더군요. 그러한 방법을 적용할려고 방법을 했으나
문제가 생겨서 그 부분을 포기 했었습니다.
무슨 문제냐 하면
시리얼 통신을 하는데 제가 512버퍼를 써서 보낸다고 하면 받는 쪽에서 512 를 한번에 받는 것이 아니라
쪼개져서 받더라고요. [파일 이름][파일사이즈][보낸횟수][파일내용] 이런 식으로 연결된 정보를
쪼개져서 받다 보니 그 부분을 어떻게 처리해야 할찌 모르겠습니다.
512 사이즈 중 보내는 쪽에서는 500 만큼을 보냈다고 하더라도 받는 쪽에서 100 씩 5번 받을 수도 있기에
정확히 데이터를 처리하는데 어려움이 있더라고요 ㅠ
이부분은 어떻게 구현해야 할까요 ??
그러한 방법을 구성하는게 보편적이더군요. 그러한 방법을 적용할려고 방법을 했으나
문제가 생겨서 그 부분을 포기 했었습니다.
무슨 문제냐 하면
시리얼 통신을 하는데 제가 512버퍼를 써서 보낸다고 하면 받는 쪽에서 512 를 한번에 받는 것이 아니라
쪼개져서 받더라고요. [파일 이름][파일사이즈][보낸횟수][파일내용] 이런 식으로 연결된 정보를
쪼개져서 받다 보니 그 부분을 어떻게 처리해야 할찌 모르겠습니다.
512 사이즈 중 보내는 쪽에서는 500 만큼을 보냈다고 하더라도 받는 쪽에서 100 씩 5번 받을 수도 있기에
정확히 데이터를 처리하는데 어려움이 있더라고요 ㅠ
이부분은 어떻게 구현해야 할까요 ??
시리얼 통신은 가장 값이 싼 통신 방식이고 구조가 매우 간단하다 보니까
처음에는 간단하게 생각되어도 직접 작성하다 보면 생각할 것이 매우 많습니다.
몇 개 안되는 문제입니다만 시리얼 통신의 대표적인 문제로 모두 프로그래머가 해결해야될 숙제입니다.
이 문제는 보내는 쪽에서만 노력한다고 해서 해결되지 않으며
수신하는 쪽에서만 고생한다고 해결되지 않습니다.
전송하고 수신하는 쪽 모두 이 문제를 항상 유념하고 조심해야될 내용입니다.
그리고 이와 같은 문제를 극복하기 위해 매우 다양한 프로토콜이 있으며
지금도 새로 만들어지고 있습니다.
그만큼 시리얼 통신에서는 프로토콜이 매우 중요합니다.
우선 첫번째 문제인 데이터의 시작과 종료 문제입니다. 이를 위해서 쌍방간에 시작을 알려 주는 STX(x02)코드와
종료를 ETX(x03)코드를 사용합니다.
또한 두 번째와 세 번째 문제로 수신하는 쪽은 ETX를 만날 때까지 이전에 받아둔 데이터를 잘 버퍼링해야 합니다.
여기서 송수하는 파일이 한글을 사용하지 않는 텍스트 파일이라면 그나마 괜찮은데,
이미지 파일은 그 안에 STX(x02)코드와 ETX(x03)코드를 사용할 수 있으므로
이를 구분하는 방법이 필요합니다.
네 번째 문제로 ETX까지 모두 받더라도 서로 확인하는 코드도 넣어서
수신한 자료가 옳바른지 확인해야 하며,
많일 데이터에 이상이 있다면 다시 요청해야 합니다.
송신하는 쪽도 송신에만 치중하는 것이 아니라 상대편의 말도 귀를 기울여서
다시 요청하는 데이터를 다시 전송해 주어야 합니다.
대충 말씀 드리는 내용이 길어졌습니다만 이렇게 길어 지는 이유는
그만큼 시리얼 통신에는 생각할 것이 많기 때문입니다.
그런 이유로 프토토콜을 간단히 말씀드리기 어려워여 강좌란에 글을 올렸습니다.
아래의 내용을 참고하여 주십시오.