aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/iceftp.rs16
-rw-r--r--src/bin/iceftpd.rs33
2 files changed, 49 insertions, 0 deletions
diff --git a/src/bin/iceftp.rs b/src/bin/iceftp.rs
new file mode 100644
index 0000000..3f19dbe
--- /dev/null
+++ b/src/bin/iceftp.rs
@@ -0,0 +1,16 @@
+
+extern crate utp;
+
+use utp::UtpSocket;
+
+fn main() {
+ // Bind to port 3540
+ let addr = "127.0.0.1:3540";
+ let mut socket = UtpSocket::connect(addr).expect("Error connecting to remote peer");
+
+ // Send a string
+ socket.send_to("Hi there!".as_bytes()).expect("Write failed");
+
+ // Close the socket
+ socket.close().expect("Error closing connection");
+}
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);
+
+ }
+
+ }
+
+}