Python 抛出 KeyError: \r\n
我正在写一个网络认证程序,当我到达实际验证的部分时,Python出现了一个错误,提示“KeyError: \r\n”。为什么Python会抛出一个KeyError呢?我该怎么解决这个问题?我在Windows 7上运行的是Python 2.7.2。
代码如下: client.send("You should enter your username: ")
uname=client.recv(size)
client.send("You should also enter your password: ")
passc=client.recv(size)
client.send("\r\nI will verify your information.\r\n")
if users[uname].strip(cr) == passc.strip(cr):
client.send("It worked, continue...")
else: client.send("It didn't work\r\n")
在这之前,我写了一行代码:
client.send("Press return");
cr = client.recv(5)
补充说明:拍头 之所以出现这个KeyError,是因为某种原因,客户端无法设置uname。它完全忽略了client.recv那一行,直接跳到下一行。
2 个回答
0
如果client.recv是非阻塞的,它会接收到0字节的数据,然后继续执行。这很可能是因为这一行代码在服务器还没有回应之前就已经运行了。
0
你在处理 passc
的时候去掉了一些东西,但 uname
却没有去掉。可能这就是问题所在。试着打印一下 repr(uname)
的结果。