[Twisted-Python] Flush socket

Tobias Oberstein tobias.oberstein at tavendo.de
Thu Aug 11 17:38:49 EDT 2011

so there is no Twisted sanctioned (reactor independent and reentry safe) alternative to disable nagle (tcp nodelay) and doing a select()?

ps: to give an example of how that was at least practically useful in what i try to do .. and not only blabbing away:


for these 2 cases, the only difference are the calls to reactor.select()



by which I found


On 11.08.11 23:13, "Christopher Armstrong" <radix at twistedmatrix.com> wrote:

On Thu, Aug 11, 2011 at 5:06 PM, Tobias Oberstein <tobias.oberstein at tavendo.de> wrote:
For testing implementations of a TCP-based protocol, I am testing
if an implementation is agnostic wrt to in what chops in receives
octets from the wire ("stream clean").

To do that, I force out octets from the protocol test driver (written
in Twisted) in differently sized chops, down to single octets.

While this is a noble goal, your method isn't really right: in TCP, the chunks you write on one end do not correspond to the chunks you receive on the other end after they've gone through a TCP stack and network. The best way to verify that your client is stream clean is to write unit tests that explicitly call its dataReceived method with different-sized chunks.

Christopher Armstrong

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20110811/83ead09d/attachment-0001.htm 

More information about the Twisted-Python mailing list