ype*_*eᵀᴹ 3 python twisted telnet
我有一个项目本质上是一个游戏服务器,用户通过telnet连接和发送文本命令.
代码是在C中,非常古老和非模块,并有几个错误和缺少功能.仅主要功能是代码的一半.
我得出的结论是,使用Twisted在Python中重写它实际上可以带来更快的完成,除了其他好处.
所以,问题是:我应该使用哪些软件包和模块?我在"protocols"包中看到了一个"telnet"模块.我还看到"cronch"包带有"ssh"和另一个"telnet"模块.
我是Python的完全新手.
Greg建议在尝试使用Twisted之前尝试熟悉Python,这可能是一个合理的建议.限制混乱的可能来源可以帮助您避免一些非常令人沮丧的情况.
另一方面,我认识很多人将基于Twisted的项目作为第一次Python学习体验,并取得成功.所以这是可能的.你必须先做点什么.无法保证您选择的内容而不是Twisted会更容易.:)
至于telnet的具体细节,你想要使用twisted.conch.telnet,而不是twisted.protocols.telnet.前者是更新的,更好的测试,更有特色,并有几个例子(尽管不幸的是,除此之外没有很多文档).
主telnet示例显示了您可以定义的最有用的事件处理程序(如果使用)twisted.conch.telnet.不幸的是,它并没有真正解释他们做了什么,也没有说明你如何谈判选择.如果您已经熟悉telnet协议本身(主要是它的选项协商部分),这对您来说应该是有意义的.如果你认为"telnet"只是一种在两台计算机之间传递人类可读/可写字节的方法,那么你可能之前没有遇到过选项协商,这可能没什么意义.您可以忽略它,或者查看telnet RFC以了解更多信息(尽管它有点密集).
为了自己执行选项协商,你至少可以看一下你在上面链接的例子中看到的对象的API文档self.transport(这不是常规的TCP传输,因为你会发现在Twisted的大部分时间里使用它,但是特殊的telnet派生的传输,位于TCP之上,因此它有一些额外的功能).
但是,如果你只想传递字节,那么你可以专注于dataReceived方法和on self.transport.write.当您从对等方接收字节时,将调用前者; 后者你可以调用发送字节给你的同行.
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |