私は、単純なプロトコルを使用するネットワーク上のアプリケーションと対話しようとしています。2バイト整数をストリームに書き込む?
:私は整数として両方のパラメータを取っている2バイト(リクエストタイプを含む) =データ長
1バイト =要求タイプ
:私はこのようになりますヘッダを送信する必要があります
private static void WriteHeader(Stream buf, int length, int requestType) {
buf.Write(BitConverter.GetBytes(length), 0, 2);
buf.WriteByte((byte)requestType);
}
私はこのようにそれを呼んでいる:
byte[] outBuf = new byte[256];
using (MemoryStream outStream = new MemoryStream(outBuf)) {
// Socket connection stuff here
WriteHeader(outStream, 1, 110);
sock.Send(outBuf);
// Receive stuff here, never returns
}
このメソッドを呼び出したり、ソケット経由でoutBuf
を送信しても、私は例外を何も得ませんが、ネットワークアプリケーションは応答しません。私は他のプログラムでそれを照会することができますが、ヘッダーが正しく書かれていないためです。
値を書き込む際に何か問題がありますか?
EDIT:追加のMemoryStreamコード
長さを '(短い)長さにキャストする ' –