相关疑难解决方法(0)

什么是recvfrom()中的addrlen字段用于什么?

我在我的程序中使用recvfrom从我在src_addr中指定的服务器获取DGRAM数据.但是,我不确定为什么我需要初始化并传入addrlen.

我阅读了手册页,但我并不真正了解它的内容.

如果src_addr不为NULL,并且底层协议提供源地址,则填写此源地址.当src_addr为NULL时,不会填充任何内容; 在这种情况下,不使用addrlen,也应该为NULL.参数addrlen是一个value-result参数,调用者应该在调用与src_addr关联的缓冲区大小之前初始化,并在返回时修改以指示源地址的实际大小.如果提供的缓冲区太小,则截断返回的地址; 在这种情况下,addrlen将返回一个大于提供给调用的值.

我猜这与src_addr是ipv4或ipv6有关.它是否正确?

谢谢!

c sockets udp recv

2
推荐指数
1
解决办法
3748
查看次数

标签 统计

c ×1

recv ×1

sockets ×1

udp ×1