1

我正在开发一个软件定义的网络项目,我想将一个数据标签放入 IPv6 UDP 数据包中的目的地选项标头中。我一直在跌跌撞撞,最后我查看了 Twisted 14.0,它似乎有一些部分,但我不知道如何将它们组合在一起。(我是 Python 的新手,也是 Twisted 的新手,很抱歉造成混乱。)

我看到有一对函数“send1msg”和“recv1msg”,它们应该是C调用sendmsg()和recvmsg()的“一些”功能的包装器。阅读这些文件给我留下了三个问题:

1) 对于发送,格式显示:num_bytes_sent = send1msg(filedescriptor, data, flags, ancillary)。辅助数据似乎是一个元组(cmsg_level、cmsg_type、data)。这很清楚,但我没有看到如何识别辅助数据应该是目标选项字段——通常是通过 setsockopt(),但我看不到如何在 Twisted 中做到这一点。从技术上讲,辅助数据可以在标题的任何字段中。

2) 接收类似:data, flags, ancillary = recv1msg(filedescriptor, size) 如何设置套接字选项以接收目的地选项?就此而言,如果我有一个 DatagramProtocol 协议对象,我什至如何从中读取文件描述符?我可以说 self.fileno() 吗?

3) 代码示例仅显示 AF_UNIX 套接字——这甚至支持 UDP 吗?

4

0 回答 0