?? 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 + -