[Twisted-Python] Help implement protocol

Thomas Jacob jacob at internet24.de
Mon Aug 7 05:16:37 EDT 2006


Maybe you want to take a look at the FTPClientBasic class
in
http://twistedmatrix.com/trac/browser/trunk/twisted/protocols/ftp.py .

There the author basically uses a queue of actions (=hand shakes) to
be run, associating response lines to commands, and returning
the results via deferreds....

On Sat, 2006-08-05 at 11:44 +0800, Keith Cheung (張國良) wrote:
> Hi all,
> 
> I want to implement some handshake protocol, say..
> 
> 1. Client:	WhatDate
> 2. Server: 	5Aug
> 3. Client:	WhatYear
> 4. Server:	2006
> 5. Client:	WhatTime
> 6. Server:	1005
> 
> So, for the client:-  (pseudo code)
> 	def connectionMade():
> 		send "WhatDate"
> 		state = askingForDate
> 	def lineReceived(data):
> 		switch state:
> 			askingForDate:
> 				date = data
> 				send "WhatYear"
> 				state = askingForYear
> 				break
> 			askingForYear:
> 				year = data
> 				send = "WhatTime"
> 				state = askingForTime
> 				break
> 			askingForTime:
> 				time = data
> 				state = initialState
> 				disconnect
> 
> The switch case becomes gigantic as the protocol grow.  Instead of keeping states, are there better ways to implement?
> 
> 
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part
Url : http://twistedmatrix.com/pipermail/twisted-python/attachments/20060807/02235788/attachment.pgp 


More information about the Twisted-Python mailing list