Closed
Description
use std::io::net::ip::{SocketAddr, Ipv4Addr};
use std::io::net::tcp::{TcpListener, TcpAcceptor, TcpStream};
use std::io::stdio::println;
use std::io::{Listener, Acceptor};
fn main () {
let addr: SocketAddr = SocketAddr { ip: Ipv4Addr(0, 0, 0, 0), port: 3000 };
let listener: TcpListener = match TcpListener::bind(addr) {
Err(e) => { println(e.desc); return; },
Ok(l) => l
};
let acceptor: TcpAcceptor = match listener.listen() {
Err(e) => { println(e.desc); return; },
Ok(a) => a
};
let (port, chan): (Port<TcpStream>, Chan<TcpStream>) = Chan::new();
spawn(proc() {
loop {
let mut acceptor = acceptor;
let stream: TcpStream = match acceptor.accept() {
Err(e) => { println(e.desc); return; },
Ok(s) => s
};
chan.send(stream);
}
});
spawn(proc() {
let mut stream: TcpStream = port.recv();
match stream.read_to_str() {
Err(e) => { println(e.desc); return; },
Ok(msg) => println(msg)
}
});
}
compiles rustc chat.rs
. Runs ./chat
. telnet localhost 3000
Connection refused and segfault.
Metadata
Metadata
Assignees
Labels
No labels