在Python中通过自制TFTP发送访问对象
我正在尝试在现有的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)
来确认这一点。