diff options
author | bnewbold <bnewbold@robocracy.org> | 2016-05-26 16:51:32 -0400 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2016-05-26 16:51:32 -0400 |
commit | e792fe13178fa5ec39294fc5bf53a3ecb5e43a1b (patch) | |
tree | 5da2b20bb140064f9ca7b8201176c4defa9e2601 /src/bin/iceftpd.rs | |
download | ucp-e792fe13178fa5ec39294fc5bf53a3ecb5e43a1b.tar.gz ucp-e792fe13178fa5ec39294fc5bf53a3ecb5e43a1b.zip |
init repo; basic uTP send/receive
Diffstat (limited to 'src/bin/iceftpd.rs')
-rw-r--r-- | src/bin/iceftpd.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/bin/iceftpd.rs b/src/bin/iceftpd.rs new file mode 100644 index 0000000..af29503 --- /dev/null +++ b/src/bin/iceftpd.rs @@ -0,0 +1,33 @@ + +extern crate utp; + +use utp::{UtpSocket, UtpListener}; +use std::str; + +fn main() { + // Connect to an hypothetical local server running on port 3540 + let addr = "127.0.0.1:3540"; + // Accept connection from anybody + let listener = UtpListener::bind(addr).expect("Error binding to local port"); + + for connection in listener.incoming() { + + let (mut socket, _src) = connection.unwrap(); + println!("Got connection from {}", socket.peer_addr().unwrap()); + + loop { + + let mut buf = [0; 1000]; + let (amt, _src) = socket.recv_from(&mut buf).ok().unwrap(); + if amt <= 0 { + break; + } + let buf = &buf[..amt]; + let s = str::from_utf8(buf).unwrap(); + println!("\tgot: {}", s); + + } + + } + +} |