1
58
正如许多其他人所指出的,如果将TCP连接留给自己的设备,它将保持正常。但是,如果在连接的中间有一个设备跟踪它的状态(例如防火墙),为了保持状态表条目不过期,您可能需要KeaPiVIEW。 |
2
57
连接 应该 不管怎样,都保持开放,但是的,通常会看到协议实现心跳以帮助检测死连接,IRC和 PING 例如,命令。 |
3
25
如果您的组件:
那么你就不需要心跳了。 如果这些假设中的任何一个都是错误的(我在看你,GPRS!),那么心跳很快就会变得非常必要。 |
4
12
你不需要自己发送心跳信号。无论使用情况如何,TCP连接都将保持打开状态。 注意,TCP实现了一个可选的 keepalive 机制,该机制可用于及时识别已关闭的连接,而不是要求您在以后某个日期发送数据,然后才发现连接已关闭。 |
5
9
如果您使用windows,请小心TCP保持活动状态。默认情况下,它是禁用的,除非您使用windows注册表或通过setsockopt全局打开它。 默认的保持活动时间间隔为2小时。 http://msdn.microsoft.com/en-us/library/ms819735.aspx 如果不需要2小时保持活动,您可能需要实现自己的心跳并在windows上禁用TCP保持活动。 |
6
4
它们对于检测连接何时中断非常有用。 |
7
4
TCP将使连接保持活动状态。应用程序心跳用于应用程序级别的考虑事项,如故障切换、负载平衡或提醒管理员潜在问题。 |
8
3
心跳是告诉服务器您还活着的一种很好的方式,我的意思是,如果服务器使用DoS攻击预防系统,它(服务器)可能会在其在活动中检测到特定时间段后删除为该特定连接分配的所有资源。
但是,如果您正在设计一个以响应性为主要标准的应用程序,这是很好的。您不会希望在连接设置、DNS查找和路径发现上浪费时间。只要一直保持连接,不断发送心跳,应用程序就会知道连接处于活动状态,不需要设置连接。只需简单的发送和接收。 |
9
2
TCP/IP作为协议被指定为在发送关闭数据包之前不会关闭。即使在无线或互联网连接出现故障后,我的插座仍然保持打开状态。 然而,这一切都非常依赖于实现。很可能会出现“超时”,这意味着在考虑连接“死机”之前等待响应的最长时间。有时这是基于应用程序本身,有时是基于NAT路由器。 因此,我强烈建议您保持“心跳”来检测坏连接并保持它们打开。 |
10
2
基本上,TCP连接会沿路由创建存储在交换机中的链路状态。为了检测断开的连接(比如当一个对应方崩溃时(没有发送适当的断开连接)),这些状态必须在一段时间的不活动后被逐出。发生这种情况时,您的TCP连接已关闭。 虽然我不能确切地说出这些超时时间有多长,但它们似乎取决于设备制造商和/或互联网提供商。我记得我的空闲SSH终端会话很快就被我以前的1&关闭了(不到15分钟的空闲时间);1互联网供应商,当他们使用Kabel BW提供的连接时,他们保持开放数小时。。。 最后,我和前面的演讲者一起总结:心跳是一个很好的方式来判断一个连接是否仍然活跃和活跃。。。 |
11
1
当试图设置超时时,您所称的心跳非常有用。您的插座可能看起来是打开的,但另一端的人可能患有BSOD。检测失效客户端/服务器的最简单方法之一是设置超时,并确保每隔一段时间收到一条消息。 有些人称之为NOOPs(无操作)。 但是不,它们不是保持连接的必要条件,只是有助于了解状态。 |
12
1
我想说,如果没有心跳,TCP/IP连接是否打开并不重要。 |
13
1
心跳不是TCP协议的必要条件。它的实现是为了检测另一方是否以非标准方式终止了连接(即没有经历拆卸过程)。 |
14
0
连接将保持打开状态-不需要实现心跳,并且大多数使用套接字的应用程序都不这样做。 |
15
0
TCP不需要保持活动消息来保持会话打开。该协议旨在用于终端和打印机,这些终端和打印机可以每隔几周激活一次,而不会出现问题。 其他答案确定的透明网络级元素肯定会造成令人难以置信的破坏,当它们行为不当、丢失会话或以其他方式干扰流量时,会杀死整个工厂。这总是不正确的,不需要应用程序或操作系统开发人员执行任何操作。 如果没有keepalive,则只有在下次尝试传输时才会检测到通信丢失错误。 有三种可能的保持活动级别:
前两种方法不会导致通过信道传输的应用程序级信息发生变化,尽管它们必然会触发空段的传输。 最后两个选项导致应用程序通信,并可以提供更多信息。例如,如果主机应用程序已暂停且不会响应,则前两个备选方案无法检测到此故障模式。第四个选项是隐式的。发送方最终将收到一个错误,接收方应该期望周期性消息作为正常会话的指示。 如果使用更高级别的协议,例如RPC或REST,则返回良性内容的Ping()函数可能会有所帮助。 除非必须检测连接故障,否则在必要时简单地重新连接通常更容易。选择取决于应用程序级协议和来自需求的端到端消息保证。 |
16
-2
许多协议实现了心跳或健康状态类型的东西,就像劳埃德说的那样。只是为了让你知道连接仍然是开放的,如果你可能错过了什么 |
mig21 bis · 带套接字的SSL_set_fd地址边界错误 2 年前 |
hollow · 在读写C中的套接字时,为什么要使用循环缓冲区? 2 年前 |
Filipe · 通过http python发送图像 6 年前 |
Mr. Rogers · epoll_wait事件的epoll顺序 6 年前 |
Michael Beer · 查找插座的传输类型 6 年前 |