我正在尝试使用this as a starting point在Rust中实现一个超文本传输协议客户端。我是由rust-lang.org网站通过他们在TcpStream
页面上的一个rust- by -example建议发送到这个链接的。我正在研究如何从TcpStream
中读取数据。我试着遵循下面的代码:
fn handle_client(mut stream: TcpStream) {
// read 20 bytes at a time from stream echoing back to stream
loop {
let mut read = [0; 1028];
match stream.read(&mut read) {
Ok(n) => {
if n == 0 {
// connection was closed
break;
}
stream.write(&read[0..n]).unwrap();
}
Err(err) => {
panic!(err);
}
}
}
}
n
变量从何而来?它到底是什么?作者说它一次读取20个字节;这是从哪里来的?
我还没有真正尝试过任何东西,因为我想在做之前先了解一下。
发布于 2019-06-06 02:23:14
弄清楚了,这就是发生的事情:
match stream.read(&mut read) {
这一行告诉软件将stream.read(&mut read)
传递给Ok(n)
,因为stream.read返回读取的字节数。我仍然不确定为什么他们指定每次读取20个字节。
https://stackoverflow.com/questions/56465813
复制相似问题