2012-08-10 4 views
0

protobuf-c 메시지를 TLV의 값에 첨부하여 네트워크를 통해 보내려고합니다. 하지만 패킷 덤프에 올바른 내용이 표시되지 않습니다. 아래는 tlv 구조체와 .proto 파일입니다. struct test_tlv { 부호없는 int 유형; 부호없는 int len; 부호없는 정수 int val; }; 메시지 testproto { 선택적 uint32 유형 = 1; 선택적 string id = 2; } 메시지 값을 test.type = 2 및 test.id = "0xabcdbcda"로 채 웁니다. protobuf api를 사용하여 val에 테스트를 압축하고 네트워크를 통해 tlv를 보냅니다. 하지만 덤프 된 패킷에 올바른 값이 표시되지 않습니다. 나는 아무것도 놓쳤다. 도와주세요.tlv 및 protobuf

감사합니다. 메시지가 varints로 인코딩되기 때문에

+0

모든 HTTPS : //github.com/VakhoQ/tlv-encoder)를 사용하여 구조체를 바이트 배열로 변환하고 되돌릴 수 있습니다. 결과 바이트 배열을 프로토콜 버퍼 구조에 첨부하고 네트워크를 통해 전송할 수 있습니다. 그것은 단지 선택 사항입니다 ... – grep

답변

0

내가 그들을 디코딩 후 값이 바로 ... 감사에게보고 .. 값이 잘못하는 가정에 있었다 당신은 구현 [TLV 인코더 프로젝트 (이미 사용할 수 있습니다