Ошибка подключения к сокету на AWS EC2 - PullRequest
0 голосов
/ 09 апреля 2020

Я настроил сервер 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 разрешены как обычно

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...