C ++ Google协议缓冲区打开http套接字

帕特里夏

乐于助人的人:

这是另一个NEWBIE问题。我是C ++,Google协议缓冲区的新手,并在不使用SOAP的情况下通过HTTP序列化消息(即使使用SOAP)。我正在尝试通过http发送图像数据。有人告诉我,Google Protocol Buffers是必经之路。因此,我热切地开始阅读所有文档,并使用CocoaPods安装Google协议缓冲区类并将其包含到我的项目中。我创建了.protoc文件并生成了类。现在,我使用生成的类填充数据。怎么办???

我找不到有关如何发送数据的任何信息。我在SO上还发现了一些其他问题,其中包含了一些我可能会知道的有意义的信息。这是我到目前为止的内容:

void message::myMessage::transmit(const uint32_t ipaddress, uint32_t port, message::MatMessage* rawImage)
{
    message::HostMessage *transmitter;
    transmitter->set_ipaddress(ipaddress);
    transmitter->set_port(port);

    //open socket with ip and port

    //send unsing socket

}

HostMessage(* transmitter)是从仅包含ipAddress和端口号的.protoc文件生成的C ++类和头。好,所以我的发送器有一个ip地址和一个端口。怎么办?我如何用它打开一个插座?

也许一旦我打开插座,其他答案对我来说就更有意义了。有人可以帮我弄混吗?

谢谢你。

肯顿·瓦尔达(Kenton Varda)

协议缓冲区只是一个序列化工具。它将您的消息对象转换为字节,并将字节转换回消息对象。该库没有直接实现传输这些字节的方法。

如果您有原始套接字,则可以将其包装在FileInputStream/中FileOutputStream以从/读取/写入protobuf。由于protobuf不是自定界的,因此您需要将大小写为前缀,后跟数据,并在接收端正确解释这些大小。请参见我对另一个问题的回答,以获取有关执行此操作的代码的信息:Java中是否有协议缓冲区分隔的I / O函数的C ++等效项?

另一种选择是使用更高级别的传输库,如ZeroMQ,该库实现发送和接收字节blob消息。使用protobufs对字节Blob进行编码/解码,然后将其交给ZeroMQ进行传输。

*这在Unix上有效,套接字是文件描述符。在Windows中,他们都没有,所以你需要实现ZeroCopyInputStream/ZeroCopyOutputStream直接来讲send()/ recv(),如果你使用的是不是太硬CopyingInputStreamAdapter/CopyingOutputStreamAdaptor

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C ++中解析协议缓冲区

来自分类Dev

从套接字转换(解析)Google协议缓冲区流

来自分类Dev

从C ++中的缓冲区提取IP地址(Linux套接字)

来自分类Dev

如何通过C中的套接字一起发送两个缓冲区?

来自分类Dev

c套接字sendmsg MSG_DONTWAIT-缓冲区重用

来自分类Dev

C服务器套接字的读取功能写入脏缓冲区

来自分类Dev

如何在套接字流缓冲区中添加空终止。C

来自分类Dev

无法使用Google协议缓冲区从C#返回相同的double到C ++,然后返回

来自分类Dev

C ++中的Google协议缓冲区:从现有结构创建消息

来自分类Dev

用于构建C ++ Google协议缓冲区项目的Makefile

来自分类Dev

用于构建C ++ Google协议缓冲区项目的Makefile

来自分类Dev

Google协议缓冲区messag到字节数组C ++

来自分类Dev

尝试在项目中使用Google协议缓冲区C ++链接错误

来自分类Dev

协议缓冲区C ++中的异常处理

来自分类Dev

使用C ++ API解析协议缓冲区中的错误

来自分类Dev

在C ++中,我要等多少时间才能使套接字的发送缓冲区为空?

来自分类Dev

C ++类应包含协议缓冲区消息还是从协议缓冲区消息构造/填充

来自分类Dev

C#.NET套接字tcp begin / endreceive客户端:endreceive读取所有字节,但是在beginreceive中,缓冲区大小自行更改

来自分类Dev

(C套接字编程)将服务器的send()调用与结束于同一客户端recv()缓冲区中的服务器分开

来自分类Dev

在C中将协议缓冲区与JSON相互转换,而无需生成C代码

来自分类Dev

C ++刷新缓冲区

来自分类Dev

C缓冲区指针

来自分类Dev

缓冲区溢出 C

来自分类Dev

在C#中解析原始协议缓冲区字节流

来自分类Dev

从C ++中的协议缓冲区获取所有字段名称?

来自分类Dev

VS2008下的协议缓冲区错误C2059

来自分类Dev

c从缓冲区读取4字节小尾数的代码

来自分类Dev

c从缓冲区读取4字节小尾数的代码

来自分类Dev

C ++中的缓冲区大小

Related 相关文章

  1. 1

    在C ++中解析协议缓冲区

  2. 2

    从套接字转换(解析)Google协议缓冲区流

  3. 3

    从C ++中的缓冲区提取IP地址(Linux套接字)

  4. 4

    如何通过C中的套接字一起发送两个缓冲区?

  5. 5

    c套接字sendmsg MSG_DONTWAIT-缓冲区重用

  6. 6

    C服务器套接字的读取功能写入脏缓冲区

  7. 7

    如何在套接字流缓冲区中添加空终止。C

  8. 8

    无法使用Google协议缓冲区从C#返回相同的double到C ++,然后返回

  9. 9

    C ++中的Google协议缓冲区:从现有结构创建消息

  10. 10

    用于构建C ++ Google协议缓冲区项目的Makefile

  11. 11

    用于构建C ++ Google协议缓冲区项目的Makefile

  12. 12

    Google协议缓冲区messag到字节数组C ++

  13. 13

    尝试在项目中使用Google协议缓冲区C ++链接错误

  14. 14

    协议缓冲区C ++中的异常处理

  15. 15

    使用C ++ API解析协议缓冲区中的错误

  16. 16

    在C ++中,我要等多少时间才能使套接字的发送缓冲区为空?

  17. 17

    C ++类应包含协议缓冲区消息还是从协议缓冲区消息构造/填充

  18. 18

    C#.NET套接字tcp begin / endreceive客户端:endreceive读取所有字节,但是在beginreceive中,缓冲区大小自行更改

  19. 19

    (C套接字编程)将服务器的send()调用与结束于同一客户端recv()缓冲区中的服务器分开

  20. 20

    在C中将协议缓冲区与JSON相互转换,而无需生成C代码

  21. 21

    C ++刷新缓冲区

  22. 22

    C缓冲区指针

  23. 23

    缓冲区溢出 C

  24. 24

    在C#中解析原始协议缓冲区字节流

  25. 25

    从C ++中的协议缓冲区获取所有字段名称?

  26. 26

    VS2008下的协议缓冲区错误C2059

  27. 27

    c从缓冲区读取4字节小尾数的代码

  28. 28

    c从缓冲区读取4字节小尾数的代码

  29. 29

    C ++中的缓冲区大小

热门标签

归档