여기에서이 항목에 대한 몇 가지 질문을 읽었지만 간단한 대답을 얻을 수 없었습니다. 더 쉬울 수 있도록 약간의 코드를 제공 할 것입니다. Python : 소켓 연결이 아직 열려 있습니다.
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()
은 내가
while True:
루프를 나누기
!quit
명령이있다. 하지만 때로는 핑 시간 초과 또는 인터넷 충돌과 같은 다른 이유로 인해 철저히 구별됩니다. 내가 원했던 것은 다음과 같습니다 :
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")
연결 해제는 일반적으로 소켓에서 읽을 때 EOF로 감지되거나 'socket.error'가 발생하면 감지됩니다. 소켓 읽기/쓰기를 수행하는 코드를 포함해야합니다. – Aya
질문에 그것의 일부를 포함시킬 것입니다 – pasadinhas
세부 사항이 필요하면 업데이트하십시오 :) – pasadinhas