为了账号安全,请及时绑定邮箱和手机立即绑定

试图运行McKellar&Fettig的Twisted书中的第一个示例的异常

试图运行McKellar&Fettig的Twisted书中的第一个示例的异常

繁星点点滴滴 2021-03-29 17:07:02
我正在尝试修改Twisted,看看它到底是怎么回事。因此,我买了杰西卡·麦凯拉(Jessica McKellar)和阿贝·费蒂格(Abe Fettig)撰写的第二版《扭曲》,下载并安装了Python,Twisted和zope.interface,并尝试输入并运行第12页上的第一个示例:from twisted.internet import reactor, protocolclass EchoClient(protocol.Protocol):    def connectionMade(self):        self.transport.write("Hello, Stupid!")    def dataReceived(self, data):        print "Server said: ", data        self.transport.loseConnection()class EchoFactory(protocol.ClientFactory):    def BuildProtocol(self, addr):        return EchoClient()    def clientConnectionFailed(self, connector, reason):        print "Connection Failed."        reactor.stop()    def clientConnectionLost(self, connector, reason):        print "Connection lost."        reactor.stop()reactor.connectTCP("localhost", 8000, EchoFactory())reactor.run()也有一个服务器部分。我运行了服务器程序,然后在另一个cmdline窗口中运行了客户端程序(如上)。它产生了:"Unhandled ErrorTraceback..  (several lines - see attached screen-capture (oops - this won't let me attach images!)在callWithContext中的文件“ C:\ Python27 \ lib \ site-package \ twisted \ python \ context.py”第81行---文件“ C:\ Python27 \ lib \ site-packages \ twisted \ internet \ selectreactor.py”,第151行,_doReadOrWrite为什么= getattr(selectable,method)()文件“ C:\ Python27 \ lib \ site-packages \ twisted \ internet \ tcp.py”,第593行,doConnect self._connectDone ().. exceptions.TypeError:'NoneType'对象不可调用。连接失败。如果我是Python专家,那么这个问题可能对我来说更清楚了,但我对此很陌生-来自C#,F#,C ++背景。您认为可能是什么原因造成的-其他人遇到了这个问题吗?令人沮丧-如果我什至无法获得第一个完全平凡的示例来运行,我不能说这是一项简单的技术!我使用的是Windows 8 x64,Python 2.7.5,Twisted 13.0.0(安装程序为Twisted-13.0.0.win-amd64-py2.7.msi),并且我添加了python(C:\ Python27 )和PATH env变量的脚本。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

我在这里盲目射击,但我认为问题出在小错字上,而不是BuildProtocol应该读成buildProtocol。当EchoFactory实例尝试返回新的协议实例时会出现错误-它返回None而不是EchoClient实例,这在None以后很麻烦。


查看完整回答
反对 回复 2021-04-02
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信