Проблема с подключением к серверу по глобальному IP-адресу в Python
Я написал приложение, состоящее из сервера и клиента, использующих сокеты для обмена сообщениями. Код работает корректно, когда я использую локальный IP-адрес, но когда я пытаюсь заменить локальный IP на глобальный, ничего не происходит и выдается ошибка:
TimeoutError: [WinError 10060] Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера
Вот код сервера:
import socket
sock = socket.socket()
sock.bind(('', 9090))
sock.listen(1)
conn, addr = sock.accept()
print('connected:', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.send(data.decode().upper().encode())
conn.close()
Вот код клиента:
import socket
def send_message(message, host, port):
# Создаем сокет
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host, port)) # Устанавливаем соединение
client_socket.send(message.encode())
print(f"Сообщение '{message}' отправлено на {host}:{port}")
# Получаем ответ от сервера
response = client_socket.recv(1024)
print(f"Ответ от сервера: {response.decode()}")
client_socket.close()
if __name__ == "__main__":
global_ip = '192.168.56.1' # Локальный IP
port = 9090
message = "Привет, сервер!"
send_message(message, global_ip, port)