В настоящее время я использую два разных экземпляра AWS, чтобы попытаться установить связь, используя два файла python: один клиент и один сервер.Один экземпляр, Server, имеет копию файла сервера и файла клиента.Другой экземпляр, Клиент, имеет только копию файла клиента.
Проблема в том, что когда я запускаю файл клиента на экземпляре Сервера, он работает, как и предполагалось.Однако, когда я запускаю файл клиента на экземпляре Client, он зависает при вызове socket.connect.
server.py
import socket
# create a socket object
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# get local machine name. I have also used ''
host = socket.gethostname()
# I use this print to set the host name in the client file.
print(host)
port = 12000
# bind to the port
serversocket.bind((host, port))
# queue up to 5 requests
serversocket.listen(5)
while True:
# establish a connection
clientsocket,addr = serversocket.accept()
print("Got a connection from %s" % str(addr))
msg='Thank you for connecting'+ "\r\n"
clientsocket.send(msg.encode('ascii'))
clientsocket.close()
client.py
import socket
# create a socket object
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# host is hard-coded to the output of the server file's gethostname() result
# hard-coded value from server.py
host = '###.##.##.##'
port = 12000
# connect. This is where the code hangs when run in the terminal
s.connect((host, port))
# Receive no more than 1024 bytes
msg = s.recv(1024)
s.close()
print (msg.decode('ascii'))
Я также проверил свою группу безопасности на экземплярах AWS.У них обоих одинаковая группа безопасности, которая включает в себя:
Custom ICMP Rule - IPv4 Echo Reply N/A 0.0.0.0/0 ICMP
Custom ICMP Rule - IPv4 Echo Reply N/A ::/0 ICMP
, которая, по моему мнению, должна позволить вещам работать правильно.
Я не уверен относительно того, где я могу пойти не так.Я уверен, что оба клиентских файла одинаковы и оба сервера имеют одинаковую группу безопасности.Я прочитал, что socket.gethostname () должен возвращать значение, доступное для общественности, поэтому я не думаю, что мой адрес хоста неправильный.Номер порта также правильный.Любая помощь будет принята с благодарностью.