[英]Python socket server failing
我正在尝试在python 3中启动UDP服务器。
这是我的确切代码。
import socketserver
class MyUDPHandler(socketserver.BaseRequestHandler):
"""
This class works similar to the TCP handler class, except that
self.request consists of a pair of data and client socket, and since
there is no connection the client address must be given explicitly
when sending data back via sendto().
"""
def handle(self):
data = self.request[0].strip()
socket = self.request[1]
print("{} wrote:".format(self.client_address[0]))
print(data)
if __name__ == "__main__":
HOST, PORT = "localhost", 19446
with socketserver.UDPServer((HOST, PORT), MyUDPHandler) as server:
server.serve_forever()
我只删除了handle方法的回复并更改了端口号。
当我尝试运行它时,我得到了这个
$ sudo python3 test.py
File "test.py", line 19, in <module>
with socketserver.UDPServer((HOST, PORT), MyUDPHandler) as server:
AttributeError: __exit__
我试图在安装在Raspberry Pi 3上的Python 3.4.2中运行它,它今天早上正在运行。 我GOOGLE了AttributeError: __exit__
,发现with
内置的方法的用途,例如__exit__
到正常关闭后,它已经完成运行后,它缩进的说明。
完全相同的代码在我的Windows机器上运行正常(Python 3.6.2)和用于在我的覆盆子pi上运行的代码,我整天用它做的唯一事情是安装x11vnc服务器并插入许多USB设备。 (一张采集卡和arduinos,没有来自不受信任来源的USB驱动器)。
所以我的问题是 ,什么可能导致Attribute Error: __exit__
socketserver
库中的socketserver
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.