클라이언트에 맞춰서 헤더를 변경하였다.
ushort packetType = 1; //패킷 타입 (2바이트)
ubyte versionLength = 2; // 버전 길이 (1바이트)
string version = 3; //버전 (문자열)
uint32 sequence = 4; //패킷 번호 (4바이트)
uint32 payloadLength = 5; // 데이터 길이 (4바이트)
bytes payload = 6; // 실제 데이터
전에 프로토버퍼에서 보지 못한 데이터형이 있었다.
ushort, ubyte 이 둘은 프로토버퍼 변수형에 없었다.
https://protobuf.dev/programming-guides/proto3/
Language Guide (proto 3)
Covers how to use the proto3 revision of the Protocol Buffers language in your project.
protobuf.dev
문서로 잘 정리되어 있어서 찾아봤지만 사실 있을리가 없는 내용이었다.
데이터를 받을때 버퍼의 함수를 사용해서 읽어야 했다.
이해했다고 생각했는데 아니었다는게 드러나는 순간이었다.
추가
프로토에 숫자들을 미리 잡아놓을수 있다.
임시로 삭제한 부분이거나 미래에 추가하기 위한 부분일때 사용된다.
message Foo {
reserved 2, 15, 9 to 11;
reserved "foo", "bar";
}
2, 15, 9에서 11 까지를 reserve 해놓고
foo와 bar 파일을 reserve 해놓은 것이다.