헤더와 데이터를 하나의 패킷으로 만드는 코드
BitConverter.GetBytes 메서드는 데이터를 바이트 배열로 변환해주는 역할을 수행합니다.
short자료형으로 되어 있는 헤더를 바이트로 변환하여 byte header[] 배열에 채워 넣습니다.
다음으로 문자열 데이터도 바이트로 변환하여 넣는데, 인코딩 방식은 utf-8을 사용했습니다.
그리고 byte[] packet = new byte[1024] 라는 패킷 버퍼를 만들어서
"[헤더][데이터]" 의 구조로 패킷을 구성합니다.
Array.Copy메서드는 원본 배열 데이터를 다른 곳으로 복사할 때 사용하는 메서드입니다.
결과
header는 short 자료형이므로 2바이트를 차지하며, 내용은 5라는 정수값입니다
body는 string을 바이트로 변환한 데이터이며 "Hello"에 해당하는 유니코드 문자열 코드값이 들어가 있습니다.
utf-8로 인코딩하였으므로 크기는 5바이트만큼 차지합니다.
packet은 header와body를 합쳐놓은 것이기 때문에 [header][data] 가 차례대로 들어가게됩니다.
뒤에0으로 채워진 데이터는 비어있는 공간입니다.
실제로 원격지에 전송할 때는, 이 빈 공간을 제외한 "헤더+데이터"의 크기만큼만 소켓버퍼로 전송해야 합니다.