锈htons和ntohs

时间:2014-11-19 23:32:34

标签: rust

我的计划一直依赖native::io::net::{htons, ntohs}但现在Could not find 'io' in 'packet::native'上的错误。这种变化似乎发生在上周的一段时间

搜索不会产生有关更改的大量信息,并且在文档中搜索htonsntohs并不会产生任何有用的信息。

在Rust中执行htonsntohs的(新的?)标准方法是什么?

一个明显的解决方案是编写我自己的解决方案,但人们会希望它会出现在标准库中。

2 个答案:

答案 0 :(得分:3)

您可以使用from_be特征上的to_beInt函数。网络订单是大端,所以这是等效的。

您可以在文档中找到示例用法:

http://doc.rust-lang.org/core/num/trait.Int.html#method.to_be

http://doc.rust-lang.org/core/num/trait.Int.html#method.from_be

答案 1 :(得分:2)

这些现在位于std::sys_common::net,但std::sys_common是私有的。但是它们在src/libstd/sys/common/net.rs中的实现非常简单:

pub fn htons(u: u16) -> u16 {
    u.to_be()
}
pub fn ntohs(u: u16) -> u16 {
    Int::from_be(u)
}