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

[show private | hide private]
[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
| ``connectionFailed`(self)` (Deprecated) (inherited from `Protocol`)
| ``connectionLost`(self, reason)` Called when the connection is shut down. (inherited from `Protocol`)
| ``connectionMade`(self)` Called when a connection is made. (inherited from `BaseProtocol`)
| ``dataReceived`(self, data)` Called whenever data is received.
| `doComma(self)`
| `doData(self)`
| `doLength(self)`
| ``makeConnection`(self, transport)` Make a connection to a transport and a server. (inherited from `BaseProtocol`)
| `sendString(self, data)`
| ``stringReceived`(self, line)` Override this.

Class Variable Summary
`int` | `brokenPeer`
`int` | `MAX_LENGTH`
`int` | `_readerLength`
`int` | `_readerState`

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

### brokenPeer

  Type:
    `int`
  Value:

        0

### MAX_LENGTH

  Type:
    `int`
  Value:

        99999

### _readerLength

  Type:
    `int`
  Value:

        0

### _readerState

  Type:
    `int`
  Value:

        0

Generated by Epydoc 1.1 on Sat Feb 15 21:19:11 2003 | http://epydoc.sf.net