aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorTeddy Wing2017-04-13 00:54:45 +0200
committerTeddy Wing2017-04-13 00:54:45 +0200
commita199d34222bd3abc8cda26449b4aa73c0994d656 (patch)
treeff71f2f501ee031c3db57a2e63e7e7df2d4e67d6 /src/main.rs
parent77837552075762e94b9c8899d43e2f3857bd052e (diff)
downloadHearURL-a199d34222bd3abc8cda26449b4aa73c0994d656.tar.bz2
main.rs: Try out TcpListener
Replicate the TcpListener example from the Rust standard library docs. Using TCP instead of UDP allows us to read directly to a string and read arbitrary length streams. Here we just print the stream input to the console.
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index f803e1d..b363a01 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,6 +1,9 @@
use std::net::UdpSocket;
use std::io;
+use std::io::prelude::*;
+use std::net::{TcpListener, TcpStream};
+
fn make_socket() -> io::Result<()> {
let mut socket = try!(UdpSocket::bind("127.0.0.1:34254"));
@@ -16,6 +19,25 @@ fn make_socket() -> io::Result<()> {
Ok(())
}
+fn open_stream() -> io::Result<()> {
+ let listener = TcpListener::bind("127.0.0.1:34254")?;
+
+ for stream in listener.incoming() {
+ match stream {
+ Ok(mut stream) => {
+ let mut url = String::new();
+ stream.read_to_string(&mut url)?;
+
+ println!("{}", url);
+ }
+ Err(e) => {}
+ }
+ }
+
+ Ok(())
+}
+
fn main() {
- make_socket();
+ // make_socket();
+ open_stream();
}