Python 2.7 我无法理解为什么我的TCP服务器/客户端不能正常工作
我正在构建一个供个人使用的聊天服务器,同时也在构建一个客户端。在输入字符串并将其发送到服务器后,我收到一个错误,但我不理解它的含义或如何修复它。有人能帮忙吗 客户端代码:Python 2.7 我无法理解为什么我的TCP服务器/客户端不能正常工作,python-2.7,Python 2.7,我正在构建一个供个人使用的聊天服务器,同时也在构建一个客户端。在输入字符串并将其发送到服务器后,我收到一个错误,但我不理解它的含义或如何修复它。有人能帮忙吗 客户端代码: # chat_client.py msg="" import sys import socket import select host="127.0.0.1" port=9999 s=socket.socket() s.connect((host,port)) while msg!="EXIT": msg=inp
# chat_client.py
msg=""
import sys
import socket
import select
host="127.0.0.1"
port=9999
s=socket.socket()
s.connect((host,port))
while msg!="EXIT":
msg=input("<You> ")
s.send((str(msg)))
print(s.recv(1024))
s.close
错误消息:
<You> hello
Traceback (most recent call last):
File "C:\Users\Admin\Desktop\python 2.7 socket stuff\TCP_CLIENT.py", line 14,
in <module>
msg=input("<You> ")
File "<string>", line 1, in <module>
NameError: name 'hello' is not defined
你好
回溯(最近一次呼叫最后一次):
文件“C:\Users\Admin\Desktop\python2.7 socket stuff\TCP\u CLIENT.py”,第14行,
在里面
msg=输入(“”)
文件“”,第1行,在
NameError:未定义名称“hello”
使用原始输入()
而不是输入()
该函数是危险的,因为它将eval()
用户输入的内容不是您想要的。从文件(我的重点):
输入([提示])
相当于
eval(原始输入(提示))
此函数不捕获用户错误。如果输入在语法上无效,将引发SyntaxError
。如果评估过程中出现错误,可能会引发其他异常
考虑使用raw\u input()
函数进行用户的常规输入
Python2的
input
尝试计算输入值。如果键入hello
,它将搜索预定义的hello
变量
您应该改用原始输入
:
msg = raw_input("<You> ")
msg=原始输入(“”)
它可以工作并将消息发送到服务器,但当我发送第二个消息时,我得到[Errno 10053]一个已建立的连接被主机中的软件中止,这是另一个错误和问题。但是,堆栈溢出并不是为了在整个开发/调试过程中保持不变。你需要学习调试技巧并使用它们。啊,我发现了错误,谢谢你们帮我解决
msg = raw_input("<You> ")