python - 运行 python idle 时 python 版本上的无效语法错误

标签 python sockets syntax-error python-idle

我正在开发一个 tcp 客户端-服务器 python 套接字程序,在该程序中我编写了服务器代码来向客户端发送一条简单的消息。但是,当我在 python idle 中运行服务器端时,我得到无效的语法错误和 python 版本上的红色标记。我不知道问题出在哪里,我会感谢您对这项特定任务的帮助。
发生错误的图像:
enter image description here

我按运行,然后运行模块,我得到:
enter image description here

我的代码:

服务器 :

   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/

相关文章:

Python(天真的)洗牌到位 - 旨在重现 Fisher-Yates

python - 如何更改python中函数对象的属性?

c++ - C/C++ Posix tcp/ip 网络客户端,只连接本地主机

c - 套接字文件说明

python - Python 套接字模块的问题

python - XOR 加密在*大部分*时间都有效

python - 无法在 virtualenv 中使用 Django

objective-c - 为什么它不能从主文件中识别头文件中的@properties?

php - 我的语法有什么问题吗?

javascript - 由于Firefox中的正则表达式组无效,导致正则表达式重写