0
如果我有一个只有重复字符串的定义,我可以通过get_packed_size调用找到打包缓冲区的长度。但是,如果我在交换机的接收端,我怎么知道要读取多少个字节才能形成完整的消息? (由于存在条目数量可变的,它是不知道先验)您是否仅在数据报模式下使用google协议缓冲区?
发件人:
length = <name>_get_packed_size(&message)
buffer = malloc(length)
<name>_pack(&message, buffer)
write(fd, buffer, length)
接收机:
read(fd, buffer, ???) // what is '???' if 'fd' is a stream socket?
如果我在数据报模式下,我可以发出读取类似64K字节的内容,然后获取整个消息。但是,如果我处于流模式下,如何在不改变消息或阅读下一部分消息的情况下做到这一点?
感谢您的帮助 –