如何在2个不同的Amazon EC2之间进行套接字通信?

时间:2018-11-06 14:37:07

标签: python amazon-ec2 tcp

我正在尝试通过套接字从EC2与另一个EC2通信。

除了配置安全组外,还有什么需要考虑的吗?

这些与EC2完全分开。

(我是说它们分别在不同的亚马逊帐户上运行)

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 :(得分:0)

您需要打开安全组才能接受绑定端口中的连接。当然,您需要为此使用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)