这个问题不太可能对任何未来的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。为了帮助使这个问题更广泛地适用,访问帮助中心 /help/reopen-questions 。
我在Python线程(服务器)中有一段代码,但是当我运行客户端时,发现了这些错误:“UnboundLocalError:赋值前引用了局部变量‘stop’”:
import threading
import msvcrt
stop = False
Buffer= 1024
class ChatServer(threading.Thread):
def __init__(self,channel,addr,counter):
self.channel = channel
self.addr = addr
self.counter = counter
threading.Thread.__init__(self)
self.start()
def run(self):
# press s to trigger
if msvcrt.kbhit():
if msvcrt.getch() == 's':
stop = True
print "Login is closed closed.\n"
while 1:
if (stop == False):
print "\nClient connection received!\n"
self.channel.send("Status: Server connection received")
counter = 0
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(("",500))
server.listen(20)
while True:
print "\nServer awaiting connections....\n"
channel, addr = server.accept()
counter += 1
ChatServer(channel,addr,counter)
您只需设置变量stop
在非常特定的条件下,并且永远不要将其设置为False
。添加显式stop = False
到顶部run()
功能。
def run(self):
stop = False
# press s to trigger
if msvcrt.kbhit():
if msvcrt.getch() == 's':
stop = True
print "Login is closed closed.\n"
while 1:
if (stop == False):
print "\nClient connection received!\n"
self.channel.send("Status: Server connection received")
You probably 想要设置stop
inside the while
在某个时刻循环,就目前情况而言,如果stop = True
到达了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)