2010-10-26 63 views
4

是否可以指定顯式的本地端口net.Stream應該使用,或找出本地端口用於連接?如何知道Stream使用的是哪個本地端口?

根據該文件,本地端口,不能規定:

stream.connect(port, host='127.0.0.1') 
+0

你想連接到服務器,或者在端口上偵聽? – mykhal 2010-10-31 21:00:24

+0

我正在連接到服務器,並試圖找出綁定到哪個本地端口客戶端套接字 – 2010-11-01 08:54:46

+0

真正的問題是:您想實現什麼目標?遠程方可以更好地確定您的端口號,因爲在NAT和代理可能進行的所有修改之後,它會看到IP地址/端口號。 – bew 2010-11-03 12:09:37

回答

1
stream.connect(port, host='127.0.0.1') 

列出指定的端口指定的地址。

如果你想打開插座,你必須使用net.createConnection(port, host='127.0.0.1')http.createServer或不服這樣的... 在Linux中顯示所有聽了插座類型netstat -an

+1

我想打開一個客戶端套接字(而不是**服務器套接字**,它對傳出連接起反應)。每個客戶端套接字都綁定到本地端口,該端口用於接收來自服務器套接字的響應。我試圖找出運行時使用哪個端口。使用'netstat -tlnp'可以弄清楚客戶端套接字使用哪個端口(通過進程ID),但我想要的東西不那麼麻煩。 – 2010-11-01 08:59:45

+1

看起來不可能通過API找出本地端口,因此我必須使用'netstat -tlnp'來獲取進程ID。 – 2010-11-03 12:33:55

+1

你可以使用socket.localPort。 – 2014-02-10 16:04:32

0

如果你控制服務器,你可以讓它告訴你。這並不美觀,但與在嘗試從NAT後面協商對等連接時不得不跳過這些環節不同。

相關問題