Zlib
両方の方法(クライアントからサーバーへ、サーバーからクライアントへ)のストリームであるTCP経由のネットワークストリームがあります。
についてZlib
は、最新のものを使用していIonic.Zlib.dll
ます。
送受信される最初の数パケットについては正常に動作しますが、3 番目のパケットを受信すると、誤動作が始まります。
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 回送信され、1 回だけ受信されています。
なぜそこでブロックされているのですか?ブロックせずに期待どおりに続行するにはどうすればよいですか?
Zlib でのフラッシュはそれと関係がありますか? (ストリームはすべてのパケットの後にフラッシュされます。)