我正在开发一个 tcp 客户端-服务器 python 套接字程序,在该程序中我编写了服务器代码来向客户端发送一条简单的消息。但是,当我在 python idle 中运行服务器端时,我得到无效的语法错误和 python 版本上的红色标记。我不知道问题出在哪里,我会感谢您对这项特定任务的帮助。
发生错误的图像:
我按运行,然后运行模块,我得到:
我的代码:
服务器 :
import sys
from socket import *
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind(('localhost',1234))
serverSocket.listen()
data = "Network labs"
while 1 :
connectionSocket ,addr = serverSocket.accept()
connectionSocket.send(data)
connectionSocket.close()
客户 :
import sys
from socket import *
clientSocket = socket(AF_INET,SOCK_STREAM)
server_address=('localhost',1234)
clientSocket.connect(server_address)
sentence = clientSocket.recv(1024)
print(sentence)
clientSocket.close()
最佳答案
您尝试运行 shell session 的日志,其中包含非代码启动消息文本和非代码提示作为 python 代码。但 session 日志不是 python 代码。 “Python”可能是,但“Python 3”不是有效代码,因此 python 报告 SyntaxError。这与从 IDLE 编辑器运行代码无关。如果您从命令行或任何其他支持 python 的编辑器或 IDE 运行 server.py,您会看到相同的结果。
要运行 server.py,您必须删除非代码部分——启动消息和提示。通常,您还必须删除输出,但您的示例中没有。所以你应该最终得到
import sys
from socked import *
...
换句话说,您在问题中列出的清理后的服务器代码,不是您在屏幕截图中运行以获取错误消息的代码。
关于python - 运行 python idle 时 python 版本上的无效语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61991893/