在Python中通过自制TFTP发送访问对象

0 投票
1 回答
599 浏览
提问于 2025-04-17 05:23

我正在尝试在现有的UDP上用Python创建一个TFTP服务器。在我的server.py文件中。

目前,我已经能够向服务器发送读取请求(RRQ)和写入请求(WRQ)。但是,当一个Packet对象(我创建的要发送到服务器的对象)到达服务器时,我却无法访问它。

在server.py中:

Packet =  (server_from_client.recv())
print Packet
print id(Packet)
print Packet.opCode

这段代码的输出是:

('127.0.0.1', 53909)
recv done
<Packet.Packet object at 0x1e89f50>


42518000
Traceback (most recent call last):
File "servertest.py", line 16, in <module>
print Packet.opCode
AttributeError: 'str' object has no attribute 'opCode'

为什么它一开始告诉我这是一个Packet.Packet对象(确实有一个opCode),然后又说它是一个没有opCode的'str'对象呢???

任何帮助都将不胜感激。

1 个回答

0

你的客户端并没有直接发送数据包,而是把它转换成了一个字符串,内容是 <Packet.Packet object at 0x1e89f50>,然后再发送出去。你可以用 print type(Packet)print repr(Packet) 来确认这一点。

撰写回答