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

TCP端口是否可以在等待时间过期之前重新使用?

尉迟宇定
2023-03-14

我们有一个运行良好的C#FTP类,但是TCP端口快用完了,因为它们都处于等待时间状态,无法重用。我们可以减少注册表中的默认等待时间,但我们宁愿重用端口。

在服务器端套接字进入TIME-WAIT状态并且客户机在2MSL(默认TIME-WAIT时间)内重新连接到服务器的情况下,可能会发生以下两种情况:

1.服务器不会响应来自客户端的SYN数据包,因为套接字处于时间等待状态。

2.服务器可以接受来自客户端的SYN,并将套接字的状态从时间等待改为建立状态。这被称为等待时间的暗杀,或先前联系的化身。

这可能实现吗?

共有1个答案

桂杰
2023-03-14

Windows已经在本地为您实现了更高的序号,您不必做任何特殊的事情来获得该功能。您链接到的文章同样指出:

Microsoft的TCP/IP实现使用了此功能。...TCP等待时间暗杀在Windows系统之间工作得很好,但当Windows与运行其他TCP/IP实现的主机通信时,它可能无法像预期的那样工作。RFC1337,等待时间暗杀的危险,讨论了可能的陷阱:http://tools.ietf.org/RFC/RFC1337.txt

 类似资料:
  • 问题内容: 我有一个Python程序,该程序通过 PySerial 模块从串行端口读取数据。我需要牢记的两个条件是:我不知道会有多少数据到达,并且我也不知道何时需要数据。 基于此,我提出了以下代码段: 因此,此代码将永远循环以从串行端口获取数据。我们最多可以存储500个字符,然后通过设置一个标志来警告主循环。如果没有数据,我们将回到睡眠状态并等待。 该代码正在运行,但是我不喜欢5s超时。我需要它是

  • 问题内容: 我正在编写一个自动化测试程序,该程序将测试某些Web程序,这些程序有时加载某些AJAX调用的速度很慢。例如,用户将单击“查询”,这将在15到90秒的任何时间产生HTML“加载”叠加。搜索完成后,它将使用结果更新同一页面上的表。 所以很明显我可以像这样单独增加等待时间: 但是有没有办法修改(在我的情况下增加)时间,因此Watir-Webdriver 总是 等待90秒,如下所示: 请注意以

  • 问题内容: 我正在尝试在同一端口上启用tcp,http和websocket.io通信。我开始使用tcp服务器(在////行上方),它可以正常工作。然后,我运行了在websocket.io(位于////行下方的部分)上找到的echo服务器示例,它也可以正常工作。但是当我尝试将它们合并在一起时,tcp不再起作用。 因此,是否可以使用同一端口启用tcp,http和websockets?还是我必须在另一个

  • 问题内容: Selenium隐式等待是否总是占据整个等待时间,还是可以更快地完成?如果我将隐式等待时间设置为10秒,则对.findElement的调用是否可以在几秒钟内完成,还是总是需要整整10秒钟? 该页面暗示它要等待整整10秒钟,这非常令人困惑,因为它不是javadoc所暗示的。 WebDriver.java的以下代码注释隐含了它的轮询操作可以比定义隐式超时更快的时间完成。但是, 评论中的最后

  • 创建驱动程序时,我已将隐式等待设置为10秒。当我希望使用显式等待时,是否必须将隐式等待设置为0? 以下是一个示例: 我必须做webDriver.manage()。超时()。秒);还是没有必要?