Windows XP网络上的连接被拒绝

时间:2009-04-01 19:35:21

标签: python networking

这只是一个编程问题,更多的是网络问题。

我正在尝试在我的家庭网络中运行Django网络应用程序,但我无法让网络上的任何计算机进入网页。我没有运气就在端口80和8000上运行。错误消息是:“Firefox无法在192.168.x.x建立与服务器的连接。”

我尝试在客户端使用python中的套接字:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect ( ("192.168.x.x", 80) )

我只是得到“socket.error(10061,'拒绝连接')”。有趣的是,我可以连接端口25。

没有运行Windows防火墙。电缆调制解调器前面有一个NetGear路由器/防火墙。

我应该怎样配置这个?


也尝试过:

import urllib2
urllib2.urlopen("http://192.168.x.x/")

同样的事情。


Re:“你能从正在运行的机器上看到Django应用吗?”

是。它可以在同一台机器上运行。它不适用于整个网络。

我还可以将服务器设置为在我选择的任何端口(80,8000等)上运行,并且可以在本地访问,而不是通过网络访问。


Q值。它是netstat-able吗? 答:是的:

  Proto  Local Address          Foreign Address        State
  ....
  TCP    D3FL2J71:http          localhost:1140         TIME_WAIT
  TCP    D3FL2J71:http          localhost:1147         TIME_WAIT

我在本地的两个浏览器窗口中显示了该网站。


使用显式外部端口(不依赖于localhost):

python manage.py runserver 192.168.x.x:8000
冰冰冰冰!我们有一个胜利者!

哇,我很高兴这不是网络问题。


“Django应用程序肯定会在192.168.x.x地址上宣传自己而不仅仅是在环回适配器上?”

Jon似乎也在正确的轨道上,但是评论没有指出我的方向 - 检查Django服务器的设置调用。

1 个答案:

答案 0 :(得分:3)

我假设您正在运行django dev服务器?如果是这样,请确保启动它以便它将绑定到其他计算机需要用于连接的IP地址:

python manage.py runserver 192.168.x.x:8000

您可以要求服务器绑定到所有地址(我自己也没试过这个地址,我承认):

python manage.py runserver 0.0.0.0:8000

正常的runserver使用只绑定到localhost,我很害怕。