これは、JavaおよびC++でメッセージを送受信するサンプルです。
Javaでのシリアル化:
Person person = Person.newBuilder().setName("chand")
.setEmail("chand@test.com").setId(55555).build();
socket.send(person.toByteArray(), 0);
Javaでの逆シリアル化:
byte[] reply = socket.recv(0);
Person person2 = Person.parseFrom(reply);
C ++でのシリアル化:
Person p = Person();
std::string str;
p.SerializeToString(&str);
int sz = str.length();
zmq::message_t *query = new message_t(sz);
memcpy(query->data (), str.c_str(), sz);
socket->send (*query);
C++での逆シリアル化
zmq::message_t resultset(100);
socket->recv (&resultset);
Person p = Person();
p.ParseFromArray(resultset.data(), resultset.size());
printf("\n Server : %s", p.name().c_str());