gpt4 book ai didi

Go:如何接收整个 UDP 数据报

转载 作者:IT王子 更新时间:2023-10-29 00:47:38 26 4
gpt4 key购买 nike

我的问题:使用 net.Read... 方法仅复制给定字节数组或 slice 大小的字节数。我当然不想每次都分配最大 64 kB 的 UDP 数据报。

是否有go方法来确定数据报的大小(在数据报头中)或再次读取直到数据报被完全读取?

最佳答案

尝试 ReadFromUDP :

func (c *UDPConn) ReadFromUDP(b []byte) (n int, addr *UDPAddr, err error)

ReadFromUDP reads a UDP packet from c, copying the payload into b. It returns the number of bytes copied into b and the return address that was on the packet.

数据包大小应该可以从 n 获得,然后您可以使用它来定义自定义 slice (或其他数据结构)来存储数据报。这依赖于数据报大小在 session ,它真的不应该。

关于Go:如何接收整个 UDP 数据报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21984569/

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