using System;
using System.Net;
namespace Sodao.FastSocket.SocketBase.Utils
{
///
/// network bit converter.
///
static public class NetworkBitConverter
{
///
/// 以网络字节数组的形式返回指定的 16 位有符号整数值。
///
///
///
static public byte[] GetBytes(short value)
{
return BitConverter.GetBytes(IPAddress.HostToNetworkOrder(value));
}
///
/// 以网络字节数组的形式返回指定的 32 位有符号整数值。
///
///
///
static public byte[] GetBytes(int value)
{
return BitConverter.GetBytes(IPAddress.HostToNetworkOrder(value));
}
///
/// 以网络字节数组的形式返回指定的 64 位有符号整数值。
///
///
///
static public byte[] GetBytes(long value)
{
return BitConverter.GetBytes(IPAddress.HostToNetworkOrder(value));
}
///
/// 返回由网络字节数组中指定位置的两个字节转换来的 16 位有符号整数。
///
///
///
///
static public short ToInt16(byte[] value, int startIndex)
{
return IPAddress.NetworkToHostOrder(BitConverter.ToInt16(value, startIndex));
}
///
/// 返回由网络字节数组中指定位置的四个字节转换来的 32 位有符号整数。
///
///
///
///
static public int ToInt32(byte[] value, int startIndex)
{
return IPAddress.NetworkToHostOrder(BitConverter.ToInt32(value, startIndex));
}
///
/// 返回由网络字节数组中指定位置的八个字节转换来的 64 位有符号整数。
///
///
///
///
static public long ToInt64(byte[] value, int startIndex)
{
return IPAddress.NetworkToHostOrder(BitConverter.ToInt64(value, startIndex));
}
}
}