我正在使用struct sockaddr_in接收從另一臺機器發送的多播數據。當我使用inet_ntop打印出源地址時,它給了我發送數據的PC的源地址。在Linux上獲取多播源IP地址
我想知道是否有一種獲取數據「發送給」的多播地址的方法?
我正在使用struct sockaddr_in接收從另一臺機器發送的多播數據。當我使用inet_ntop打印出源地址時,它給了我發送數據的PC的源地址。在Linux上獲取多播源IP地址
我想知道是否有一種獲取數據「發送給」的多播地址的方法?
使用setsockopt(2)
在接收套接字上設置IP_PKTINFO
選項(請參閱ip(7)
)。然後使用recvmsg(2)
來收集傳入的數據報,其msg_control
和msg_controllen
字段的msg
參數指向可以捕獲數據報的目標地址的緩衝區。
Linux以外的系統可能會通過BSD IP_RECVDSTADDR
選項提供此功能。
http://stackoverflow.com/questions/5281409/get-destination-address-of-a-received-udp-packet – Dima 2012-04-24 23:46:37
看看目標地址字段並使用inet_ntop? – 2012-04-21 23:49:36
是的,我修復了這個問題,謝謝你的更新 – Dima 2012-04-22 14:03:24