Форум сайта python.su
Доброго времени суток, заинтриговал вопрос, заключается он в пробросе портов , роутер у меня huawei HG8245H.
У нас есть два компьютера , каждый подключен к интернету через свои роутер, хотим передать сообщения через сокет с одного компьютера на другой.
import socket HOST = '' # Что нужно указать в качестве хоста??? PORT = 9090 # Arbitrary non-privileged port with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((HOST, PORT)) s.listen(1) conn, addr = s.accept() with conn: print('Connected by', addr) while True: data = conn.recv(1024) if not data: break conn.sendall(data)
import socket HOST = '188.19.108.47' # Сюда прописываем внешний ip (сайт - [url=2ip.ru]Your text to link here...[/url]) PORT = 9090 # The same port as used by the server with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect((HOST, PORT)) s.sendall(b'Hello, world') data = s.recv(1024) print('Received', repr(data))
Офлайн
sosok43k0.0.0.0
Что нужно указать в качестве хоста?
Офлайн
sosok43kв каком смысле “попытка не увенчалась успехом”? не удалось пробросить порты или проброс удался но скрипт не работает?
Пытались пробросить порт 9090 в роутере, попытка не увенчалась успехом.В какую сторону дальше рыть?
sosok43kничего не нужно, так и оставте '' тогда сервер будет доступен для всех интерфейсов. Или впишите 0.0.0.0 как советует py.user.next что вобщем-то равнозначно.
Что нужно указать в качестве хоста???
[code python][/code]
Офлайн
> Сюда прописываем внешний ip
ip статический?
Офлайн
RodegastНет, динамический
>ip статический?
Офлайн
> Нет, динамический
Тогда эти машины скорей всего за провайдерским NAT-ом сидят. Обе машины друг друга пингуют?
Офлайн
sosok43kтак надо прописывать адрес принимающей машины то есть сервера а не свой. для этого сервер должен получить свой ip и как то передать хосту. я делал так. на машине с сервром установлен яндекс диск и в его папке файл тхт на который имеется ссылка для доступа по сети. при запуске сервер получает свой внешний ip и перезаписывает в файл. хост при запуске обращается к файлу по известной ссылке читает ip и уже по нему подключается. после настройки проброса порта запустите сервер и проверьте а доступен ли порт на том же
HOST = ‘188.19.108.47’ # Сюда прописываем внешний ip
Отредактировано marvellik (Окт. 4, 2018 11:04:32)
Офлайн
RodegastНет
Обе машины друг друга пингуют?
Офлайн
1) отладьте Ваш код на машин в пределах одной сети (даже localhost)
2) решите проблемы сетевого доступачерез пинги и/или http запросы
3) запустите Ваш код на разных машинах
Офлайн
> Нет
Ну значит NAT его режет. У тебя должен быть хотя бы один статический адрес что бы оно заработало.
Офлайн