我怎样才能从Golang访问分组CMSG字段?

w8biq8rn  于 2023-02-10  发布在  Go
关注(0)|答案(1)|浏览(106)

我正在编写一个Go语言程序,它接收数据包并希望看到接收时间戳。
在C中,这将通过设置SO_TIMESTAMP/SO_TIMETAMPNS套接字选项并随后使用CMSG宏从控制消息缓冲器结构提取数据来完成,
我已经在Go语言文档中搜索了一种方法来做到这一点,但没有找到。有人能给我一个工作示例吗?

yqlxgs2m

yqlxgs2m1#

您可以从UDPConn::ReadMsgUDP获得它们,辅助数据由于某些奇怪的原因被命名为“oob”,但它是带有控制消息的辅助通道。
您可以使用x/sys/unix::Cmsghdr(https://pkg.go.dev/golang.org/x/sys/unix#Cmsghdr)解析带有控制消息数据的[]字节
应该有更好的办法,但至少这不是“内部”的背后...

相关问题