📄 gnet-mcast.html
字号:
<HTML><HEAD><TITLE>mcast</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.77+"><LINKREL="HOME"TITLE="GNet Network Library Reference Manual"HREF="book1.html"><LINKREL="UP"TITLE="GNet Library Reference"HREF="libgnet-reference.html"><LINKREL="PREVIOUS"TITLE="udp"HREF="gnet-udp.html"><LINKREL="NEXT"TITLE="iochannel"HREF="gnet-iochannel.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"BGCOLOR="#000000"CELLPADDING="1"CELLSPACING="0"><TR><THCOLSPAN="4"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="5">GNet Network Library Reference Manual</FONT></TH></TR><TR><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="left"><AHREF="gnet-udp.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B><<< Previous Page</B></FONT></A></TD><TDWIDTH="25%"BGCOLOR="#0000C0"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="book1.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Home</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#00C000"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="libgnet-reference.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Up</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="right"><AHREF="gnet-iochannel.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Next Page >>></B></FONT></A></TD></TR></TABLE></DIV><H1><ANAME="GNET-MCAST"></A>mcast</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN2429"></A><H2>Name</H2>mcast -- </DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN2432"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS"> struct <AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>;<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>* <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-NEW">gnet_mcast_socket_new</A> (void);<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>* <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-PORT-NEW">gnet_mcast_socket_port_new</A> (<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port);<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>* <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-INETADDR-NEW">gnet_mcast_socket_inetaddr_new</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);void <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-DELETE">gnet_mcast_socket_delete</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms);void <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-REF">gnet_mcast_socket_ref</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *s);void <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-UNREF">gnet_mcast_socket_unref</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *s);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-JOIN-GROUP">gnet_mcast_socket_join_group</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms, const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-LEAVE-GROUP">gnet_mcast_socket_leave_group</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms, const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-SEND">gnet_mcast_socket_send</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms, const <AHREF="gnet-udp.html#GUDPPACKET">GUdpPacket</A> *packet);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-RECEIVE">gnet_mcast_socket_receive</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms, <AHREF="gnet-udp.html#GUDPPACKET">GUdpPacket</A> *packet);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-HAS-PACKET">gnet_mcast_socket_has_packet</A> (const <AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *s);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-IS-LOOPBACK">gnet_mcast_socket_is_loopback</A> (const <AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-SET-LOOPBACK">gnet_mcast_socket_set_loopback</A> (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> b);#define <AHREF="gnet-mcast.html#GNET-MCAST-SOCKET-TO-UDP-SOCKET">gnet_mcast_socket_to_udp_socket</A> (MS)</PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN2477"></A><H2>Description</H2><P></P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN2480"></A><H2>Details</H2><DIVCLASS="REFSECT2"><ANAME="AEN2482"></A><H3><ANAME="GMCASTSOCKET"></A>struct GMcastSocket</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">struct GMcastSocket;</PRE></TD></TR></TABLE><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN2487"></A><H3><ANAME="GNET-MCAST-SOCKET-NEW"></A>gnet_mcast_socket_new ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>* gnet_mcast_socket_new (void);</PRE></TD></TR></TABLE><P>Create a new multicast socket with any available port. Use this constructor when you are creating a new group and the port number doesn't matter. If you want to receive packets from the group, you will have to join it next.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2495"><SPANSTYLE="white-space: nowrap"><SPANCLASS="emphasis"><ICLASS="EMPHASIS">Returns</I></SPAN> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN2500"></A><H3><ANAME="GNET-MCAST-SOCKET-PORT-NEW"></A>gnet_mcast_socket_port_new ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>* gnet_mcast_socket_port_new (<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port);</PRE></TD></TR></TABLE><P>Create a new multicast socket with the given port. If you know the port of the group you will join, use this constructor. If you want to receive packets from the group, you will have to join it, using the full address, next.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2509"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>port</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2514"><SPANSTYLE="white-space: nowrap"><SPANCLASS="emphasis"><ICLASS="EMPHASIS">Returns</I></SPAN> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN2519"></A><H3><ANAME="GNET-MCAST-SOCKET-INETADDR-NEW"></A>gnet_mcast_socket_inetaddr_new ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>* gnet_mcast_socket_inetaddr_new (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);</PRE></TD></TR></TABLE><P>Create a new multicast socket with the <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>. If you know the <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> of the group you will join, use this constructor. If you want to receive packets from the group, you will have to join it next.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2530"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>ia</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2535"><SPANSTYLE="white-space: nowrap"><SPANCLASS="emphasis"><ICLASS="EMPHASIS">Returns</I></SPAN> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN2540"></A><H3><ANAME="GNET-MCAST-SOCKET-DELETE"></A>gnet_mcast_socket_delete ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gnet_mcast_socket_delete (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms);</PRE></TD></TR></TABLE><P>Close and delete a multicast socket.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2548"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>ms</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN2553"></A><H3><ANAME="GNET-MCAST-SOCKET-REF"></A>gnet_mcast_socket_ref ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gnet_mcast_socket_ref (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *s);</PRE></TD></TR></TABLE><P>Increment the reference counter of the <AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2562"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>s</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN2567"></A><H3><ANAME="GNET-MCAST-SOCKET-UNREF"></A>gnet_mcast_socket_unref ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void gnet_mcast_socket_unref (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *s);</PRE></TD></TR></TABLE><P>Remove a reference from the <AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A>. When reference count reaches 0, the socket is deleted.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2576"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>s</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN2581"></A><H3><ANAME="GNET-MCAST-SOCKET-JOIN-GROUP"></A>gnet_mcast_socket_join_group ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> gnet_mcast_socket_join_group (<AHREF="gnet-mcast.html#GMCASTSOCKET">GMcastSocket</A> *ms, const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);</PRE></TD></TR></TABLE><P>Join the multicast group using the multicast socket. You should only join one group per socket.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2591"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>ms</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -