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, и следуйте инструкциям.
Для распостранённых моделей нверняка будет доступна инструкция на русском.