服务器到AmazonEC2实例与python的通信?
我有这个。但它只在本地起作用。运行客户端时,我总是收到连接超时。 服务器上的端口对默认安全组开放 server.py:服务器到AmazonEC2实例与python的通信?,python,amazon-ec2,tcp-ip,server-to-server,Python,Amazon Ec2,Tcp Ip,Server To Server,我有这个。但它只在本地起作用。运行客户端时,我总是收到连接超时。 服务器上的端口对默认安全组开放 server.py: import SocketServer class MyTCPHandler(SocketServer.BaseRequestHandler): def handle(self): self.data = self.request.recv(1024).strip() print self.client_address
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()
看起来您正在打开端口9800,但与端口9999通话时,代码工作正常 在AWS控制台的“网络和安全”选项卡内选择“安全组”,并在“入站”选项卡下的默认安全配置文件内-将您的端口添加到列表中
使用
0.0.0.0/0
源将侦听所有端口。在客户端上,您使用的是socket.SOCK\u DGRAM
,它是UDP,但您使用的是TCP服务器(它将是socket.SOCK\u流
) 非常正确-我错误地写下了我的示例。非常抱歉,我已经更正了。