【问题标题】:Would TcpClient re-transmit packet if no ack was received?如果没有收到 ack,TcpClient 会重新传输数据包吗?
【发布时间】:2013-09-17 05:48:50
【问题描述】:

我想知道如果 TcpClient 发生任何事情并且从未收到或 ack 从未返回给客户端,TcpClient 是否会重新传输数据包?我正在考虑执行以下操作,但不确定它是否无用?

if(data.length != reply.length){
    NetworkStream str = client.GetStream();
    str.Write(data, 0, data.Length);
}

【问题讨论】:

    标签: c# .net tcpclient


    【解决方案1】:

    我想知道如果发生任何事情,TcpClient 是否会重新传输数据包

    了解这个问题需要有两个部分的答案。

    1. TcpClient 不负责重传数据包,所以直接回答是否定的。
    2. 在某些情况下是否会重新传输数据包,导致数据包无法到达目的地或在到达目的地时被破坏;是的,因为这是 TCP 堆栈的工作(通常是操作系统,在这种情况下不是 TcpClient)。

    【讨论】:

      猜你喜欢
      • 2014-03-04
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 2013-04-27
      • 1970-01-01
      • 2021-10-12
      相关资源
      最近更新 更多