当前位置: 首页 > 知识库问答 >
问题:

当我使用TCP连接时,我应该发送保持活动的数据包吗?

徐隐水
2023-03-14

我的问题是,我已经创建了一个传输控制协议,当它停留没有传输任何数据约1小时,它已经从服务器断开连接,但它不通知我,它已断开连接,我应该发送保持活动的数据包到服务器吗?或者我应该发送保持活动的数据包从服务器到客户端?或者我应该发送两个?

共有2个答案

左丘昕
2023-03-14

它不会通知我它已断开连接

它不能。除了在您下次尝试I/O时诱导EOS或“连接重置”之外,它没有其他方法可以做到这一点。

我应该发送keepalive数据包吗。。。

如果你有这个问题,是的。一般来说,可能不是。

吴举
2023-03-14

是的,你应该。几天前,我创建了一个TCP套接字/服务器应用程序,我遇到了同样的问题。我通过开始发送保持活动的数据包来修复它。

如果您发送keep alive数据包,您的问题就会消失。

我听一些人说,操作系统将为您发送keep-alive数据包,我对此不太熟悉,但发送keep-alive数据包对我来说非常有效

 类似资料:
  • 我需要在javascript客户机和Web API控制器操作之间建立一个长时间运行(比如10分钟)的连接。Web应用程序的Azure负载均衡器的默认超时时间为4分钟,目前还无法配置。

  • 我正在创建一个客户端服务器应用程序。服务器已经设计好,等待从客户端连接。现在在客户机部分中,我希望在应用程序的整个生命周期中保持连接活动,并且只有当主客户机应用程序关闭或关闭或者服务器关闭它时,连接才会关闭。 在处理程序中我有:

  • 问题内容: 当我与Sphero同步并且想要从一个活动传递到另一个活动时,我的同步丢失了,我必须在新活动中在onCreate中使用此方法来再次获得非同步性: mRobot具有Sphero的MAC地址。但这并不是每次都尝试的好处,我想为所有应用程序保留蓝牙连接,因为我是第一次连接,并且能够保持它而无需再次同步。 我已经看到了Sphero的官方Orbotix应用程序,并且我认为它是完美的,因为同步是永久

  • 我有以下关于连接和TCP保持活动状态的查询: 对于TCP连接,TCP保持活动状态是强制性吗? 保持活动状态的持续时间是固定的还是可配置的? 假设“保持活动”间隔为每15秒一次,那么“保持活动”是始终每15秒发送一次,还是仅在15秒内未发送应用程序数据时才发送? 服务器(通过TCP与客户机连接)如何判断与客户机的连接是否完整?是否可以使用TCP keepalive完成?在这种情况下,是否是服务器需要

  • 问题内容: 我有一个要连接到MySQL数据库的应用程序。它在半夜断开连接,然后喷出有关连接的信息,并且JDBC在X秒内没有收到消息。 在进行任何需要与SQL Server通信的操作之前,我先打电话给我。 这是我的方法: 在该方法中,我将密码等信息放入字符串中,然后以标准JDBC方式创建连接。 然后我调用此方法: 我可以对这两种方法进行哪些更改以适应丢失的连接? 问题答案: 这不是检索连接的正确方法

  • 我的问题是为什么接收端没有得到发送的数据包? 注意:我的目标是在建立的连接上发送带有错误校验和的TCP数据包,并由不scapy的TCP服务器接收,提前谢谢!!