使用python(套接字模块)以设定的间隔收集IRC数据

时间:2014-07-16 18:08:42

标签: python sockets irc

我试图以特定的时间间隔从我自己的Twitch IRC频道收集数据。使用python套接字模块,有两个选项可以设置接收数据," setblocking"和" settimeout"。

我考虑过两者,但是当我的目标是以30秒的间隔收集所有数据时,他们不会提供帮助。在第30秒,我想产生输出并将其发送到频道。

的setTimeout(10): 如果它在10秒内没有填充recv缓冲区而不是返回它收集的内容,那么它会给出错误。我在错误中使用了try / except:

socket.timeout: timed out

但是仍然没有给我数据。

setblocking(0): 我也尝试将其置于非阻塞模式,但结果是:

socket.error: [Errno 11] Resource temporarily unavailable

此外,我认为阻止它也不是选项,因为我只想在30秒内返回。

那么如何以30秒的间隔收集所有数据,准备好进行处理?'

MWE(将变量填入您的设置):

import socket

irc = socket.socket()
irc.settimeout(10)

irc.connect((server, 6667)) 

#sends variables for connection to twitch chat 
irc.send('PASS ' + password + '\r\n')
irc.send('USER ' + nick + ' 0 * :' + bot_owner + '\r\n')
irc.send('NICK ' + nick + '\r\n')
irc.send('JOIN ' + channel + '\r\n')

irc.recv(1024)

0 个答案:

没有答案