Sockets python на не локальном хосте

Нужна помощь при подключении сервера и клиента не на локальном хосте. Я перепробовал много способов сделать это и искал информацию по этой теме, но нигде не смог ее найти. Скажите пожалуйста, что я делаю не так?

Сервер:

import socket

serv_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM, proto=0)
serv_sock.bind(('0.0.0.0', 8090))
serv_sock.listen(10)

while True:
    client_sock, client_addr = serv_sock.accept()
    print('Connected by', client_addr)

    while True:
        data = client_sock.recv(1024)
        if not data:
            break
        client_sock.sendall(data)

    client_sock.close()

Клиент:

import socket

client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_sock.connect(('193.109.**.**', 8090)) 
client_sock.sendall(b'Hello, world')
data = client_sock.recv(1024)
client_sock.close()
print('Received', repr(data))

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

Автор решения: user403155

Информация в вашем последнем комментарии является верной. Вам необходимо откыть и перенаправить порт 8090 (или любой другой) на роутере, с которым вы подключены к интернету, на машину, где у вас запущен сервер.

Наберите в поисковике: <модель роутера> port forwarding, и следуйте инструкциям.
Для распостранённых моделей нверняка будет доступна инструкция на русском.

→ Ссылка