You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IP_PKTINFO (since Linux 2.2)
Pass an IP_PKTINFO ancillary message that contains a pktinfo structure that supplies some information about the incoming packet. This only works for datagram oriented sockets. The argument is a flag that tells the socket whether the IP_PKTINFO message should be passed or not. The message itself can only be sent/retrieved as control message with a packet using recvmsg(2) or sendmsg(2).
structin_pktinfo {
unsigned intipi_ifindex; /* Interface index */structin_addripi_spec_dst; /* Local address */structin_addripi_addr; /* Header Destination address */
};
ipi_ifindex is the unique index of the interface the packet was received on. ipi_spec_dst is the local address of the packet and ipi_addr is the destination address in the packet header. If IP_PKTINFO is passed to sendmsg(2) and ipi_spec_dst is not zero, then it is used as the local source address for the routing table lookup and for setting up IP source route options. When ipi_ifindex is not zero, the primary local address of the interface specified by the index overwrites ipi_spec_dst for the routing table lookup.
When set
IP_PKTINFO
, dst ip will inoob
as structin_pktinfo
.By using this, it would only need one listening socket.
copy
oob
fromReadMsgUDP
toWriteMsgUDP
in golangas in C
In golang,
in_pktinfo
issyscall.Inet4Pktinfo
Modify demo:
The text was updated successfully, but these errors were encountered: