我试图让我的程序使用 tungstenite 和 TcpListener 运行 websocket 服务器,但不幸的是,它抛出了无效端口错误。
thread 'main' panicked at 'Invalid address format: Error { kind: InvalidInput, message: "invalid port value"
fn run_server(port: String) {
let form_port = String::from(format!("{}:{}", String::from("127.0.0.1"),port));
println!("Full Host: {}", form_port);
let server = TcpListener::bind(form_port).unwrap(); //The error
for stream in server.incoming() {
spawn (move || {
let mut websocket = accept(stream.unwrap()).unwrap();
loop {
let msg = websocket.read().unwrap();
if msg.is_binary() || msg.is_text() {
websocket.send(msg).unwrap();
}
}
});
}
}
这就是给出错误的部分。但如果我手动设置主机,它就可以工作:
fn run_server(/* port: String */) {
let form_port = String::from("127.0.0.1:1"); //Trying manually
println!("Full Host: {}", form_port);
let server = TcpListener::bind(form_port).unwrap();
for stream in server.incoming() {
spawn (move || {
let mut websocket = accept(stream.unwrap()).unwrap();
loop {
let msg = websocket.read().unwrap();
if msg.is_binary() || msg.is_text() {
websocket.send(msg).unwrap();
}
}
});
}
}
它给出了错误,因为默认情况下该端口有一个
\n
。我刚刚修剪了一下。