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