gpt4 book ai didi

sockets - golang 获取udp套接字缓冲区大小

转载 作者:IT王子 更新时间:2023-10-29 02:32:40 24 4
gpt4 key购买 nike

我正在编写一个 udp 客户端并通过 SetWriteBuffer 设置 udp 套接字发送缓冲区。

   addr, _ := net.ResolveUDPAddr("udp", ":8089")
conn, err :=net.DialUDP("udp", nil, addr)
err =conn.SetWriteBuffer(64*1024*1024)

如上,调用SetWriteBuffer函数后如何测试设置值是否有效或获取发送缓冲区值。
谢谢大家。

最佳答案

查看网络包代码后,SetWriteBuffer 似乎对 setsockopt(用于 posix)进行系统调用。 GetWriteBuffer 没有类似的功能。我能想到的唯一方法是像这样对 getsockopt 进行另一个系统调用。

addr, _ := net.ResolveUDPAddr("udp", ":8089")
conn, _ := net.DialUDP("udp", nil, addr)
conn.SetWriteBuffer(10 * 1024)
fd, _ := conn.File()
value, _ := syscall.GetsockoptInt(int(fd.Fd()), syscall.SOL_SOCKET, syscall.SO_SNDBUF)
log.Println(value)
fd.Close()
conn.Close()

关于sockets - golang 获取udp套接字缓冲区大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43450463/

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