我正在使用Python作为基本的套接字程序。
在服务器端:
port = 3135
c.bind('0.0.0.0',port)
在客户端:
port = 3135
s.connect(('127.0.0.1', port))
但是,每次程序抛出OSError
时(当端口不空闲时(,我都需要手动更改port
变量
如何自动选择空闲端口?
python 文档似乎没有明确提到它,但使用套接字执行此操作的正常过程是:
-
在侦听之前,服务器将其套接字绑定到端口 0,这会导致系统选择一个空闲端口。
-
服务器调用
getsockname
以获取套接字绑定到的地址,包括实际端口号 -
服务器以某种方式发布客户端可以看到的端口号
-
然后,客户端连接到该特定端口。