如何查找存储在整数变量中的整数值的字节数

时间:2015-09-18 09:54:28

标签: c# string

我需要在函数中传递一个参数来连接到一个必须包含xml的服务器(我正在通过一个字符串变量)。但服务器假定我发送的数据流的前4个字节是xml的长度(以字节为单位)。我已经通过

找出了字符串中字节数的长度
int strlen= System.Text.ASCIIEncoding.Unicode.GetByteCount(ngconnect);

接下来我需要将数据传递给必须包含数据的服务器

  

前4个字节作为字符串的长度   然后是实际的数据流。

我写的代码是

byte[] outStream = System.Text.Encoding.ASCII.GetBytes(strlen+ngconnect);
            serverStream.Write(outStream, 0, outStream.Length);

我不认为这是正确的。所以请告诉我如何在参数中附加字符串的长度,使其恰好是4个字节。

1 个答案:

答案 0 :(得分:2)

c#中的int是32位数,所以它已经是4字节,你只需将其转换为字节

byte[] strlenBytes = BitConverter.GetBytes(strlen);

然后将信息部分传输到服务器:

serverStream.Write(strlenBytes , 0, strlenBytes .Length);
byte[] outStream = System.Text.Encoding.ASCII.GetBytes(ngconnect);
serverStream.Write(outStream, 0, outStream.Length);