twisted.internet.protocol.Protocol(BaseProtocol)
class documentationtwisted.internet.protocol
(View In Hierarchy)
Known subclasses: twisted.conch.client.agent.SSHAgentForwardingLocal, twisted.conch.insults.helper.TerminalBuffer, twisted.conch.insults.insults.ClientProtocol, twisted.conch.insults.insults.ServerProtocol, twisted.conch.ssh.agent.SSHAgentClient, twisted.conch.ssh.agent.SSHAgentServer, twisted.conch.ssh.filetransfer.FileTransferBase, twisted.conch.ssh.forwarding.SSHForwardingClient, twisted.conch.ssh.session.SSHSessionClient, twisted.conch.ssh.transport.SSHTransportBase, twisted.conch.telnet.Telnet, twisted.conch.telnet.TelnetProtocol, twisted.conch.test.test_conch.ConchTestForwardingPort, twisted.conch.test.test_conch.Echo, twisted.conch.test.test_session.MockProtocol, twisted.conch.test.test_ssh.CrazySubsystem, twisted.internet.endpoints._WrappingProtocol, twisted.internet.test.connectionmixins.ConnectableProtocol, twisted.internet.test.test_endpoints.StubApplicationProtocol, twisted.internet.test.test_endpoints.TestProtocol, twisted.internet.test.test_tcp.FakeProtocol, twisted.internet.test.test_tcp.StopStartReadingProtocol, twisted.internet.test.test_win32serialport.CollectReceivedProtocol, twisted.internet.testing.AccumulatingProtocol, twisted.names.dns.DNSProtocol, twisted.protocols.basic.IntNStringReceiver, twisted.protocols.basic.LineOnlyReceiver, twisted.protocols.basic.LineReceiver, twisted.protocols.basic.NetstringReceiver, twisted.protocols.ftp.DTP, twisted.protocols.ftp.ProtocolWrapper, twisted.protocols.ftp.SenderProtocol, twisted.protocols.haproxy.test.test_wrapper.StaticProtocol, twisted.protocols.policies.ProtocolWrapper, twisted.protocols.portforward.Proxy, twisted.protocols.socks.SOCKSv4, twisted.protocols.socks.SOCKSv4Incoming, twisted.protocols.socks.SOCKSv4Outgoing, twisted.protocols.stateful.StatefulProtocol, twisted.protocols.test.test_tls.AccumulatingProtocol, twisted.protocols.wire.Chargen, twisted.protocols.wire.Daytime, twisted.protocols.wire.Discard, twisted.protocols.wire.Echo, twisted.protocols.wire.QOTD, twisted.protocols.wire.Time, twisted.protocols.wire.Who, twisted.runner.inetd.InetdProtocol, twisted.spread.banana.Banana, twisted.test.process_twisted.Echo, twisted.test.stdio_test_consumer.ConsumerChild, twisted.test.stdio_test_halfclose.HalfCloseProtocol, twisted.test.stdio_test_hostpeer.HostPeerChild, twisted.test.stdio_test_lastwrite.LastWriteChild, twisted.test.stdio_test_loseconn.LoseConnChild, twisted.test.stdio_test_producer.ProducerChild, twisted.test.stdio_test_write.WriteChild, twisted.test.stdio_test_writeseq.WriteSequenceChild, twisted.test.test_amp.TestProto, twisted.test.test_amp.TotallyDumbProtocol, twisted.test.test_ftp._BufferingProtocol, twisted.test.test_ftp.PrintLines, twisted.test.test_internet.MyProtocol, twisted.test.test_loopback.LoopbackRelayTest.Receiver, twisted.test.test_policies.EchoProtocol, twisted.test.test_policies.SimpleProtocol, twisted.test.test_policies.TimeoutTester, twisted.test.test_ssl.ImmediatelyDisconnectingProtocol, twisted.test.test_ssl.RecordingClientProtocol, twisted.test.test_ssl.SingleLineServerProtocol, twisted.test.test_sslverify.DataCallbackProtocol, twisted.test.test_sslverify.WritingProtocol, twisted.test.test_tcp.ClosingProtocol, twisted.test.test_tcp.ConnectionLosingProtocol, twisted.test.test_tcp.ConnectionLostNotifyingProtocol, twisted.test.test_tcp.LargeBufferReaderProtocol, twisted.test.test_tcp.LargeBufferWriterProtocol, twisted.test.test_tcp.NoopProtocol, twisted.test.test_tcp.ReaderProtocol, twisted.test.test_tcp.WriterProtocol, twisted.test.test_tpfile.BufferingServer, twisted.test.test_tpfile.FileSendingClient, twisted.web._http2.H2Connection, twisted.web._newclient.HTTP11ClientProtocol, twisted.web.client._ReadBodyProtocol, twisted.web.sux.XMLParser, twisted.web.test.test_agent.SimpleAgentProtocol, twisted.web.test.test_agent.StubHTTPProtocol, twisted.words.protocols.irc.DccFileReceiveBasic, twisted.words.protocols.irc.DccSendProtocol, twisted.words.protocols.irc.IRC, twisted.words.test.test_xmlstream.DummyProtocol, twisted.words.xish.xmlstream.XmlStream
Implements interfaces: twisted.internet.interfaces.ILoggingContext, twisted.internet.interfaces.IProtocol
This is the base class for streaming connection-oriented protocols.
If you are going to write a new connection-oriented protocol for Twisted, start here. Any protocol implementation, either client or server, should be a subclass of this class.
The API is quite simple. Implement dataReceived
to handle both event-based and synchronous input; output can be sent
through the 'transport' attribute, which is to be an instance that
implements twisted.internet.interfaces.ITransport
.
Override connectionLost
to be notified when the connection
ends.
Some subclasses exist already to help you write common types of
protocols: see the twisted.protocols.basic
module for a few of them.
Method | logPrefix | Return a prefix matching the class name, to identify log messages related to this protocol instance. |
Method | dataReceived | Called whenever data is received. |
Method | connectionLost | Called when the connection is shut down. |
Inherited from BaseProtocol:
Method | makeConnection | Make a connection to a transport and a server. |
Method | connectionMade | Called when a connection is made. |
Return a prefix matching the class name, to identify log messages related to this protocol instance.
Called whenever data is received.
Use this method to translate to a higher-level message. Usually, some callback will be made upon the receipt of each complete protocol message.
Parameters | data | a string of indeterminate length. Please keep in mind that you will probably need to buffer some data, as partial (or multiple) protocol messages may be received! I recommend that unit tests for protocols call through to this method with differing chunk sizes, down to one byte at a time. |
Called when the connection is shut down.
Clear any circular references here, and any external references to this Protocol. The connection has been closed.