2

谁能告诉我 TTL 和 Keep alive in sockets (C# Networking) 以及 Linger 之间的区别。在此先感谢。

4

2 回答 2

3

TTL 告诉数据包在放弃之前他可以通过多少个路由器,而 Keep Alive 告诉连接它必须在没有活动的情况下保持打开多长时间。

从我读到的关于 Linger 的内容中,我看不出与 keep-alive 有什么区别,我可能在这里遗漏了一些东西。

编辑: linger 选项允许您关闭套接字,同时告诉它等待一段时间以查看数据是否仍在网络上;从这个页面,我们读到了

关闭 Socket 后,传出网络缓冲区中可能仍有可用数据。如果要指定 Socket 在关闭后尝试传输未发送数据的时间量,请创建一个 LingerOption,并将 enabled 参数设置为 true,并将 seconds 参数设置为所需的时间量。seconds 参数用于指示您希望 Socket 在超时之前保持连接多长时间。如果您不希望 Socket 在关闭后保持连接任何时间长度,请创建一个 LingerOption 并将 enabled 参数设置为 false。在这种情况下,Socket 将立即关闭,任何未发送的数据都将丢失。创建后,将 LingerOption 传递给 Socket.SetSocketOption 方法。如果您使用 TcpClient 发送和接收数据,

于 2011-07-27T09:39:12.907 回答
1

生存时间是网络数据包可能通过的设备(跳数)数量(如路由器、交换机等) 保活时间是在没有数据发送或接收时套接字保持打开的时间

于 2011-07-27T09:40:02.927 回答