1

有没有可能从 twisted.internet.udp 装饰 Port 类?我想修改 Port 类的某些方法的行为,使其不时丢失或重复......或延迟数据包。我的目标是“模拟”一些扰动并测试我自己的协议(在 UDP 之上设计)是否正确运行。

任何的想法 ?

提前致谢

4

1 回答 1

1

您不想以udp.Port任何方式装饰或子类化或修改类的行为,除非通过向 Twisted 上游提交补丁。一方面,这个类真的应该是私有的;它从未打算供公众使用,它是IReactorUDP接口的实现细节。

其次,它不是 Twisted 中唯一的此类实现细节。另请参阅twisted.internet.iocpreactor.udp.Port,它并没有分享它的大部分实现。

你想要做的是简单地编写一个实现相同接口的包装器 - 实现的东西IUDPTransport- 然后self.transport = MyPacketDelayingWrapper(self.transport)在你的DatagramProtocol.

于 2012-10-12T21:30:42.993 回答