如何检查服务器是否正确接收数据

问题描述 投票:0回答:1

我的TCPStream代码是这样的:

use tokio::net::TcpStream;
use tokio::io::AsyncWriteExt;
use std::error::Error;

 

       #[tokio::main]
        pub async fn match_tcp_client(address: String, self_ip: String) -> Result<(), Box<dyn Error>> {
            // Connect to a peer
            println!("client to connect at {}", address);
            let mut stream = TcpStream::connect(address.clone()).await?;
            println!("client done");
            // Write some data.
            stream.write_all(self_ip.as_bytes()).await?;
            stream.write_all(b"hello world!EOF").await?;
            // stream.shutdown().await?;
            Ok(())
        }

我的问题是,有没有办法让客户端知道服务器是否正确接收到数据,如果没有重新发送数据?

rust rust-tokio tcpserver
1个回答
0
投票

TCP 提供可靠的数据传输。使用流量控制、序列号、确认和计时器,TCP 确保数据从发送进程到接收进程正确且有序地交付。

如果您想要一个防止中间人攻击的安全解决方案,您可以在tokio中使用TLS协议。此外,您可以发送所发送数据的预先计算的 校验和,与 BitTorrent 协议 does 的方式相同。

© www.soinside.com 2019 - 2024. All rights reserved.