你如何实现System.Net.IPAddress.HostToNetworkOder和NetworkToHostOrder

时间:2011-11-16 03:08:56

标签: c#

HostToNetworkOrder方法将主机系统上存储的多字节整数值从主机使用的字节顺序转换为网络使用的字节顺序,NetworkToHostOrder执行相反的操作。

问题是如何在C#中实现这些方法,假设它在系统库中不可用。

2 个答案:

答案 0 :(得分:0)

  

如何在C#中实现这些方法,假设它在系统库中不可用。

它可用,所以不要重新实现它:

http://msdn.microsoft.com/en-us/library/system.net.ipaddress.networktohostorder.aspx

答案 1 :(得分:0)

.NET自2014年11月开源,因此您只需从此处复制类:

http://referencesource.microsoft.com/#System/net/System/Net/IPAddress.cs

官方HostToNetworkOrder实施是:

        public static long HostToNetworkOrder(long host) {
#if BIGENDIAN
            return host;
#else
            return (((long)HostToNetworkOrder((int)host) & 0xFFFFFFFF) << 32)
                    | ((long)HostToNetworkOrder((int)(host >> 32)) & 0xFFFFFFFF);
#endif
        }

@brunolemos