Python论坛  - 讨论区

标题:[zeuux-py:162] Re: 正在学习用python+twisted开发网络服务

2009年08月27日 星期四 11:08

Zoom.Quiet zoom.quiet在gmail.com
星期四 八月 27 11:08:03 CST 2009

去邮件列表交流使所有行者受益 ;-)
1对1沟通是种浪费哪,,,

2009/8/27 luob <lbthink在gmail.com>:
> 你好,在一个网页上看到了你的网名,见你说了用twisted做过服务器程序 ,特来请教。
> 我在研究twisted中,说异步使用要用deferred,可对deferred一直理解不全,网上信息大都出自相同,执照去做却行不通。
> 我想用deferred去实现像线程一样的功能 ,不知如何 实现,
> 如果 可能,能给你个案例参考一下,先行谢谢了。
>
> 这是我的原码:
> from twisted.internet.protocol import Factory,Protocol
> from twisted.internet import reactor,defer
> # 生成协议
> class Server_Protocol(Protocol):
>
>     def dataReceived(self,data):
>         print "Enter receive, data=%s" % data
>
>
> self.factory.get_data(data).addErrback(self.send_err).addCallback(self.send_data)
>         #上面的代码是希望在数据处理完之后,能自动发送生成的报文,或返回指定的错误
>
>     #数据将从工厂中取到 ,并发送给客户
>     def send_data(self):
>         sbuf = self.factory.get_send_data()
>         self.transport.write(sbuf)
>
>     def send_err(self):
>         print "error"
>
>     def connectionLost(self, reason):
>         print "server connect is Lost",reason
>
> #生成工厂
> class Server_Factory(Factory):
>     protocol = Server_Protocol   #为其属性protocol赋值
>
>     def __init__(self):
>         print "factory is startup"
>
>     def get_data(self,data):
>         print "operation data:",data
>         #处理数据
>         self.send_buf = '1234567890'
>
>         d = defer.Deferred()
>         return d
>
>     def get_send_data(self):
>          return self.send_buf
>
> class CallServer:
>     def __init__(self,port):
>         print "call callserver"
>         self.s_factory = Server_Factory()  #生成工厂
>
>         reactor.listenTCP(port,self.s_factory)
>         reactor.run()
> if __name__ == '__main__':
>     port = 10078
>     CallServer(port)
> 上面的代码运行后发现get_data没运行啊,客户端没收到信息。
>
>
> --
> 站在google上看世界!
>



-- 
http://zoomquiet.org 人生苦短? Pythonic!
流程是对先前蠢行的内在反应! ~ Clay Shirky (Process is an embedded reaction to prior
stupidity)http://bit.l...

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号