Echo server: Difference between revisions
Content added Content deleted
m (→{{header|Perl 6}}: "async" is now "start") |
No edit summary |
||
Line 1,578: | Line 1,578: | ||
end |
end |
||
end</lang> |
end</lang> |
||
=={{header|Rust}}== |
|||
<lang rust> |
|||
use std::net::{TcpListener, TcpStream}; |
|||
use std::io::{BufReader, BufRead, Write}; |
|||
use std::thread; |
|||
fn main() { |
|||
let listener = TcpListener::bind("127.0.0.1:12321").unwrap(); |
|||
println!("server is running on 127.0.0.1:12321 ..."); |
|||
for stream in listener.incoming() { |
|||
let stream = stream.unwrap(); |
|||
thread::spawn(move || handle_client(stream)); |
|||
} |
|||
} |
|||
fn handle_client(stream: TcpStream) { |
|||
let mut stream = BufReader::new(stream); |
|||
loop { |
|||
let mut buf = String::new(); |
|||
if stream.read_line(&mut buf).is_err() { |
|||
break; |
|||
} |
|||
stream |
|||
.get_ref() |
|||
.write(buf.as_bytes()) |
|||
.unwrap(); |
|||
} |
|||
} |
|||
</lang> |
|||
=={{header|Scheme}}== |
=={{header|Scheme}}== |