Я настроил сервер AWS EC2 для моей python веб-программы. И когда я пытался протестировать соединение с сокетом, код клиента был
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import socket
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(('x,x,x,x',60001)) # x,x,x,x is the Elastic ip for EC2 instance
while True:
msg = 'Hello'
client.send(msg.encode('utf-8'))
data = client.recv(1024)
print('recv:',data.decode())
client.close()
, а server.py -
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import socket
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(("localhost",60001))
server.listen(5)
while True:
conn,addr = server.accept()
print(conn,addr)
while True:
try:
data = conn.recv(1024)
print('recive:',data.decode())
conn.send(data.upper())
except ConnectionResetError as e:
break
conn.close()
Когда я запускаю код, клиент возвращает:
Traceback (most recent call last):
File "client.py", line 6, in <module>
client.connect(('x,x,x,x',60001)) # x,x,x,x is the Elastic ip for EC2 instance
ConnectionRefusedError: [Errno 61] Connection refused
В коде, который я запускаю, это не хххх, а реальная эластичность c ip. Кроме того, я попытался запустить telnet x.x.x.x 60001
, он возвращает
telnet: connect to address x.x.x.x: Connection refused
telnet: Unable to connect to remote host
Мои входящие правила для AWS прилагаются ниже. Кто-нибудь может помочь мне исправить это? Заранее спасибо. Кстати, операции s sh и ping разрешены как обычно