더북(TheBook)

2.3.2 메시지 형식

스트림과 달리 메시지는 자체적으로 데이터 시작과 끝을 구별할 수 있습니다. 따라서 보내는 쪽에서 aaa, bbb, ccc를 보내면 받는 쪽에서는 aaa, bbb, ccc를 받습니다. 보낸 개수와 받는 개수가 같으며, 보낸 데이터와 받는 데이터의 시작과 끝은 같습니다. 이렇게 각 데이터가 정확히 구별되는 것을 메시지 형식이라고 합니다.

메시지 형식은 데이터 시작과 끝을 구별할 필요가 없습니다. 표 2-1과 같이 메시지를 여러 필드(f ield)로 나누어서 사용하는 것으로 충분합니다.

▼ 표 2-1 메시지 형식: 여러 필드로 나누어서 사용

0~1

2~13

14~25

26~27

MessageType_FireBullet

Position(x, y, z)

Direction(x, y, z)

Bullet Type

 

표에서 0~1번째 바이트는 “총알이 발사되었다.”라는 의미입니다. 2~13번째 바이트는 총알이 발사된 위치, 14~25번째 바이트는 총알이 발사된 방향, 26~27번째 바이트는 총알의 종류(권총인지 대포알인지)가 되겠습니다.

네트워크 게임에서는 특정 시점에서 사건을 알리는 경우가 많습니다. 그러다 보니 메시지 형식의 데이터 송수신이 보편적입니다. 앞서 언급했듯이 OSI 모델 계층 3의 IP 패킷을 직접 다루는 일은 흔하지 않습니다만, IP 패킷의 특징은 알아 두면 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.