gpt4 book ai didi

Python 网络时间戳(SO_TIMESTAMP、SO_TIMESTAMPNS、SO_TIMESTAMPING)

转载 作者:太空狗 更新时间:2023-10-29 12:24:24 26 4
gpt4 key购买 nike

Linux 内核提供了几种方法来获取接收的(SO_TIMESTAMP、SO_TIMESTAMPNS、SO_TIMESTAMPING)或发送的(SO_TIMESTAMPING)数据包的时间戳。

内核文档:https://www.kernel.org/doc/Documentation/networking/timestamping.txt

有什么方法可以将它与 Python 一起使用吗?我在 Python 源代码中没有看到任何 SO_TIMESTAMP 常量。尝试了 3.6.2 和 GitHub master 分支。

现在,我只能使用 SIOCGSTAMP,它为我提供了上次接收到的数据包的时间戳,而发送数据包的时间戳似乎没有任何可用信息。

最佳答案

最后,我已经能够像这样获得 SO_TIMESTAMPNS 值:

SO_TIMESTAMPNS = 35
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(3))
s.setsockopt(socket.SOL_SOCKET, SO_TIMESTAMPNS, 1)
raw_data, ancdata, flags, address = s.recvmsg(65535, 1024)

ancdata[0][2] 是作为 timespec(ulong, ulong) 的硬件时间戳。

可以在 Linux 上运行,但不能在 Mac OS X 上运行。未在 Windows 上测试。

关于Python 网络时间戳(SO_TIMESTAMP、SO_TIMESTAMPNS、SO_TIMESTAMPING),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46302308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com