gpt4 book ai didi

sockets - TCP客户端用于连接服务器的端口是否对其他TCP服务器不可用

转载 作者:行者123 更新时间:2023-12-03 21:13:19 25 4
gpt4 key购买 nike

使用套接字 API 创建 TCP 客户端时,使用 localhost 上的端口连接到 TCP 服务器。

所使用的端口似乎对另一个应用程序不可用,该应用程序是要绑定(bind)到并充当服务器的 TCP 服务器。

因为客户端使用的端口是动态确定的,所以它可能是我的应用程序想要用作服务器的端口。

TCP客户端是否会动态选择要使用的端口并阻止其他程序成为该端口上的服务器?

客户端可以控制它使用哪个端口来确保它不占用另一个程序所需的端口吗?

最佳答案

是的,该端口将从预定义的范围中选择,该范围因操作系统而异,并被阻止用于其他用途。您可以使用 bind 选择特定端口如果你需要这个。

编辑:

您可以将多个 TCP 套接字绑定(bind)到同一个本地端口/IP 的唯一情况是当您 accept()来自监听套接字的新套接字。你永远不能bind()连接到正在使用的端口/IP 的 TCP 套接字。 SO_REUSEADDR 上也有一些困惑。 ,此套接字选项不允许端口重用,它只是在只有死超时连接绑定(bind)到您想要的端口时放宽规则。

关于sockets - TCP客户端用于连接服务器的端口是否对其他TCP服务器不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5435779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com