简单的Python TCP服务器在Amazon EC2实例上无法工作
我正在我的EC2上运行一个简单的Python TCP服务器,监听6666端口。我已经创建了一个入站TCP防火墙规则来开放6666端口,并且对外发出的端口没有任何限制。
但是,我无法从外部连接到我的实例,使用telnet或netcat测试时总是无法建立连接。不过,从本地连接是可以的。
有没有什么想法可能出了问题?
#!/usr/bin/env python
import socket
TCP_IP = '127.0.0.1'
TCP_PORT = 6666
BUFFER_SIZE = 20 # Normally 1024, but we want fast response
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connection address:', addr
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
print "received data:", data
conn.send(data) # echo
conn.close()
1 个回答
10
你的TCP_IP只是在本地监听,因为你把监听的IP设置成了127.0.0.1。
把TCP_IP = "0.0.0.0"
改成这样,它就会在“所有”接口上监听,包括你对外的IP地址。