|
형사 님이 쓰신 글 :
: 답변 감사 드립니다.. 꾸벅 ...감사감사
:
: 우선 컴포넌트는 ...TUdpSock 을 사용했는데 ...
:
: 다른걸루 바꾸어도 상관은 없습니다...
:
: 수신하는 데이터를 data[0] 에 첫번째 바이트가 들가고
:
: data[1] 에는 두번째 바이트가 들가고 ...
:
: data[1] 에 들어간 값만큼이 데이터의 길이 이므로... 나머지 데이터 들을
:
: data[2]..data[3] 에 차곡차곡 한 바이트씩 넣으려고 하는...작업입니다...
:
: 아직 미숙해서리 예문으로 가르처주시면 ... 꾸벅
보통 통신 프로토콜을 작성할 때
{
WORD DataID;
DWORD DataSize;
char * Data;
...
}
이렇게 하죠~ ( 지극히 객관적인 자료임 )
형사님처럼 data[1]에 사이즈를 넣는다면 그 데이터는 255를 넘지 못하는 작은 데이터일 것입니다.
물론 작은 데이터를 사용한다면 상관 없지만요~
보통 저 같은 경우엔 편하게 TMemoryStream을 사용하는데요~
TMemoryStream *ms라 정한다면
받은 데이터 처리 부분에서
ms->Write( data+sizeof(해더)+sizeof(크기), 받은 데이터 크기-sizeof(해더)-sizeof(크기));
if( ms->Size == data[1] )
데이터 처리();
데이터 처리 다 한 후엔 ms->Clear() 해 주시면 끝~
이렇게 하면 되지 않을까~ 합니다~
즐프하세요~
|