当我尝试重新连接时,我收到Winerror 10038



Twitch随机断开了我的python机器人的连接。我用谷歌搜索了很多,发现这是一个常见问题。唯一的解决方案似乎是自动重新连接。试过这个,但我的知识似乎太有限了,无法让它工作。

我尝试关闭套接字,关闭它,然后使用最初用于连接的相同例程进行连接。尝试了一些变体,但没有任何效果,当我尝试重新连接时,我总是收到错误代码:"Winerror 10038">

import socket
import sys
import modules.cfg
import time
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
def connect():
'''
Connection to Twitch IRC using cfg.py
'''
irc.connect((modules.cfg.HOST,modules.cfg.PORT))
irc.send(str("PASS " + modules.cfg.PASS + "rn").encode("utf-8"))
irc.send(str("NICK " + modules.cfg.NICK + "rn").encode("utf-8"))
irc.send(str("JOIN " + modules.cfg.CHAN + "rn").encode("utf-8"))
irc.send(str("CAP REQ :twitch.tv/commandsrn").encode("utf-8")) #whisper enable
irc.send(str("CAP REQ :twitch.tv/membershiprn").encode("utf-8"))
def read_chat():
response = irc.recv(4096).decode('utf-8') #receive text
if response == "PING :tmi.twitch.tvrn":
print("Ping received")
irc.send("PONG :tmi.twitch.tvrn".encode("utf-8")) 
return response

def send(msg):
try:
irc.send("PRIVMSG {} : {}rn".format(modules.cfg.CHAN, msg).encode("utf-8"))
except:
irc.shutdown(socket.SHUT_RDWR)
irc.close()
print("nnDisconnectedn")
time.sleep(10)
connect()
print("Reconnectednn")

我对编码很陌生,这是我的某种爱好。希望有人能帮助我!谢谢你们

感谢用户207421 我终于找到了方法..对我来说这有点奇怪,但它有效。

def re_connect():
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.connect((modules.cfg.HOST,modules.cfg.PORT))
irc.send(str("PASS " + modules.cfg.PASS + "rn").encode("utf-8"))
irc.send(str("NICK " + modules.cfg.NICK + "rn").encode("utf-8"))
irc.send(str("JOIN " + modules.cfg.CHAN + "rn").encode("utf-8"))
irc.send(str("CAP REQ :twitch.tv/commandsrn").encode("utf-8")) #whisper enable
irc.send(str("CAP REQ :twitch.tv/membershiprn").encode("utf-8"))

def send(msg):
try:
irc.send("PRIVMSG {} : {}rn".format(modules.cfg.CHAN, msg).encode("utf-8"))
except:
irc.shutdown(socket.SHUT_RDWR)
irc.close()
print("nnDisconnectedn")
time.sleep(10)
re_connect()
print("Reconnectednn")

最新更新