IPAddress类似乎不存在于WinRT API中。是否有一个相当于IPAddress.HostToNetworkOrder()
可用于将一个int从主机订单转换为网络订单(Little Endian到Big Endian)?IPAddress.HostToNetworkOrder()等价于WinRT?
2
A
回答
1
我写完了自己的方法。这很简单。它所做的只是颠倒字节顺序。这是您的复制和粘贴的快感:
public static int ReverseEndianness(int num)
{
byte[] bytes = BitConverter.GetBytes(num);
byte[] reversedBytes = new byte[bytes.Length];
for (int i = 0; i < bytes.Length; i++)
{
reversedBytes[i] = bytes[bytes.Length - 1 - i];
}
return BitConverter.ToInt32(reversedBytes, 0);
}
+1
可以使用[Array.Reverse](http://msdn.microsoft.com/fr-fr/library/d3877932(v = vs.110).aspx)来反转该数组。 – 2014-02-08 13:45:44
3
在很多情况下(不是全部,当然),你可以使用的DataReader和DataWriter为:
DataReader reader = new DataReader(stream.AsInputStream());
reader.ByteOrder = ByteOrder.BigEndian; // standard network byte order
reader.ReadInt16();
出于兼容性我使用反射器的原因:
public static short HostToNetworkOrder(short host)
{
return (short)(((host & 0xff) << 8) | ((host >> 8) & 0xff));
}
public static int HostToNetworkOrder(int host)
{
return (((HostToNetworkOrder((short)host) & 0xffff) << 0x10) | (HostToNetworkOrder((short)(host >> 0x10)) & 0xffff));
}
public static long HostToNetworkOrder(long host)
{
return (long)(((HostToNetworkOrder((int)host) & 0xffffffffL) << 0x20) | (HostToNetworkOrder((int)(host >> 0x20)) & 0xffffffffL));
}
public static short NetworkToHostOrder(short network)
{
return HostToNetworkOrder(network);
}
public static int NetworkToHostOrder(int network)
{
return HostToNetworkOrder(network);
}
public static long NetworkToHostOrder(long network)
{
return HostToNetworkOrder(network);
}
相关问题
- 1. Mouse.GetPostion(null)WinRT中的等价物
- 2. WinRT中SecureString的等价物是什么?
- 3. InputBindings的WinRT等价物是什么?
- 4. 什么是WPF ParallelTimeline的WinRT等价物?
- 5. 等价于BN_hex2bn
- 6. 等价于getbounds
- 7. `expect_any_instance_of`等价于PHPUnit
- 8. C++等价于Tidy
- 9. Scala等价于java.util.Collection?
- 10. iPad等价于onmousemove?
- 11. WPF等价于ActiveControl?
- 12. SizeToContent等价于WinForm?
- 13. jconsole等价于.Net?
- 14. Scala等价于pyTables?
- 15. Java等价于IntPtr.ZERO?
- 16. C++等价于SerializeWithLengthPrefix
- 17. Python等价于bwmorph
- 18. JAXB等价于@Mappedsuperclass
- 19. WPF等价于TextRenderer
- 20. xmlseealso等价于Simplexml
- 21. iOS等价于SecTransformRef?
- 22. jquery等价于form.field_name?
- 23. BorderLayout.CENTER等价于SWT?
- 24. JVMTI等价于.NET
- 25. java等价于mkstemp
- 26. jQuery等价于querySelector
- 27. GLSL等价于sampler_state?
- 28. fromCharCode等价于Ruby
- 29. Swift等价于ValueForKey:
- 30. YUI.getElementsBy等价于jQuery
可能没有办法。你总是可以自己写一个。 – 2012-08-03 15:11:49