Python套接字错误的端口

时间:2017-03-03 18:52:03

标签: python networking port nat

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

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

相反,我与socket.bind(("0.0.0.0",port))一起工作 或socket.bind(("127.0.0.1",port))
所以我在这里工作。为什么我的电脑重新路由端口?
应该没有必要,不应该吗?我可以以某种方式在本地禁用它吗?

enter image description here

2 个答案:

答案 0 :(得分:4)

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

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

2)您正在连接到服务器的同一台计算机(图片左侧)上运行客户端。

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

换句话说,客户端从端口45604“发送”到端口7777 。也许这更有意义?

答案 1 :(得分:2)

TCP连接由4个数字定义:源IP地址,源端口,目标IP地址,目标端口。

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

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