如何从python服务器给python客户端一个端口号

时间:2014-12-23 22:10:10

标签: python network-programming client-server port server

我正在尝试构建一个客户端可以连接的简单python服务器,而客户端不必知道确切的端口号。这甚至可能吗?我们的想法是选择一个随机的端口号并将其用于客户端连接。

我知道你可以使用bind(host,0)来获取服务器中的随机端口号和socket.getsockname()[1]来获取我的portnumber。但是我的客户怎么能得到这个号码?

我已经尝试过socket.getnameinfo()但我不认为我理解该方法是如何工作的。

3 个答案:

答案 0 :(得分:1)

为此,服务器必须侦听某个端口。 这意味着客户端需要在这些端口上进行交互。

所以......不可能在一些随机的未知端口上做到这一点。

答案 1 :(得分:0)

您需要以某种方式公布端口号。虽然DNS没有这样做(好吧,你可能在服务器对象上做了一些资源记录,但事实并非如此),有许多网络服务可以做到。 LDAP就像活动目录(你需要写权限),DNS-SD dns服务发现,通用即插即用,服务定位协议,都会浮现在脑海中。您甚至可以在某个网页上记录端口号并让客户端读取它。

答案 2 :(得分:0)

看看Zeroconf,它似乎是你要去的地方的路径。