Python 套接字占用了错误的端口

Python socket taking wrong port

为什么我的 python 脚本会这样?
我给了它通过端口 7777 连接的指令,但它却超过了 45604。

我没有使用 socket.bind((socket.gethostname(),port))

相反,我使用 socket.bind(("0.0.0.0",port))
socket.bind(("127.0.0.1",port))
所以我在当地工作。为什么我的电脑重新路由端口?
应该不需要那个,不是吗?我能以某种方式在本地禁用它吗?

我在没有任何实际代码的情况下回答。所以我必须在这里做出假设:

1) 您有服务器(图中右侧)侦听端口 7777。

2) 你是 运行 连接到服务器的同一台机器上的客户端(图片左侧)。

因此,客户端(左侧 shell)正在连接到服务器(右侧 shell window)。服务器监听7777,客户端从45604连接到服务器(客户端和服务器不能在同一台机器上占用同一个端口!)

换句话说,客户端是 "sending" 到端口 7777 端口 45604。也许这样更有意义?

一个TCP连接由4个数字定义:源IP地址、源端口、目的IP地址、目的端口。

连接从 127.0.0.1 端口 45604 到 127.0.0.1 端口 7777。

源端口(45604)是系统从大量未使用的端口(称为临时端口)中选择的值,因为您的程序没有设置特定的源端口。