如果没有收到确认,TcpClient会重新发送数据包吗?

时间:2013-09-16 21:42:56

标签: c# .net tcpclient

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

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

1 个答案:

答案 0 :(得分:1)

  

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

明白这个问题需要有两个部分的答案。

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