2016-10-02 133 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))__在服务器上。现在,我甚至不能连接在同一台计算机上! –

相关问题