我有一个基于 TCP 的网络流,它是Zlib
双向流(客户端到服务器和服务器到客户端)。
因为Zlib
,我用的是最新的Ionic.Zlib.dll
。
对于发送/接收的前几个数据包,它工作正常,但是当接收到大约第三个数据包时,它开始出现异常。
对ZlibStream
块的每次读取操作,直到数据包被另一端重复。
例如:
// Where reader is a BinaryReader on the ZlibStream on the NetworkStream
int a = reader.ReadInt32(); // blocks until initial packet that is 12 bytes is received
int b = reader.ReadInt32(); // blocks until the packet is repeated
int c = reader.ReadInt32(); // blocks until the packet is repeated again
在该代码之后,数据包实际上已经发送了 3 次,并且只接收了一次。
为什么会堵在那里?我怎样才能让它不阻塞并按预期继续?
在 Zlib 中刷新可能与它有关吗?(每个数据包后都会刷新流。)