diff --git a/src/engine.rs b/src/engine.rs index b28a73a..b9b5af2 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -118,12 +118,18 @@ impl InputEngine for InputEngineUDP { let addr = "0.0.0.0:".to_string() + &self.port.to_string(); println!("$ echo -n 'hello world' | nc -4u -w0 localhost {}", &self.port.to_string()); if self.last_socket.is_none() { - self.last_socket = Some(std::net::UdpSocket::bind(addr).unwrap()); + let result = std::net::UdpSocket::bind(&addr); + if result.is_err() { + println!("InputEngineUDP: failed to bind to {}: {:?}", &addr, result.err()); + return Vec::::new(); + } + self.last_socket = Some(result.unwrap()); } let mut buf = [0; 128]; let result = self.last_socket.as_ref().unwrap().recv_from(&mut buf); if result.is_err() { + println!("InputEngineUDP: failed to recv: {:?}", result.err()); self.last_socket = None; return Vec::::new(); } @@ -241,10 +247,13 @@ impl OutputEngine for OutputEngineUDP { if self.last_socket.is_none() { let result = std::net::UdpSocket::bind("127.0.0.1:".to_string() + &(self.port+10).to_string()); if result.is_err() { + println!("OutputEngineUDP: failed to bind to 127.0.0.1:{}: {:?}", &(self.port+10).to_string(), result.err()); return; } self.last_socket = Some(result.unwrap()); - if self.last_socket.as_ref().unwrap().connect(self.host.to_string() + ":" + &self.port.to_string()).is_err() { + let result = self.last_socket.as_ref().unwrap().connect(self.host.to_string() + ":" + &self.port.to_string()); + if result.is_err() { + println!("OutputEngineUDP: failed to connect to {}:{}: {:?}", self.host.to_string(), self.port.to_string(), result.err()); self.last_socket = None; return; } @@ -252,6 +261,7 @@ impl OutputEngine for OutputEngineUDP { let result = self.last_socket.as_ref().unwrap().send(&v.iter().cloned().collect::().as_bytes()); if result.is_err() { + println!("OutputEngineUDP: failed to send: {:?}", result.err()); self.last_socket = None; } }