Процесс Windows не будет общаться через сокет
Я писал IRC-чат-бота, который проверяет Google Voice на наличие SMS-сообщений, а затем передает их в чат-комнату через сокет на порту 6667. Обработка сообщений в чате выполняется в главном подпрограмме в бесконечном цикле, в то время как проверка GV выполняется в отдельный процесс. Фактическая проверка и выборка работают хорошо, но это сокет, который не работает; На канале нет сообщений. Что странно, это то, что это работает безупречно под OS X, поэтому я не верю, что проблема в логике обработки голоса:
def checkVoice()
while 1:
print "Update voice!"
#voice processing... edited for brevity
sendPrivateMessage(CHANNEL,message) #This doesn't work
#more code
time.sleep(10)
#main block
if __name__ == '__main__':
sendPrivateMessage(CHANNEL,"Voice checking started") #This works
p = Process(target=checkVoice)
p.start()
Я предположил, что проблема была в том, как Windows работает с Python, поскольку он работает с другими платформами.
Полный код чат-бота можно посмотреть здесь: bot.py
Как спросили, вот sendPrivateMessage
метод:
def sendPrivateMessage(channel, message):#private message send function
global mute
if mute == 0:
IRC.send("PRIVMSG " + channel + " :" + message + "\r\n")