[Twisted-Python] LineReceiver and setRawMode()
ppergame at gmail.com
Thu Sep 7 15:17:06 EDT 2006
On 9/7/06, Thomas HERVE <therve at free.fr> wrote:
> Quoting jarrod roberson <jarrod at vertigrated.com>:
> > I got a simple line protocol I am trying to implement, blocks .
> > [snip]
> > inside rawDataReceived(data)
> > data = abcdeCMD 10\r\n
> > is there something in twisted that will help with this?
> > or do I need to subclass LineReceiver and add a
> > setRawMode(bytesToRead) or something?
> What I've done in this case is something like this:
> def rawDataReceived(self, data):
> self.buffer += data
> if len(self.buffer) >= self.lenExpected:
> buf = self.buffer[:self.lenExpected]
> rem = self.buffer[self.lenExpected:]
> self.buffer = ""
> if rem:
> You need to set the variable self.lenExpected. You read the data and
> when you can all what you needed, you push it back again with
setLineMode happens to take an optional argument for the remainder. You
should use that instead of calling dataReceived directly.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Twisted-Python