Отказ в соединении в сети Windows XP - PullRequest
0 голосов
/ 01 апреля 2009

Это лишь незначительная проблема программирования, а скорее проблема сети.

Я пытаюсь заставить веб-приложение 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-способный? А. Да:

  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

Bing Bing Bing! У нас есть победитель!

Ух, я всегда рад, что это не проблема с сетью.


"Приложение Django определенно рекламирует себя по адресу 192.168.x.x, а не только по шлейфу?"

Кажется, Джон тоже был на правильном пути, но комментарий не указывал мне направление поиска - проверьте установочный вызов сервера Django.

1 Ответ

3 голосов
/ 01 апреля 2009

Я полагаю, вы используете сервер разработки django? Если это так, убедитесь, что вы запустите его, чтобы он связывался с IP-адресом, который другие компьютеры должны использовать для соединения:

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

Вы можете попросить сервер связать все адреса с помощью (я не пробовал это на Windows, я признаю):

python manage.py runserver 0.0.0.0:8000

Я боюсь, что обычное использование runserver связано только с localhost.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...