我正在开发一个软件定义的网络项目,我想将数据标记放入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?