服务器到亚马逊 EC2 实例与 python 的通信?

Posted

技术标签:

【中文标题】服务器到亚马逊 EC2 实例与 python 的通信?【英文标题】:Server to amazon EC2 instance communication with python? 【发布时间】:2012-01-16 15:02:56 【问题描述】:

我有这个。但它只适用于本地。运行客户端时,我总是收到连接超时。 服务器上的端口对默认安全组开放。

server.py:

import SocketServer

class MyTCPHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        self.data = self.request.recv(1024).strip()
        print self.client_address
        print self.data
        self.request.send(self.data.upper())

if __name__ == "__main__":
    HOST, PORT = "", 9800
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
    server.serve_forever()

client.py:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto('Hello, world\n'('host.ip',  9800))
data = s.recv(1024)
s.close()

【问题讨论】:

【参考方案1】:

在客户端上,您使用的是socket.SOCK_DGRAM,即UDP,但您使用的是TCP 服务器(即socket.SOCK_STREAM)。

【讨论】:

【参考方案2】:

看起来您正在打开端口 9800 但正在与端口 9999 通信

【讨论】:

非常正确 - 我错误地写下了我的示例。非常抱歉,我已经更正了。【参考方案3】:

代码运行正常。

在 AWS 控制台的 Networking and Security 选项卡中选择 Security Groups 并在“入站”选项卡下的默认安全配置文件中 - 将您的端口添加到列表中。 ..

使用0.0.0.0/0 源将侦听所有端口。

【讨论】:

以上是关于服务器到亚马逊 EC2 实例与 python 的通信?的主要内容,如果未能解决你的问题,请参考以下文章

升级亚马逊 ec2 实例

亚马逊云EC2助力5G产品测试

为啥一个亚马逊 ec2 实例需要两个弹性 IP?

phpmyadmin 无法在亚马逊 ec2 实例上的 linux ami 中的 nginx Web 服务器上工作

使用亚马逊的云服务器EC2做深度学习申请竞价实例

从亚马逊 ec2 实例发送电子邮件时后缀日志显示错误