PGM Socket Options
PGM uses socket options to set state, provide multicast parameters, and otherwise implement its multicast capabilities. This page specifies how PGM socket options should be set, enumerates the socket options available for PGM, and where appropriate, provides usage examples and additional information for various options. For basic definitions of each PCM socket option, see Socket Options.
Windows XP: Reliable Multicast Programming (PGM) is not supported.
The following socket options are available for PGM senders:
- RM\_LATEJOIN
RM\_RATE\_WINDOW\_SIZE
RM\_SEND\_WINDOW\_ADV\_RATE
RM\_SENDER\_STATISTICS
RM\_SENDER\_WINDOW\_ADVANCE\_METHOD
RM\_SET\_MCAST\_TTL
RM\_SET\_MESSAGE\_BOUNDARY
RM\_SET\_SEND\_IF
RM\_USE\_FEC
The RM_SENDER_WINDOW_ADVANCE_METHOD option specifies the method used when advancing the trailing edge send window. The optval parameter can only be E_WINDOW_ADVANCE_BY_TIME (the default). Note that E_WINDOW_USE_AS_DATA_CACHE is not supported.
The following socket options are available for PGM receivers:
- RM\_ADD\_RECEIVE\_IF
RM\_DEL\_RECEIVE\_IF
RM\_HIGH\_SPEED\_INTRANET\_OPT
RM\_RECEIVER\_STATISTICS
Setting PGM Socket Options
The following code snippet illustrates a programming guideline for setting PGM socket options:
ULONG OptionData; // This structure is option-dependent
// :
setsockopt (s,
IPPROTO_RM,
Socket_Option,
(char *) &OptionData,
sizeof (OptionData));
In the snippet above, the type and contents of OptionData are dependent on the socket option being set. For all PGM socket options, the socket level is IPPROTO_RM. PGM socket options must be set immediately following the call to the bind function, with the following exceptions:
- RM\_SET\_MESSAGE\_BOUNDARY
RM\_SENDER\_STATISTICS
RM\_RECEIVER\_STATISTICS