0

所以,我正在将一些代码移植到 WinRT,并且由于过于自虐的原因无法在这里解释,我正在尝试移植一些非常非常依赖于 WinSock 和 IPAddress 的代码,所以我正在编写自己的 IPAddress 实现,我被困在 WSAStringToAddress 上,或者更广泛地说,实现 IPAddress InternalParse(获取字符串,吐出 IPAddress)。

似乎每个人都使用库函数(有充分的理由),这些函数在 WinRT 中似乎并不合理。(并且谷歌搜索它作为一个“面试问题”似乎没有得到任何结果)

有没有人有一个体面的方式去字符串 - > v6和v4的IPAddress?

编辑:

这会合理吗?

    private static unsafe IPAddress InternalParse(string ipString, bool tryParse)
    {
        HostName hn = new HostName(ipString);
        IPAddress ipAddr = new IPAddress(GetBytes(hn.ToString()));
        return ipAddr;
    {

    private static byte[] GetBytes(string str)
    {
        byte[] bytes = new byte[str.Length * sizeof(char)];
        System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
        return bytes;
    }
4

0 回答 0