0

我正在尝试通过我拥有的现有 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 对象(它确实有一个操作码)然后说它是一个没有操作码的“str”对象????

任何帮助将不胜感激。

4

1 回答 1

0

您的客户端不是发送数据包,而是将其转换为字符串<Packet.Packet object at 0x1e89f50>并通过网络发送。使用print type(Packet)print repr(Packet)确认。

于 2012-06-14T22:40:27.877 回答