我正在编写一个库,它将连接到套接字并对其进行管理,处理其数据,并在此基础上进行操作。在
我的问题在于每隔20秒将b“\r\n\x00”发送到套接字。我想如果我为ping函数启动一个新线程,那就可以了。在
……但是,时间。睡觉()似乎暂停了整个程序,而不是我所认为的线程。在
以下是我目前为止的代码:
def main(self):
recvbuf = b""
self.connect(self.group, self.user, self.password)
while self.connected:
rSocket, wSocket, error = select.select([x[self.group] for x in self.conArray], [x[self.group] for x in self.conArray], [x[self.group] for x in self.conArray], 0.2) #getting already made socket connections
for rChSocket in rSocket:
while not recvbuf.endswith(b"\x00"): #[-1] doesnt work on empty things... and recvbuf is empty.
recvbuf += rChSocket.recv(1024) #need the WHOLE message ;D
if len(recvbuf) > 0:
dataManager.manage(self, self.group, recvbuf)
recvbuf = b""
for wChSocket in wSocket:
t = threading.Thread(self.pingTimer(wChSocket)) #here's what I need to be ran every 20 seconds.
t.start()
x[self.group] for x in self.conArray.close()
下面是pingTimer函数:
^{pr2}$谢谢:D
这个:
没有做你期望的事。它在同一线程中调用
^{pr2}$self.pingTimer
,并将返回值传递给threading.Thread
。那不是你想要的。你可能想要这个:相关问题 更多 >
编程相关推荐