代码之家  ›  专栏  ›  技术社区  ›  bobber205

ntohs()和ntohl()等价物?

  •  30
  • bobber205  · 技术社区  · 16 年前

    C#中是否有网络到主机的转换函数?在谷歌上搜索,发现的不多P

    3 回复  |  直到 16 年前
        1
  •  49
  •   Jon Skeet    16 年前

    IPAddress.HostToNetworkOrder 和 IPAddress.NetworkToHostOrder ?

    每个方法都有16、32和64位整数的重载。

        2
  •  3
  •   MarkPflug    8 年前

    这个 System.Memory nuget包包括 System.Buffers.Binary.BinaryPrimitives 静态类,其中包括处理“endianness”的静态方法,包括 ReverseEndianness . 在dotnet核心上, HostToNetWorkOrder 反向性 方法。关于一个小小的endian架构(我认为它是所有支持.NET的东西) HostToNetworkOrder 和

    然而,在dotnet框架(net461)上,调用 比打电话慢一点(不是2倍) 反向性 .

    ReverseEndianness(long) 方法,它将比调用 System.Memory

        3
  •  1
  •   Community Mohan Dere    9 年前

    @jon-skeet's answer 根据你的问题是最准确的。然而,“ntohï”和“htonï”C函数被广泛用于在 little-endian and big-endian computer architectures .

    执行endianess转换 ,有一个 BitConverter class (核心程序集中的静态类)这给您带来了更合适的方法。特别是当:

    • 使用字节数组(广泛用于文件或网络流)。
    • Detecting endianess 运行时机器的体系结构。
    • 在不使用类型转换的情况下,将基本结构转换为整数(布尔、小数)以外的结构。
    • 您的代码与网络操作(System.Net命名空间)无关。
    推荐文章