C# 套接字内存流

C# Sockets MemoryStream

所以我正在尝试调用一个将整数转换为 4 个字节的方法,

转换是这样写的-

    public void put4(int var1)
    {
        this.payload[++this.offset - 1] = (byte)(var1 >> 24);
        this.payload[++this.offset - 1] = (byte)(var1 >> 16);
        this.payload[++this.offset - 1] = (byte)(var1 >> 8);
        this.payload[++this.offset - 1] = (byte)var1;
    }

其中

var1

分成4个字节

但是我如何将其与内存流一起使用?

我知道我可以发送一个单字节

  MemoryStream ms = new MemoryStream();

  ms.WriteByte(1);

但我想发送 4 个字节的“1”

我试过的是,

 ms.WriteByte.put4(1);

老实说,我很困惑,因为我不熟悉网络或字节,但我所知道的是,这个特定的整数需要以 4 个字节而不是单个字节的形式发送.

有几种方法可以做到这一点,即您可以使用 BinaryWriter class

但是,要回答您关于 MemoryStream

的问题

BitConvert.GetBytes(Int32)

Returns the specified 32-bit signed integer value as an array of bytes.

var bytes = BitConvert.GetBytes(someInt);

stream.Write(bytes,0,bytes.Length);

注意 : 你必须注意你使用的平台,以及字节顺序