Networking TcpListener读取请求,但没有任何内容被发送回stream.write()
我正试图让这个简单的TCP服务器发送回一个Hello!消息当它成功连接并在发送消息时将消息打印到控制台时,它不响应stream.writeNetworking TcpListener读取请求,但没有任何内容被发送回stream.write(),networking,tcp,rust,Networking,Tcp,Rust,我正试图让这个简单的TCP服务器发送回一个Hello!消息当它成功连接并在发送消息时将消息打印到控制台时,它不响应stream.write 如果我做stream=acceptor.accept,然后做stream.write,而不是acceptor.incoming,我就可以让它工作。否则,我无法向客户端发回消息。无法复制。如果我运行这个代码,然后http://0.0.0.0:8000/,我看到“你好!!”。Arch,64位,Rust master。什么操作系统?顺便说一句,您应该注意“未使用的
如果我做stream=acceptor.accept,然后做stream.write,而不是acceptor.incoming,我就可以让它工作。否则,我无法向客户端发回消息。无法复制。如果我运行这个代码,然后http://0.0.0.0:8000/,我看到“你好!!”。Arch,64位,Rust master。什么操作系统?顺便说一句,您应该注意“未使用的结果必须使用”之类的警告。如果阅读或写作失败,它目前只会愉快地继续前进,而你可能想要的更像stream.readbuf.unwrap;和stream.writeresp_bytes.unwrap;。
use std::str::from_utf8;
use std::io::{TcpListener, TcpStream};
use std::io::{Acceptor, Listener};
fn main() {
let listener = TcpListener::bind("0.0.0.0", 8000);
let mut acceptor = listener.listen();
fn handle_client(mut stream: TcpStream) {
println!("Something's happening!");
let resp_bytes = bytes!("Hello!!");
let mut buf = [0u8, ..1024];
stream.read(buf);
stream.write(resp_bytes);
let req = from_utf8(buf);
println!("{}", req);
}
for stream in acceptor.incoming() {
match stream {
Err(e) => { println!("Something gone bad.") }
Ok(stream) => spawn(proc() {
handle_client(stream)
})
}
}
drop(acceptor);
}