我目前正在python中创建一个聊天应用程序。 它的工作原理是这样的:1 服务器工作 2.客户输入自己的ID和密码 3.登录信息被 他们正在由服务器分配一个随机数的服务器检查 5.他们可以现在send和recv消息往返于服务器Python中的奇怪插座问题3.2
我在收到ID和通行证有问题(请不要怪我使用全局和exec)
def recv_server():
global number
global s #the tcp socket
exec("global sock"+number) #creating a specific sock for each connection
exec("sock"+number+","+"sockname"+number+" = s.accept()")
exec("logindata=sock"+number+".recv(65535)")
logindata=logindata.decode()
...
号为1代码将是:
global sock1
sock1, sockname1 = s.accept()
logindata=sock1.recv(65535)
我使用python 3.2在Windows上运行脚本时,当登录数据将normaly有一个值,现在它的未分配
File 'abc' line 23, in recv_server
logindata=logindata.decode()
UnboundLocalError: local variable 'logindata' referenced before assigment
在我的Linux计算机(薄荷11),共享文件与保险箱和开放与蟒蛇(2.7)不给我任何错误
现在我问是否有人知道什么似乎是这个问题的原因?
寻求“请不要责怪我使用全球和可执行”的帮助就像是在寻求建设项目的帮助,并说“请不要责怪我使用土豆泥而不是石膏板”。 –