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
的问题
Returns the specified 32-bit signed integer value as an array of
bytes.
var bytes = BitConvert.GetBytes(someInt);
stream.Write(bytes,0,bytes.Length);
注意 : 你必须注意你使用的平台,以及字节顺序
所以我正在尝试调用一个将整数转换为 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
Returns the specified 32-bit signed integer value as an array of bytes.
var bytes = BitConvert.GetBytes(someInt);
stream.Write(bytes,0,bytes.Length);
注意 : 你必须注意你使用的平台,以及字节顺序