私はZMQとGoogleのprotobufsを使って、C++上でserver-clientというプログラムを実行していましたが、タイプのばらつきに関連する関数に触れました。C++ protobuf、ZMQ。クライアント/サーバインターフェイスの機能
問題:関数ParseFromString
とSerializeToString
はパラメータとして文字列型を使用しますが、パラメータなどのzmq::message_t
を使用して書き込みプログラムが必要です。
Proto file:
package core;
{ message Request
required uint32 id=1;
required uint32 class_id=2;
...}
zmq::message_t msg; // beginning
core::Request reqt;
…
socket.recv(&msg) ;// receiving messgae, socket.recv(reqt) doesn't work
ParseFromString (msg); //serialization to structure doesn’t work
プログラムは、ソケットを使用して、クライアント・サーバの実行である 互いの間で変数の文字列型とメッセージを調整する必要があります。 関数ParseFromString()およびSerializeToString()です。 ВPythonのвсепросто: socket.send(reqt.SerializeToString())и CLASS_ID = reqt.ParseFromString(socket.recv)