如何自动为套接字连接分配空闲端口?



我正在使用Python作为基本的套接字程序。

在服务器端:

port = 3135
c.bind('0.0.0.0',port)

在客户端:

port = 3135
s.connect(('127.0.0.1', port))

但是,每次程序抛出OSError时(当端口不空闲时(,我都需要手动更改port变量

如何自动选择空闲端口?

python 文档似乎没有明确提到它,但使用套接字执行此操作的正常过程是:

  1. 在侦听之前,服务器将其套接字绑定到端口 0,这会导致系统选择一个空闲端口。

  2. 服务器调用getsockname以获取套接字绑定到的地址,包括实际端口号

  3. 服务器以某种方式发布客户端可以看到的端口号

  4. 然后,客户端连接到该特定端口。

最新更新