def opts_parser()

in scripts/mcast.py [0:0]


def opts_parser(mcast_addr_default, port_default, **kwargs):
    p = optparse.OptionParser("%prog [OPTION ...]\n\n"
        "  Server mode: %prog [OPTION ...],\n"
        "  Client mode: %prog [OPTION ...] [DATA_TO_SEND]"
    )

    p.add_option('-s', '--server', action="store_true", default=False,
        help='Server mode. [Default: client mode]')

    # options in jgroup's test code:
    # common: bind_addr, mcast_addr, port, (receive|send)_on_all_interfaces
    # server (receiver): no unique options
    # client (sender): ttl
    p.add_option('-M', '--mcast_addr', default=mcast_addr_default,
        dest='mcast_addr', help='Multicast network address to join/sendto. [%default]')
    p.add_option('-I', '--if_addr', default=IP4_ADDR_ANY, dest='if_addr',
        help='Interface address to listen on. [IPv4 ADDR_ANY, i.e. automatically selected]')
    p.add_option('-p', '--port', default=port_default, type="int",
        help='Port to listen on/connect. [%default]')
    p.add_option('-t', '--ttl', default=1, type="int", help='Time-to-live for multicast packets [%default]')

    p.add_option('-q', '--quiet', action="store_true", help="Quiet mode; suppress debug message")

    sog = optparse.OptionGroup(p, "Options for server mode")
    sog.add_option('-r', '--reuse', action="store_true", default=False, help='Reuse socket? [no]')
    p.add_option_group(sog)

    cog = optparse.OptionGroup(p, "Options for client mode")
    cog.add_option('-c', '--count', type="int", default=0,
        help="Stop after sending COUNT packets. By default, it will send packets forever [%default].")
    cog.add_option('-i', '--interval', type="int", default=1,
        help="Wait  interval  seconds between sending each packet. [%default].")
    p.add_option_group(cog)

    return p