@Elick

Как отправить текст с одного компьютера на другой через скрипты на Python?

как отправить текст с одного компьютера на другой через скрипты на Python, если оба компьютера находятся далеко друг от друга?

Скрипты которые работают, когда компьютеры подключены к одной сети (роутеру)
Код для сервера:
# SERVER
import socket
HOST = socket.gethostbyname(Comp_server)
PORT = 3000 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.bind((HOST, PORT))
sock.listen(1)
conn, addr = sock.accept()
data = conn.recv(1024).decode('utf-8')
print(data)


Код для Клиента:
# CLIENT
import socket
HOST = socket.gethostbyname('Comp_server')
PORT = 3000 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
sock.send('Text'.encode('utf-8'))
sock.close()


Но код не работает, если один из компьютеров подключен к другому интернету (с учетом изменения IP).
Как можно еще передать сообщение?
  • Вопрос задан
  • 1150 просмотров
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Либо настраивать маршрутизацию между хостами, либо заводить третью сетевую точку, до которой есть маршрутизация у обоих хостов.
Ответ написан
Комментировать
@rPman
Если обе машины за NATом, то можно воспользоваться UPNP (протокол управления роутером из приложений без авторизации) и открыть с его помощью на серверной стороне порт

Полистай, посмотри картинки.

Точно помню с помощью udp можно как то выходить за nat (один уровень) без поддержки upnp
Ответ написан
Комментировать
justhostRU
@justhostRU
вы должны открыть соответствующие порты в вашем firewall или сетевом экране.
но вообще текстовые файлы или любые другие файлы можно отправить с кучей софта, например scp, sshfs, ftp.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы