我正在使用at struct sockaddr_in接收从另一台计算机发送的多播数据。当我使用inet打印出源地址时,它会给我发送数据的pc的源地址。
我想知道是否有一种方法可以获得数据被“发送到”的多播地址?

最佳答案

使用setsockopt(2)在接收插座上设置IP_PKTINFO选项(请参见ip(7))。然后使用recvmsg(2)来收集传入的数据报,其msg_control参数的msg_controllenmsg字段指的是可以捕获数据报目标地址的缓冲区。
Linux以外的系统可能会通过bsdIP_RECVDSTADDR选项提供此功能。

10-08 04:51