HP Rp7410 BSD Sockets Interface Programmer's Guide - Page 117

Specifying the Outbound Interface, IP_MULTICAST_IF, Specifying the Scope of a Multicast,

Page 117 highlights

Advanced Topics for Internet Datagram Sockets Sending and Receiving IP Multicast Datagrams Normally, multicast datagrams are sent only to systems directly connected to the same network that the sending interface is on. If multicast datagrams are intended for distant networks, a special multicast router must be present on the local and intermediate networks. A socket option IP_MULTICAST_TTL controls the number of intermediate systems through which a multicast datagram can be forwarded. If a multicast datagram is sent to a port from which an application on the local system is reading, normally a copy of the datagram is looped back and delivered to the application. A socket option IP_MULTICAST_LOOP allows the sending application to disable loopback for datagrams sent through that socket. Specifying the Outbound Interface IP_MULTICAST_IF Normally, multicast datagrams are sent through the interface that is associated with the default route, if one is configured. Alternatively, the system administrator can configure other interfaces as the default multicast route and as the route for specific multicast groups. The configured multicast routes should suffice for most applications. However, an application can override the default multicast route by setting the IP_MULTICAST_IF socket option. For example: #include struct in_addr addr; addr.s_addr = inet_addr("192.1.2.3"); setsockopt(s, IPPROTO_IP, IP_MULTICAST_IF, &addr, sizeof(addr)); If addr.s_addr is INADDR_ANY, subsequent outbound multicasts from the application are sent from the default interface. Otherwise, addr.s_addr must specify the IP address of a local network interface that supports multicasting. Specifying the Scope of a Multicast IP_MULTICAST_TTL By default, multicast datagrams are sent only to systems on a local network. If the multicast datagram is intended to be sent to distant networks, and if there is a special multicast router on the local network, the application can increase the scope of the multicast by using the IP_MULTICAST_TTL socket option. For example: Chapter 5 117

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196

Chapter 5
117
Advanced Topics for Internet Datagram Sockets
Sending and Receiving IP Multicast Datagrams
Normally, multicast datagrams are sent only to systems directly
connected to the same network that the sending interface is on. If
multicast datagrams are intended for distant networks, a special
multicast router must be present on the local and intermediate
networks. A socket option IP_MULTICAST_TTL controls the number of
intermediate systems through which a multicast datagram can be
forwarded.
If a multicast datagram is sent to a port from which an application on
the local system is reading, normally a copy of the datagram is looped
back and delivered to the application. A socket option
IP_MULTICAST_LOOP allows the sending application to disable
loopback for datagrams sent through that socket.
Specifying the Outbound Interface
IP_MULTICAST_IF
Normally, multicast datagrams are sent through the interface that is
associated with the default route, if one is configured. Alternatively, the
system administrator can configure other interfaces as the default
multicast route and as the route for specific multicast groups.
The configured multicast routes should suffice for most applications.
However, an application can override the default multicast route by
setting the IP_MULTICAST_IF socket option. For example:
#include <netinet/in.h>
struct in_addr addr;
addr.s_addr = inet_addr(“192.1.2.3”);
setsockopt(s, IPPROTO_IP, IP_MULTICAST_IF, &addr, sizeof(addr));
If
addr.s_addr
is INADDR_ANY, subsequent outbound multicasts
from the application are sent from the default interface. Otherwise,
addr.s_addr
must specify the IP address of a local network interface
that supports multicasting.
Specifying the Scope of a Multicast
IP_MULTICAST_TTL
By default, multicast datagrams are sent only to systems on a local
network. If the multicast datagram is intended to be sent to distant
networks, and if there is a special multicast router on the local network,
the application can increase the scope of the multicast by using the
IP_MULTICAST_TTL socket option. For example: