我的计划一直依赖native::io::net::{htons, ntohs}
但现在Could not find 'io' in 'packet::native'
上的错误。这种变化似乎发生在上周的一段时间
搜索不会产生有关更改的大量信息,并且在文档中搜索htons
或ntohs
并不会产生任何有用的信息。
在Rust中执行htons
或ntohs
的(新的?)标准方法是什么?
一个明显的解决方案是编写我自己的解决方案,但人们会希望它会出现在标准库中。
答案 0 :(得分:3)
您可以使用from_be
特征上的to_be
和Int
函数。网络订单是大端,所以这是等效的。
您可以在文档中找到示例用法:
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)
}