Package twisted :: Package protocols :: Module basic :: Class NetstringReceiver

[frames | no frames]

## Class NetstringReceiver

    BaseProtocol --+
                   |
            Protocol --+
                       |
                      NetstringReceiver

Known Subclasses:
  `SafeNetstringReceiver`

This uses djb's Netstrings protocol to break up the input into strings.

Each string makes a callback to stringReceived, with a single argument of that string.

Security features:

1. Messages are limited in size, useful if you don't want someone sending you a 500MB netstring (change MAX_LENGTH to the maximum length you wish to accept).
2. The connection is lost if an illegal message is received.

Method Summary
| ``dataReceived`(self, data)` Called whenever data is received.
| `doComma(self)`
| `doData(self)`
| `doLength(self)`
| `sendString(self, data)`
| ``stringReceived`(self, line)` Override this.
Inherited from Protocol
| ``connectionFailed`(self)` (Deprecated)
| ``connectionLost`(self, reason)` Called when the connection is shut down.
Inherited from BaseProtocol
| ``connectionMade`(self)` Called when a connection is made.
| ``makeConnection`(self, transport)` Make a connection to a transport and a server.

Class Variable Summary
`int` | `_readerLength` = 0
`int` | `_readerState` = 0
`int` | `brokenPeer` = 0
`int` | `MAX_LENGTH` = 99999
Inherited from Protocol
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.IPr...`
Inherited from BaseProtocol
`int` | `connected` = 0
`NoneType` | `transport` = None

Method Details

### dataReceived(self, data)

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.
  Overrides:
    `twisted.internet.protocol.Protocol.dataReceived` (inherited documentation)

### stringReceived(self, line)

Override this.

Class Variable Details

### _readerLength

  Type:
    `int`
  Value:

        0

### _readerState

  Type:
    `int`
  Value:

        0

### brokenPeer

  Type:
    `int`
  Value:

        0

### MAX_LENGTH

  Type:
    `int`
  Value:

        99999

Generated by Epydoc 2.0 on Sat May 15 20:08:13 2004 | http://epydoc.sf.net