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

计算TCP断开后的点(最新发送的字节)

公西马鲁
2023-03-14

我想知道是否有可能找出服务器使用TCP连接发送给客户端的最后一个字节。具体来说,我有一个客户端和一个服务器,都是C语言。他们使用XMLRPC进行通信,连接是TCP。客户端可以向服务器发送一个大请求,由于一些计算,服务器可能需要一些时间才能回复。在连接的任何部分,如果断开连接,整个过程都应该从头开始,这会导致服务器容易受到DoS攻击。

我的问题是,我是否可以找出连接断开的位置,以便在重新建立连接(对于使用某些标识的同一客户端)后,服务器可以发送来自上一个请求的剩余字节,而不是再次处理请求。

共有1个答案

严亮
2023-03-14

您应该将该支持编码到您的协议中。例如,将响应分解为4096字节块;然后,客户可以重新连接并说:“我收到了前19个区块,请继续执行区块20!”

 类似资料:
  • 从CANopen标准验证SDO块传输的CRC计算算法

  • 我设法创建了基本的远程管理员工具,它运行良好,我使用了基本的tcp套接字和C++中的多线程。我可以用一些功能来远程使用它,这就像90%完成了,但我的软件没有任何东西可以检测客户端断开,除了当客户端手动关闭时,客户端会发送断开消息给服务器,但当用户拔掉网络插头或其他东西时,断开发生时,什么是最好的处理方法,我正在寻找一种专业的方法来做,比如如果客户端断开,服务器会立即检测到哪个客户端断开。

  • 在用户输入的字符串中,我很难使用计数器。代码定位最常见的字符,但我可以将计数器放在哪里,它计算最常见的字符。Java,请使用当前代码。这是最后一个方法。

  • 问题内容: 我在计算本月下一个最后一天何时发送预定的通知时遇到问题。 这是我的代码: 这是导致问题的线,我相信: 如何使用日历正确设置下个月的通知的最后一天? 问题答案: 这将返回当前月份的实际最大值。例如,现在是leap年的2月,因此它返回29作为。

  • 在代理上使用HTTP隧道时,TCP套接字有问题。 客户端(C++)打开到服务器(JAVA)的TCP套接字。我添加了对HTTP代理的支持。一切正常,客户端发送“HTTP Connect”请求如下所示,并在以下情况下继续普通TCP连接: 然而,如果代理中配置了空闲超时,并且没有发送实际数据,则尽管客户端每60秒发送TCP保持活动数据包,但连接将终止。空闲超时配置为10分钟。