相关疑难解决方法(0)

使用期货的Rust echo服务器和客户端永远阻止自己

将此代码用于服务器,并为客户端代码修改了本教程.当客户端连接到服务器时,它会永久阻止自身.

服务器:

extern crate futures;
extern crate futures_io;
extern crate futures_mio;

use std::net::SocketAddr;

use futures::Future;
use futures_io::{copy, TaskIo};
use futures::stream::Stream;

fn main() {
    let addr = "127.0.0.1:8080".parse::<SocketAddr>().unwrap();

    let mut l = futures_mio::Loop::new().unwrap();

    let server = l.handle().tcp_listen(&addr);

    let done = server.and_then(move |socket| {
        println!("Listening on: {}", addr);

        socket.incoming().for_each(|(socket, addr)| {
            let io = TaskIo::new(socket);
            let pair = io.map(|io| io.split());
            let amt = pair.and_then(|(reader, writer)| {
                copy(reader, writer)
            });
            amt.map(move |amt| {
                println!("wrote {} bytes to {}", amt, …
Run Code Online (Sandbox Code Playgroud)

client echo rust server

3
推荐指数
1
解决办法
892
查看次数

标签 统计

client ×1

echo ×1

rust ×1

server ×1