任何人都可以告诉我TTL和套接字中的Keep alive(C#Networking)和Linger之间的区别..提前感谢。
答案 0 :(得分:3)
TTL告诉数据包在放弃之前他可以通过多少路由器,而Keep Alive告诉连接在没有活动的情况下它必须保持打开多长时间。
从我读到的关于灵儿的内容来看,我看不出保持活力的差异,我可能会在这里遗漏一些东西。
编辑:逗留选项允许您关闭套接字,同时告诉它等待一段时间以查看数据是否仍在线路上;来自this page,我们读到了
之后,传出网络缓冲区中可能仍有数据可用 你关闭套接字。如果要指定时间量 Socket将在关闭后尝试传输未发送的数据,创建 启用参数设置为true的LingerOption和秒 参数设置为所需的时间量。秒参数是 用于表示您希望Socket保留多长时间 在超时之前连接。如果你不想让Socket留下来 关闭后连接任意长度的时间,创建一个LingerOption 将enabled参数设置为false。在这种情况下,Socket会 立即关闭,任何未发送的数据都将丢失。一旦创建,通过 LingerOption到Socket.SetSocketOption方法。如果你是 用TcpClient发送和接收数据,然后传递 LingerOption to TcpClient.LingerState方法。
答案 1 :(得分:1)
生存时间是网络数据包可能交叉的设备(跳数)(如路由器,交换机等)。保持活动时间是在没有数据发送或接收时套接字保持打开的时间