正如标题所说,虽然这也是我第一次使用Python真正做大事。我还不熟悉这种语言,所以这可能是我遗漏的东西。代码相当短,如下所示,删除了用户名和私有密码:
app.UseFileServer()
有一点需要提及的是,我遵循的是基本的模板风格,但它没有涵盖在机器人中实施耳语 - 所以我不得不通过研究如何做到这一点来猜测,而且似乎是最推荐的方式是两个连接,一个用于公共,一个用于私人。
答案 0 :(得分:1)
在构建代码时,除了从private
套接字获取内容之外,您无法从public
套接字获取任何内容。如果IRC偶尔不发送PING
个消息,那么情况会更糟。
处理此问题的方法是使用select
,并为其提供两个套接字。只要有一个可以读取的内容,select
将返回,并指示哪个套接字有可用于读取的字节。
This answer有一些通用代码。您可能希望将其修改为:
while True:
# this will block until at least one socket is ready
ready_socks,_,_ = select.select([private, public], [], [])
if private in ready_socks:
privateResponse += private.recv()
if public in ready_socks:
channelResponse += public.recv()
# check privateResponse buffer, do stuff
# check channelResponse buffer, do stuff
还应该记住一些其他事项: