gpt4 book ai didi

c# - 如何使用c#将big endian发送到网络流

转载 作者:可可西里 更新时间:2023-11-01 02:43:29 25 4
gpt4 key购买 nike

我尝试通过 sslStream 使用套接字传输文件数据。看来我必须在数据之前发送文件数据长度。问题是代码

Byte [] size = BitConverter.GetBytes(fileData.Length)

返回的是小端,但互联网协议(protocol)使用的是大端。

我如何将其转换为大端并将其写入流;

最佳答案

我假设您只想发送一个 int 值。传输前应颠倒字节顺序:

byte[] bytes = BitConverter.GetBytes(fileData.Length);
if (BitConverter.IsLittleEndian)
Array.Reverse(bytes);

检查 this MSDN page获取有关 BitConverted 的更多信息。

您也可以使用 HostToNetworkOrder 转换它,例如:

int reversed = IPAddress.HostToNetworkOrder(fileData.Length);
byte[] bytes = BitConverter.GetBytes(reversed);

要发送这些字节,请使用 Write方法:

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

关于c# - 如何使用c#将big endian发送到网络流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com