我正在尝试通过套接字从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)
此外,它是使用正确的代码吗? (服务器端,而不是客户端)
答案 0 :(得分:0)
您需要打开安全组才能接受绑定端口中的连接。当然,您需要为此使用TCP连接,并且需要打开两个实例上的端口,而不仅仅是一个。例如,如果要侦听8080端口,则需要添加以下规则(最后一个规则)。
代码中有一件事情,当您的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)