- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我每 0.1 秒从 TCP 服务器(机器人发送其状态)接收消息流。我不能保证我调用 recvmsg
每 0.1 秒,所以我想在这些收到的消息上有一个时间戳,这样当我 recvmsg
我知道我是否刚刚收到它们,或者它们是否已经在缓冲区中放置了足够长的时间以至于过时了,我应该调用 recvmsg
直到我读到最近的一条消息。
首先,哪个clock struct timespec
的 SO_TIMESTAMP
时间戳使用?我在谷歌上找到了指向 CLOCK_REALTIME
的资源, 但它们已经有 10 年左右的历史了,因此它们可能已经过时了。
我应该调用所有时间函数中的哪一个来获得与时间戳相当的时间?
是否可以使用 CLOCK_BOOTTIME
以避免连续性问题?
我错了。我混了SO_TIMESTAMP
(使用 struct timeval
)与 SO_TIMESTAMPNS
(使用 struct timespec
)( SO_TIMESTAMPNS
似乎不可用)。
同时 SO_TIMESTAMPNS
根据文档似乎不可用,当我 #include <sys/socket.h>
我把它定义为 35
.
最佳答案
它使用CLOCK_REALTIME
。
噗。所以:在 sock_setsockopt
中提到了 SO_TIMESTAMP
.从那里我跳到 sock_enable_timestamp
.但在该函数的正上方是 sock_get_timestamp
and sock_get_timestampns
.他们使用 ktime_get_real
.只是为了检查 sock_get_timestamp
用于 inet_ioctl
in af_inet.c .只是为了疼我研究了documentation on ktime accessors ktime_get_real
与 CLOCK_REALTIME
相同。而ktime_get_real
也被__net_timestamp
in socket buffer使用了
关于c - SO_TIMESTAMP 套接字选项使用哪个时钟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60971556/
Linux 内核提供了两个套接字选项来检索传入网络数据包的软件时间戳:SO_TIMESTAMP和 SO_TIMESTAMPING与 SOF_TIMESTAMPING_RX_SOFTWARE | SOF
Linux 内核提供了几种方法来获取接收的(SO_TIMESTAMP、SO_TIMESTAMPNS、SO_TIMESTAMPING)或发送的(SO_TIMESTAMPING)数据包的时间戳。 内核文档
我每 0.1 秒从 TCP 服务器(机器人发送其状态)接收消息流。我不能保证我调用 recvmsg 每 0.1 秒,所以我想在这些收到的消息上有一个时间戳,这样当我 recvmsg我知道我是否刚刚收到
在socket man page中可以看出,可以使用 SO_TIMESTAMP 和 setsockopt 来测量 Linux 内核将接收到的网络数据包传递给用户空间所花费的时间。 此处对此功能有很好的
我是一名优秀的程序员,十分优秀!