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> ")