Как установить соединение между двумя разными Amazon EC2? - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь связаться от EC2 к другому EC2 через сокет.

Есть ли что-то, что мне нужно рассмотреть, кроме настройки группы безопасности?

Они к EC2 полностью отделены.

(я имею в виду, что они работают на разных учетных записях Amazon отдельно)

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('#IP ADDRESS', #PORT))
server_socket.listen(1)

client_socket, addr = server_socket.accept()
data = server_socket.recv(1024)
print(data)

Кроме того, это правильный код для использования? (Сторона сервера, а не клиент)

1 Ответ

0 голосов
/ 06 ноября 2018

Вам необходимо открыть свою группу безопасности, чтобы принимать соединения через связанный порт. Конечно, для этого вам нужно TCP-соединение, и вам нужно открывать порты в обоих случаях, а не в одном. Например, если вы хотите прослушивать порт 8080, вам нужно добавить следующее правило (в конце):

enter image description here

Одна вещь с вашим кодом, хотя, когда ваш server_socket принимает соединение, он сгенерирует новый сокет, в который вы будете получать сообщения. В вашем случае вы позвонили client_socket. Этот новый сокет будет получать сообщение, а не ваш server_socket. Я изменил имя на connection_socket.

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('#IP ADDRESS', #PORT))
server_socket.listen(1)

connection_socket, addr = server_socket.accept()
data = connection_socket.recv(1024)
print(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...