2010-11-12 87 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

這是一個新的套接字,但它具有與原始偵聽套接字相同的本地端口。

相關問題