【发布时间】:2015-09-02 23:15:08
【问题描述】:
我有一个客户端和一个服务器,客户端通过 tcp 向服务器发送压缩块(使用 zlib compress() 函数压缩,并且服务器没有每个块的大小)。问题是如何在服务器端解压缩这些接收到的数据?数据发送(写入)和接收(读取)是持久的,所以我不能等到客户端收到所有数据然后解压缩。
【问题讨论】:
-
您是否开发了用于将 zlib 置于 TCP 之上的协议?如果没有,请询问做过的人。如果你开发了它,你怎么可能不知道?你问我们某事物是如何设计的,甚至没有告诉我们该事物是什么。
-
其他人在我正在使用的 TCP 之上开发协议,我的工作是为其添加压缩。我已经完成了压缩部分,现在我的问题是解压缩。每次我从某个 FD 调用 linux read() 函数时,返回的缓冲区可能包含块的不完整部分。那么我该如何处理呢。 @大卫施瓦茨
-
我说的是添加压缩的协议。如果你开发了它,你应该知道它的框架是如何工作的。如果不是,您正在尝试实现一个实际上尚未设计的协议。那几乎永远不会奏效。 (如果你不知道解压是如何工作的,你怎么可能开始压缩部分?!)
标签: tcp zlib inflate compression