【问题标题】:TCP Listening server in 9870 port. Is it possible to configure the clients port?TCP 监听服务器在 9870 端口。是否可以配置客户端端口?
【发布时间】:2016-05-12 23:14:38
【问题描述】:

当我们打开一个 TCP 监听时,我们使用一个固定的端口,比如“9870”。 但是连接到此侦听的客户端使用不同的端口,例如“1024、1025”或其他。我不知道这个端口的名称是什么,“客户端端口”、“动态端口”或“临时端口”......但我需要知道是否可以更改这个客户端端口。 因为,和第二张图片一样,它显示错误“端口号已重用”,我认为这与此端口配置有关。

我想如果我能配置这些端口,我网络上的设备的连接就会稳定。

【问题讨论】:

    标签: tcp tcplistener


    【解决方案1】:

    TL;TR:通常不需要配置客户端源端口,也绝对不能在服务器端设置客户端源端口。

    客户端可以像服务器一样绑定到地址+端口,然后将该端口用作连接的源端口。但通常这不会完成,而是没有专门绑定套接字,系统会自动分配一个空闲的源端口。客户端源端口只能由客户端自己设置,服务器不能更改。

    通常情况下,客户端不可能重用端口号,因为操作系统不会让客户端这样做。但是,如果客户端崩溃,您看到的情况可能会发生。重新启动后,客户端不知道在重新启动之前建立(并且从未关闭)的任何连接,因此它会很高兴地再次使用相同的源端口。在这种情况下,它会从服务器获取 RST,因为新数据与旧连接不匹配。

    如果客户端与某些执行 NAT 的路由器连接并且路由器崩溃,也会发生这种情况。重新启动后,路由器不知道任何先前的连接,因此将创建可能与旧连接冲突的新转换。

    【讨论】:

    • 在这个解决方案中,我有很多关于断开连接的问题,但我认为它与另一件事有关。 (dropbox.com/s/mnkbbb2gogpbczb/Capturar.JPG?dl=0)
    • @BrunoYuzo:我不知道你想用这张照片告诉我什么。虽然有人说一张照片值一千,但我更愿意用很多词来描述这个问题。
    • 抱歉信息不佳,图中9870端口有“HostAcesso.exe”开启了一个TCP监听。并且在这个监听中连接的设备频繁地打开和关闭连接。我虽然问题与客户端端口有关,但根据您的解释,可能是另一回事。
    • 这个连接很奇怪,有时同一个设备连接两次但客户端端口不同:[192.168.0.70:9870 --- 192.168.0.172:1024] [192.168.0.70:9870 -- - 192.168.0.172:1025]i.stack.imgur.com/HtLsh.jpg
    • @BrunoYuzo:这是否奇怪取决于(未知)用例。例如,单个客户端打开多个 TCP 连接到 Web 服务器是完全正常的。
    猜你喜欢
    • 1970-01-01
    • 2021-07-10
    • 2021-02-04
    • 2017-07-16
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多