0

C#のネットワークストリームからの読み取りでこの問題が発生しました。私はJava開発者であるため、この問題に遭遇しました。

Javaでは、次のコードを使用して、受信したパケットの長さを知るこのオプションがあります int length = dataiInputStream.read(rcvPacket);

割り当てられたバイト配列rcvPacketのサイズは、それに含まれる要素の量よりも大きくなりますが。これにより、必要な長さの要素のみを読み取ることができるため、バイト配列にゼロを含む要素が含まれなくなります。

私がC#で同様のものを使おうとしていた間、

long len = networkStream.length;

しかし、ドキュメントには、このプロパティはサポートされていないと書かれています。これに対する回避策はありますか?

ありがとうございました

4

1 に答える 1

1

Javaコードは、パケットの長さを示していません。read複数のパケットから送信された可能性のある、その呼び出し内で読み取られたデータの量が表示されます。

NetworkStream.Read-1の代わりに0を使用してストリームの終了を示すことを除いて、同じ情報を返します。

于 2012-06-18T16:44:45.657 に答える