服务器到亚马逊 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 的通信?的主要内容,如果未能解决你的问题,请参考以下文章