Сервер для связи экземпляра Amazon EC2 с питоном? - PullRequest
0 голосов
/ 09 декабря 2011

У меня есть это.Но это работает только локально.Я всегда получаю тайм-аут подключения при запуске клиента.Порт сервера открыт для группы безопасности по умолчанию.

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()

Ответы [ 3 ]

1 голос
/ 09 декабря 2011

На клиенте вы используете socket.SOCK_DGRAM, который UDP , но вы используете сервер TCP (который будет socket.SOCK_STREAM).

0 голосов
/ 09 декабря 2011

Код работает правильно.

В консоли AWS на вкладке Сеть и безопасность выберите Группы безопасности и в профиле безопасности по умолчанию в разделе «Входящие».tab - добавьте ваш порт в список ...

с использованием источника 0.0.0.0/0 будет прослушивать все порты.

0 голосов
/ 09 декабря 2011

Похоже, вы открываете порт 9800, но говорите с портом 9999

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