2016-10-02 132 views
0

我有一個服務器 - 客戶端工作得很好,當我試圖在我自己的機器上使用它們。但是 - 當我嘗試在同一個Lan上的兩臺不同的機器上使用它們時,它並不奏效! 這裏是我的連接:不能連接兩臺計算機之間在同一局域網插座

Lan = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Creates the socket object 
Lan.connect(('localhost', port)) 

我不明白爲什麼它應該是一個問題

回答

1

當你結合你的插座,它被綁定到特定的網絡接口,其中一個是環回接口,它是隻能從本地計算機上獲得。您可能不會綁定到您的實際網絡接口控制器(NIC)

當您綁定時您想要INADDR_ANY,儘管您沒有說出什麼編程語言,所以我不知道如何告訴您執行此操作。使用python所以它應該是一個空字符串

understanding INADDR_ANY for socket programming - c

+0

林:

這裏更多的信息。但是'本地主機'和空串之間有什麼不同呢? –

+0

localhost只監聽回送設備上的端口(一個只能從同一臺計算機使用的假冒網絡接口)。一個空字符串監聽連接到您計算機的所有網絡設備。如果您有兩個物理網絡連接,您可以指定它只偵聽其中的一個。這是路由器的工作原理。 – xaxxon

+0

謝謝你..最後一個問題 - 我做了你所說的並嘗試使用空字符串。所以我有這個:__server_tunnel.connect(('',1245))__在客戶端,和這個:__local_tunnel.bind(('',12345))__在服務器上。現在,我甚至不能連接在同一臺計算機上! –

相關問題