2010-11-12 91 views
2

当我的服务器上创建一个套接字和接受传入的连接:如何获取python中新接受的连接的端口号?

康恩,ADDR = s.accept()

两个打印conn.getsockname()和打印s.getsockname()打印出相同的端口号。

我以为'conn'应该代表一个NEW套接字。我如何获得这个新套接字的端口号?

谢谢!

回答

5

本地端口保持不变。你想要的是远程端口。您可以使用getpeername作为此(或accept的返回值的第二个元素)。

+1

谢谢。如果本地端口保持不变,服务器如何区分来自不同客户端的数据流? – klyngbaek 2010-11-12 19:21:17

+2

由源和目标接口和端口的组合。 – Amnon 2010-11-12 19:24:56

+0

正确的说,套接字是'(主机,端口)'元组的*对*。每个*对*都是唯一的。 (+1为好问题。) – 2010-11-12 19:59:33

0

这是一个新的套接字,但它具有与原始侦听套接字相同的本地端口。

相关问题