11次发布
使用旧的Rust 2015
0.3.0 | 2018年2月19日 |
---|---|
0.2.2 | 2018年2月19日 |
0.2.1 | 2017年4月30日 |
0.2.0 | 2017年3月19日 |
0.0.4 | 2017年1月31日 |
#12 in #raw-sockets
每月30次下载
在toa-ping中使用
48KB
963 行
lazy-socket
该库作为套接字API的薄包装层。它提供必要的最小安全性和易于使用。
有点过时了
似乎我不再需要这个库了,因为已经有socket2由alexcrichton。
他绝对更可靠,我的库可能已经被遗忘了。所以用socket2代替。
示例
创建TCP套接字并以非阻塞模式连接。
extern crate lazy_socket;
use std::net;
use std::str::FromStr;
use lazy_socket::raw::{
Socket,
Family,
Protocol,
Type,
select
};
fn main() {
let timeout = 1000;
let socket = match Socket::new(Family::IPv4, Type::STREAM, Protocol::TCP) {
Ok(socket) => socket,
Err(error) => {
println!("Couldn't open socket. Erro: {}", error);
return;
}
};
let dest = net::SocketAddr::from_str("192.168.0.1:80").unwrap();
let _ = socket.set_blocking(false);
let _ = socket.connect(&dest);
match select(&[], &[&socket], &[&socket], Some(timeout)) {
Ok(_) => println!("Connected!"),
Err(error) => println!("Failed to connect. Error:{}", error)
}
}
依赖关系
~140–355KB