Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的多套接字/重用/关闭套接字_socketobject错误_Python_Sockets_Packet_Bots - Fatal编程技术网

Python中的多套接字/重用/关闭套接字_socketobject错误

Python中的多套接字/重用/关闭套接字_socketobject错误,python,sockets,packet,bots,Python,Sockets,Packet,Bots,所以我一直在尝试用python制作这个机器人,它使用套接字在网站上的聊天中获取一些信息。这需要登录,它获取密钥,然后使用第一次连接的密钥,您可以连接到聊天室(不同的套接字/ip) 我试着用socket.close()之类的工具来实现这一点,但遗憾的是,我不断地出现错误:( 这是我目前正在使用的: def send_packet(socket, packet): socket.send(packet+chr(0)) def socket_make(host, port): s =

所以我一直在尝试用python制作这个机器人,它使用套接字在网站上的聊天中获取一些信息。这需要登录,它获取密钥,然后使用第一次连接的密钥,您可以连接到聊天室(不同的套接字/ip)

我试着用socket.close()之类的工具来实现这一点,但遗憾的是,我不断地出现错误:(

这是我目前正在使用的:

def send_packet(socket, packet):
    socket.send(packet+chr(0))

def socket_make(host, port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((host, port))
    return s

socket = socket_make(get_ip('8'), get_port('8'))
send_packet(socket, '<y r="8" />')
socket.recv(1024)
send_packet(socket, '<v n="'+username+'" p="'+password+'" />')
tmp = socket.recv(1024)
socket.close()

socket = socket_make("174.36.242.40",10032)
send_packet(socket, '<y r="'+infos['c']+'" />')
token = socket.recv(1024)
token = token[token.find('i="')+3:token.find('" c="')]

您以前导入过套接字模块。然后您创建了一个同名的全局变量(“socket”),该变量现在取代了该模块。该模块消失了,现在是一个套接字对象。然后,当您再次尝试调用socket时,全局
socket
不再是该模块,而是套接字实例

使用不同的名称,或者更好地将整个客户机封装到另一个类中

AttributeError: '_socketobject' object has no attribute 'socket'