protobuf를 사용 zmq 통신

 

이진 데이터로 직렬화 protobuf 후, 데이터가 '\ 0'을 포함 할 수 있고, 직접 * 형 데이터의 송신이 완료되지 발생할 숯불로 변환된다.
해결 방법 :

buildProtobufMsg 공극 (CONST 스트링 시험, ZMQ의 message_t :: * MSG)
{
IF (MSG == nullptr a)
{
창;
}
테스트 데이터 :: ProtoBufData;
data.set_test (시험)

INT 크기 = data.ByteSize ();
CHAR ARR [크기]
data.SerializeToArray (ARR 크기)

msg-> 재구성 (크기)
를 memcpy (msg-> 데이터 () ARR 크기)
}
 
전송 차례 *는 char 후 데이터의 시퀀스를 기억하지 그렇지 않으면 불완전한 데이터로 이어집니다.

调用:
zmq :: message_t MSG;
buildProtobufMsg (문자열 ( "안녕하세요"), MSG)
zmqsocket.send (MSG)
 
【转】 : https://blog.csdn.net/bubbleyang/article/details/82628059

 

추천

출처www.cnblogs.com/hshy/p/11350314.html
zmq