我正在编写一个Go语言程序,它接收数据包并希望看到接收时间戳。在C中,这将通过设置SO_TIMESTAMP/SO_TIMETAMPNS套接字选项并随后使用CMSG宏从控制消息缓冲器结构提取数据来完成,我已经在Go语言文档中搜索了一种方法来做到这一点,但没有找到。有人能给我一个工作示例吗?
yqlxgs2m1#
您可以从UDPConn::ReadMsgUDP获得它们,辅助数据由于某些奇怪的原因被命名为“oob”,但它是带有控制消息的辅助通道。您可以使用x/sys/unix::Cmsghdr(https://pkg.go.dev/golang.org/x/sys/unix#Cmsghdr)解析带有控制消息数据的[]字节应该有更好的办法,但至少这不是“内部”的背后...
1条答案
按热度按时间yqlxgs2m1#
您可以从UDPConn::ReadMsgUDP获得它们,辅助数据由于某些奇怪的原因被命名为“oob”,但它是带有控制消息的辅助通道。
您可以使用x/sys/unix::Cmsghdr(https://pkg.go.dev/golang.org/x/sys/unix#Cmsghdr)解析带有控制消息数据的[]字节
应该有更好的办法,但至少这不是“内部”的背后...