我正在尝试从套接字读取binn对象而无法获取数据, 例如,它是一个int。
binn是二进制序列化格式。 详细信息可以在这里找到: https://github.com/liteserver/binn
发送:
binn * obj = binn_object();
binn_object_set_int32(obj, (char*)"dst_enclave", 12345678);
int socket = clSockFd;
if (send(socket, binn_ptr(obj), binn_size(obj), 0) != binn_size(obj)) {
printf("SENDER -- failed to send msg1 to dest\n");
abort();
}
binn_free(obj);
并试图收到:
binn * obj = binn_object();
if (recv(servSockFd, binn_ptr(obj), binn_size(obj), 0) < 0) {
printf("LISTENER -- failed to read msg1 from src\n");
abort();
}
int test = binn_object_int32(obj, (char*)"dst_enclave");
从套接字读取后,我在测试中得到0值。
我已经阅读了binn的文档,但是他们没有详细说明如何恢复。 也搜索了网络。
btw问题不在于套接字,我在此之前收到其他消息。