О скрученных документах

1

Я новичок в Twisted. Недавно я читаю книгу "Основы витой поддержки сети". Пример 2-3 В этой книге, как показано ниже:

class QuickDisconnectProtocol(protocol.Protocol): 

def connectionMade(self): 

    print "Connected to %s." % self.transport.getPeer( ).host 

    self.transport.loseConnection( ) 

==================================

self.transport.loseConnection( )

где член "транспорт"? Я не мог найти это в Протоколе.

Тот же вопрос, когда дело доходит до Ex2-4...

Кто-нибудь знает, как читать Twisted Documents? Благодарю!

Теги:
twisted

1 ответ

1
Лучший ответ
def makeConnection(self, transport): ([source][1])
    """
    overridden in twisted.protocols.amp.BinaryBoxProtocol,
    twisted.protocols.ftp.ProtocolWrapper, twisted.protocols.ftp.SenderProtocol, 
    twisted.protocols.policies.ProtocolWrapper, 
    twisted.protocols.stateful.StatefulProtocol'

    Make a connection to a transport and a server.
    This sets the 'transport' attribute of this Protocol, and calls the connectionMade() 
    callback.
    """

Транспорт - это соединение с тем, что вы используете, например, telnet, SSH, файл и т.д. Поиск в онлайн-документах API для transport и см.

http://twistedmatrix.com/documents/8.2.0/api/twisted.conch.ssh.transport.SSHTransportBase.html

Вот некоторые из существующих транспортных средств: http://twistedmatrix.com/documents/8.2.0/api/twisted.internet.interfaces.ITransport.html

Known subclasses: twisted.conch.insults.insults.ITerminalTransport, 
twisted.conch.telnet.ITelnetTransport, twisted.internet.interfaces.IProcessTransport, 
twisted.internet.interfaces.ITCPTransport

Known implementations: twisted.conch.ssh.channel.SSHChannel, 
twisted.internet._posixstdio.StandardIO, twisted.internet._win32stdio.StandardIO, 
twisted.internet.abstract.FileDescriptor, twisted.internet.iocpreactor.abstract.FileHandle, 
twisted.internet.protocol.FileWrapper, twisted.protocols.loopback._LoopbackTransport, 
twisted.protocols.loopback.LoopbackRelay

В зависимости от того, где вы хотите подключиться, вы используете один из них, когда вы вызываете makeConnection(transport), а когда вы это делаете, он становится атрибутом протокола.

  • 0
    Спасибо! Я поймал, что «Это устанавливает атрибут« transport »этого Протокола». Где я могу найти атрибут «« transport »этого Протокола» в документе? Я проверил реализацию некоторого протокола, такого как ssh, но не имею понятия, где находится транспорт атрибутов?
  • 0
    Транспорт не является частью протокола - любой протокол может использовать разные виды транспорта. Он передается в протокол, когда makeConnection (я полагаю, пользователь), и тогда Python назначает его transport атрибуту. Итак, сначала вы выбираете транспорт (я отредактировал свой пост, чтобы перечислить некоторые), затем вы вызываете self.makeConnection(transport) и он становится атрибутом протокола.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню