the*_*tro 5 python irc twisted
我正在尝试使用IRC服务器/客户端的扭曲库进行一些实验.我已经找到了一些如何实现IRC客户端的好例子,但似乎在服务器方面找到了一些好东西.任何人都可以提供一些有关如何创建扭曲的基本IRC服务器的见解?
编辑:如何建立这个?我在这里正确的方向吗?
from twisted.internet.protocol import ServerFactory
from twisted.internet import reactor
from twisted.words.protocols.irc import IRC
class IRCServer(IRC):
def connectionMade(self):
print "client connected"
def handleCommand(self, command, prefix, params):
print "handle comm"
IRC.handleCommand(self, command, prefix, params)
def dataReceived(self, data):
print "data: %s" % data
IRC.dataReceived(self, data)
def irc_unknown(self, prefix, command, params):
print "%s, %s, %s, IRC UNKNOWN" % (prefix, command, params)
def irc_USER(self, prefix, params):
print "USER: %s, %s" % (prefix, params)
def irc_NICK(self, prefix, params):
print "NICK: %s, %s" % (prefix, params)
class IRCServerFactory(ServerFactory):
protocol = IRCServer
factory = IRCServerFactory()
reactor.listenTCP(8002, factory)
reactor.run()
Run Code Online (Sandbox Code Playgroud)
当我尝试加入频道时,我无法做到.我得到一个错误,没有一个命令的处理程序,所以我写了irc_USER和irc_NICK方法,但只是摆脱了错误,它没有解决不连接/不工作的问题.
也许是这样的?
exarkun@boson:/tmp/irc-server$ cat > passwd
alice:secret
bob:19820522
exarkun@boson:/tmp/irc-server$ twistd -n words --irc-port 6667 --auth file:passwd
2010-06-29 11:51:26-0400 [-] Log opened.
2010-06-29 11:51:26-0400 [-] twistd 10.0.0+r29436 (/usr/bin/python 2.6.4) starting up.
2010-06-29 11:51:26-0400 [-] reactor class: twisted.internet.selectreactor.SelectReactor.
2010-06-29 11:51:26-0400 [-] twisted.words.service.IRCFactory starting on 6667
2010-06-29 11:51:26-0400 [-] Starting factory <twisted.words.service.IRCFactory instance at 0x9ddbf8c>
Run Code Online (Sandbox Code Playgroud)
如果您想了解如何实现,请参阅twisted/words/tap.py
twisted.words.protocols.irc.IRC是IRC服务器的解析部分的一个非常基本的实现.它不实现任何实际的服务器逻辑,如通道,模式,消息等.您可以在其上构建服务器,但您必须构建几乎所有的东西.这正是代码所调用的内容twistd words.您可能希望参考其实现,以查看问题中的代码所针对的成功示例.
| 归档时间: |
|
| 查看次数: |
4096 次 |
| 最近记录: |