您的位置:首页 > 编程语言 > Python开发

greecket - a python not block socket module base the greenlet and thread - Google Project Hosting

2013-01-08 18:30 417 查看
greecket - a python not block socket module base the greenlet and thread - Google Project Hosting

greecket,基於greenlet和threading的python非阻塞模式socket模塊。

the greecket uer mail list:

web:http://groups.google.com/group/greecket

mail:greecket@googlegroups.com

example

greecket_test.py

#!/usr/bin/env python
#!coding=utf-8

import greecket
import sys

def onConnecting(evt):
print 'connecting',evt.AsList

def onConnected(evt):
print 'connected',evt.AsList
evt.Data.send('dfsdfsfsfff')
pass

def onReceive(event):
print 'data receive:',event.AsList

def onError(evt):
print 'error:',evt.AsList
print evt.Data.args[1]
pass

def onClose(evt):
print 'close',evt.AsList

def runasserver(address):#host='localhost',port=5423):
factory=greecket.Factory(address)
print 'server',factory
factory.bind(greecket.GREE_CONNECTING,onConnecting)
factory.bind(greecket.GREE_CONNECTIONMADE,onConnected)
factory.bind(greecket.GREE_DATARECEIVED,onReceive)
factory.bind(greecket.GREE_CONNECTIONLOST,onClose)
factory.bind(greecket.GREE_ERROR,onError)
factory.listen()
return factory

def client(address):
factory=greecket.Factory(address)
print 'client',factory
factory.bind(greecket.GREE_CONNECTING,onConnecting)
factory.bind(greecket.GREE_CONNECTIONMADE,onConnected)
factory.bind(greecket.GREE_DATARECEIVED,onReceive)
factory.bind(greecket.GREE_CONNECTIONLOST,onClose)
factory.bind(greecket.GREE_ERROR,onError)
factory.bind(greecket.GREE_DATARECEIVED,onReceive)
factory.bind(greecket.GREE_ERROR,onError)
factory.connect()
return factory

if __name__=='__main__':
print sys.argv
if len(sys.argv)>2:
d=tuple((sys.argv[-2],int(sys.argv[-1])))
else:
d=('localhost',5423)
if 'server' in sys.argv:
f=runasserver(d)
else:
f=client(d)
f.mainLoop()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐