ここでこのトピックに関するいくつかの質問を読みましたが、簡単な答えが得られませんでした。簡単にできるように、いくつかのコードを提供します。
import socket
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect((network, port))
# Do the rest of the connection (set nick, user, join chan)
# Okay, now we're connected
while True:
doAllTheBotStuff()
ループを!quit
中断するコマンドがあります。while True:
しかし、ping のタイムアウトやインターネットのクラッシュなど、他の理由で接続が切断されることがあります。私がやりたかったことは次のとおりです。
while True:
doAllTheBotStuff()
if not stillConnected():
break
どうすればそのstillConnected()
機能を実行できますか?
読み書き:
ボットのクラスを作成しましたが、そのすべての情報がなくても理解できることを願っています
# READING
ready = select.select([self.irc], [], [], 1)
if ready[0]:
temp = self.irc.recv(4096)
# Here I handle the reading. Parse commands and all that stuff.
書くことは常に、読まれたものに対する反応です。私はこの機能を使用します:
def send_irc_cmd(self, cmd, args):
self.irc.send(cmd+" :"+args+"\r\n")