Как перенести локальный сервер в сеть 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.


Ответы (0 шт):