[Spread-users] spread Communication Protocol

Bill Noon noon at snow.nrcc.cornell.edu
Wed Apr 9 08:42:57 EDT 2008


On Apr 9, 2008, at 3:21 AM, wglin122 wrote:

> hi:
> I am a green hand of spread and now learning spread Communication  
> Protocol
> I'm writing a spread client by python which is try to connect to the
> spread server.
> Now I have several problems of Spread communication with python.Please
> help me to make the connect protocol right.
> Thanks a lot!
>

Unless you are trying to learn about the Spread protocol  
implementation, it is much easier to use the standard python wrappers.

For spread version 3.17.3: http://zope.org/Members/tim_one/spread

For spread version 4, I have provided a patch to the above code in  
the following mailing list post:
	http://commedia.cnds.jhu.edu/pipermail/spread-users/2006-December/ 
003168.html

I don't know if Tim Peters is still interested in hosting the  
wrapper, but I would favor consolidating the code and putting it on  
one site linked from spread.org (the current link is out of date).

With the python wrapper, you have access to a high level interface:

import spread
mbox = spread.connect('5555 at 10.55.37.105')
mbox.join('purge_gz')
print mbox.private_group
mbox.multicast(spread.AGREED_MESS,'purge_gz','test message', 1)

# the following will block until a message arrives
msg = mbox.receive()

# there will be several messages including the one sent above

print msg.group      # group message sent to
print msg.members    # list of members who received the message
print msg.message    # string buffer of the contents of the message  
('test message') above
print msg.msg_type   # 1 in the above case

mbox.leave('purge_gz')
mbox.disconnect()


Hope that helps.

--Bill Noon
Northeast Regional Climate Center
Cornell University





More information about the Spread-users mailing list