Python Twisted TCP/IP-соединение

У меня есть учетная запись Linode, и я пытаюсь связаться с помощью telnet с базовым сервером TCP/IP, написанным на Python (Twisted), установленным в linode с ubuntu lts:

import os
from twisted.internet import protocol, reactor

class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)

class EchoFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Echo()

port = 5000
reactor.listenTCP(port, EchoFactory(), interface="<my linode's ip>")
reactor.run()

Я подумал, что могу просто сделать telnet <my linode's ip> 5000 и иметь возможность отправлять и получать сообщения с сервера, например, когда я тестирую приложение локально с помощью telnet localhost <some port> Не могли бы вы направить меня к какому-то руководству или справочнику, который поможет мне выполнить это? Я думаю, мне нужно что-то настроить на линоде, где установлено серверное приложение? Это слишком сложно? Спасибо.


person user2009400    schedule 27.01.2013    source источник
comment
reactor.listenTCP(port, EchoFactory(), interface='<my linode's ip>') не является допустимым Python - кавычка после linode должна быть экранирована.   -  person phihag    schedule 28.01.2013
comment
Это похоже на вопрос системного администратора linode, а не на вопрос программирования? Возможно, это лучше подойдет для одного из других сайтов stackoverflow.   -  person Jean-Paul Calderone    schedule 28.01.2013


Ответы (2)


Я не знаком с линодом, но я предполагаю, что вам нужно открыть порт 5000 в брандмауэре, чтобы иметь возможность подключиться. Вы можете убедиться в этом, выполнив ту же команду telnet из сеанса ssh на вашем экземпляре linode. Если он работает оттуда, это определенно брандмауэр.

person Marek Kowalski    schedule 27.01.2013

Этот код правильный. Может у вас проблема в брандмауэре, вы можете протестировать этот код через подключение к локальному хосту? telnet localhost 5000 И можно ли изменить на 0.0.0.0?

person YBW    schedule 27.01.2013