Как перенести локальный сервер в сеть python?
У меня есть такой код сервера:
import socket
sock = socket.socket()
sock.bind(('', 9090))
sock.listen(2)
while True:
conn, addr = sock.accept()
print('connected:', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.send(bytes(data.decode('utf-8').upper(), encoding='utf-8'))
conn.close()
И есть такой код клиента:
import socket
import time
sock = socket.socket()
sock.connect(('localhost', 9090))
while True:
s= input()
if s == 'no':
sock.close()
break
sock.send(bytes(s, encoding='utf-8'))
data = sock.recv(1024)
print(data.decode('utf-8'))
Можно ли сделать так, чтобы я мог обращаться к серверу из внешней сети? Т.е запустив сервер где-то удаленно(за пределами nat) и зная нужный ip и порт, я мог бы без ошибок выполнить код клиента. Подключение через wifi роутер, при этом wan ip на роутере не совпадает с внешним ip, который я посмотрел на 2ip.ru.