Commit 30181305 authored by nanamicat's avatar nanamicat

server addr

parent 1d451f3e
Pipeline #42104 passed with stages
in 2 minutes and 51 seconds
......@@ -49,12 +49,14 @@ async fn main() -> anyhow::Result<()> {
let resolver = Resolver::builder_tokio()?.build();
loop {
let server_addr = config.server.to_socket_addrs(&resolver).await?;
tokio::select! {
biased; // 优先处理上面的
result = socket.recv_from(&mut buf) => {
let (len, src) = result?;
if src.port() == config.server.port {
let (len, addr) = result?;
if addr == server_addr {
// from server
let (message, _): (Change, usize) = bincode::decode_from_slice(&buf[..len], bincode::config::standard())?;
server.on_message(&message);
......@@ -65,9 +67,9 @@ async fn main() -> anyhow::Result<()> {
peers: Vec::new()
};
let message = bincode::encode_to_vec(&report, bincode::config::standard())?;
let _ = socket.send_to(message.as_slice(), config.server.to_socket_addrs(&resolver).await?).await;
let _ = socket.send_to(message.as_slice(), server_addr).await;
syn = false;
} else if let Some(peer) = Router::get(&mut routers, src){
} else if let Some(peer) = Router::get(&mut routers, addr){
// from client
let (message, _): (Hello, usize) = bincode::decode_from_slice(&buf[..len], bincode::config::standard())?;
peer.on_message(&message);
......@@ -95,7 +97,7 @@ async fn main() -> anyhow::Result<()> {
.collect(),
};
let len = bincode::encode_into_slice(&report, &mut buf, bincode::config::standard())?;
let _ = socket.send_to(&buf[..len], config.server.to_socket_addrs(&resolver).await?).await;
let _ = socket.send_to(&buf[..len], server_addr).await;
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment