【问题标题】:How do I handle parallel reads and writes on a TcpStream?如何处理 TcpStream 上的并行读写?
【发布时间】:2014-12-24 15:35:12
【问题描述】:

我阅读了Idiomatic way to handle writes to a TcpStream while waiting on read,但我仍然不确定如何处理这个问题。我正在通过 Telnet 连接到 Rust 二进制文件,并想发送“命令”并接收“状态”。几乎就像一个简单的回显服务器。

【问题讨论】:

    标签: tcp stream telnet rust


    【解决方案1】:

    我最终选择了cloning the stream,它运行良好:

    let second_stream = stream.try_clone().expect("Cannot clone stream");
    let mut reader = BufferedReader::new(second_stream);
    let mut writer = BufferedWriter::new(stream);
    

    【讨论】:

    • 看起来很有线?
    【解决方案2】:

    只是 Rust 1.1 的更新,此方法不再有效。为了完成这项工作,我在完成对服务器套接字的写入后使用了stream.shutdown(Shutdown::Write)。如果我必须从同一个连接重复读写,我不知道该怎么做。

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 2014-02-05
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 2018-11-11
      相关资源
      最近更新 更多