當我的服務器上創建一個套接字和接受傳入的連接:如何獲取python中新接受的連接的端口號?
康恩,ADDR = s.accept()
兩個打印conn.getsockname()和打印s.getsockname()打印出相同的端口號。
我以爲'conn'應該代表一個NEW套接字。我如何獲得這個新套接字的端口號?
謝謝!
當我的服務器上創建一個套接字和接受傳入的連接:如何獲取python中新接受的連接的端口號?
康恩,ADDR = s.accept()
兩個打印conn.getsockname()和打印s.getsockname()打印出相同的端口號。
我以爲'conn'應該代表一個NEW套接字。我如何獲得這個新套接字的端口號?
謝謝!
本地端口保持不變。你想要的是遠程端口。您可以使用getpeername
作爲此(或accept
的返回值的第二個元素)。
這是一個新的套接字,但它具有與原始偵聽套接字相同的本地端口。
謝謝。如果本地端口保持不變,服務器如何區分來自不同客戶端的數據流? – klyngbaek 2010-11-12 19:21:17
由源和目標接口和端口的組合。 – Amnon 2010-11-12 19:24:56
正確的說,套接字是'(主機,端口)'元組的*對*。每個*對*都是唯一的。 (+1爲好問題。) – 2010-11-12 19:59:33