aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/iceftpd.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/iceftpd.rs')
-rw-r--r--src/bin/iceftpd.rs33
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);
+
+ }
+
+ }
+
+}