📄 multicastsocket.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc on Thu Apr 27 23:35:33 PDT 2000 --><TITLE>Java 2 Platform SE v1.3: Class MulticastSocket</TITLE><LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style"></HEAD><BODY BGCOLOR="white"><!-- ========== START OF NAVBAR ========== --><A NAME="navbar_top"><!-- --></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MulticastSocket.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup> 2 Platform<br>Std. Ed. v1.3</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../java/net/JarURLConnection.html"><B>PREV CLASS</B></A> <A HREF="../../java/net/NetPermission.html"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../index.html" TARGET="_top"><B>FRAMES</B></A> <A HREF="MulticastSocket.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><!-- =========== END OF NAVBAR =========== --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.net</FONT><BR>Class MulticastSocket</H2><PRE><A HREF="../../java/lang/Object.html">java.lang.Object</A> | +--<A HREF="../../java/net/DatagramSocket.html">java.net.DatagramSocket</A> | +--<B>java.net.MulticastSocket</B></PRE><HR><DL><DT>public class <B>MulticastSocket</B><DT>extends <A HREF="../../java/net/DatagramSocket.html">DatagramSocket</A></DL><P>The multicast datagram socket class is useful for sending and receiving IP multicast packets. A MulticastSocket is a (UDP) DatagramSocket, with additional capabilities for joining "groups" of other multicast hosts on the internet. <P> A multicast group is specified by a class D IP address and by a standard UDP port number. Class D IP addresses are in the range <CODE>224.0.0.0</CODE> to <CODE>239.255.255.255</CODE>, inclusive. The address 224.0.0.0 is reserved and should not be used. <P> One would join a multicast group by first creating a MulticastSocket with the desired port, then invoking the <CODE>joinGroup(InetAddress groupAddr)</CODE> method: <PRE> // join a Multicast group and send the group salutations ... String msg = "Hello"; InetAddress group = InetAddress.getByName("228.5.6.7"); MulticastSocket s = new MulticastSocket(6789); s.joinGroup(group); DatagramPacket hi = new DatagramPacket(msg.getBytes(), msg.length(), group, 6789); s.send(hi); // get their responses! byte[] buf = new byte[1000]; DatagramPacket recv = new DatagramPacket(buf, buf.length); s.receive(recv); ... // OK, I'm done talking - leave the group... s.leaveGroup(group); </PRE> When one sends a message to a multicast group, <B>all</B> subscribing recipients to that host and port receive the message (within the time-to-live range of the packet, see below). The socket needn't be a member of the multicast group to send messages to it. <P> When a socket subscribes to a multicast group/port, it receives datagrams sent by other hosts to the group/port, as do all other members of the group and port. A socket relinquishes membership in a group by the leaveGroup(InetAddress addr) method. <B> Multiple MulticastSocket's</B> may subscribe to a multicast group and port concurrently, and they will all receive group datagrams. <P> Currently applets are not allowed to use multicast sockets.<P><DL><DT><B>Since: </B><DD>JDK1.1</DD></DL><HR><P><!-- ======== INNER CLASS SUMMARY ======== --><!-- =========== FIELD SUMMARY =========== --><!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Constructor Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#MulticastSocket()">MulticastSocket</A></B>()</CODE><BR> Create a multicast socket.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#MulticastSocket(int)">MulticastSocket</A></B>(int port)</CODE><BR> Create a multicast socket and bind it to a specific port.</TD></TR></TABLE> <!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Method Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> <A HREF="../../java/net/InetAddress.html">InetAddress</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#getInterface()">getInterface</A></B>()</CODE><BR> Retrieve the address of the network interface used for multicast packets.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> int</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#getTimeToLive()">getTimeToLive</A></B>()</CODE><BR> Get the default time-to-live for multicast packets sent out on the socket.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> byte</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#getTTL()">getTTL</A></B>()</CODE><BR> <B>Deprecated.</B> <I>use the getTimeToLive method instead, which returns an <b>int</b> instead of a <b>byte</b>.</I></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#joinGroup(java.net.InetAddress)">joinGroup</A></B>(<A HREF="../../java/net/InetAddress.html">InetAddress</A> mcastaddr)</CODE><BR> Joins a multicast group.Its behavior may be affected by <code>setInterface</code>.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#leaveGroup(java.net.InetAddress)">leaveGroup</A></B>(<A HREF="../../java/net/InetAddress.html">InetAddress</A> mcastaddr)</CODE><BR> Leave a multicast group.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#send(java.net.DatagramPacket, byte)">send</A></B>(<A HREF="../../java/net/DatagramPacket.html">DatagramPacket</A> p, byte ttl)</CODE><BR> Sends a datagram packet to the destination, with a TTL (time- to-live) other than the default for the socket.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#setInterface(java.net.InetAddress)">setInterface</A></B>(<A HREF="../../java/net/InetAddress.html">InetAddress</A> inf)</CODE><BR> Set the multicast network interface used by methods whose behavior would be affected by the value of the network interface.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#setTimeToLive(int)">setTimeToLive</A></B>(int ttl)</CODE><BR> Set the default time-to-live for multicast packets sent out on this socket.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../java/net/MulticastSocket.html#setTTL(byte)">setTTL</A></B>(byte ttl)</CODE><BR> <B>Deprecated.</B> <I>use the setTimeToLive method instead, which uses <b>int</b> instead of <b>byte</b> as the type for ttl.</I></TD></TR></TABLE> <A NAME="methods_inherited_from_class_java.net.DatagramSocket"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Methods inherited from class java.net.<A HREF="../../java/net/DatagramSocket.html">DatagramSocket</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../java/net/DatagramSocket.html#close()">close</A>, <A HREF="../../java/net/DatagramSocket.html#connect(java.net.InetAddress, int)">connect</A>, <A HREF="../../java/net/DatagramSocket.html#disconnect()">disconnect</A>, <A HREF="../../java/net/DatagramSocket.html#getInetAddress()">getInetAddress</A>, <A HREF="../../java/net/DatagramSocket.html#getLocalAddress()">getLocalAddress</A>, <A HREF="../../java/net/DatagramSocket.html#getLocalPort()">getLocalPort</A>, <A HREF="../../java/net/DatagramSocket.html#getPort()">getPort</A>, <A HREF="../../java/net/DatagramSocket.html#getReceiveBufferSize()">getReceiveBufferSize</A>, <A HREF="../../java/net/DatagramSocket.html#getSendBufferSize()">getSendBufferSize</A>, <A HREF="../../java/net/DatagramSocket.html#getSoTimeout()">getSoTimeout</A>, <A HREF="../../java/net/DatagramSocket.html#receive(java.net.DatagramPacket)">receive</A>, <A HREF="../../java/net/DatagramSocket.html#send(java.net.DatagramPacket)">send</A>, <A HREF="../../java/net/DatagramSocket.html#setDatagramSocketImplFactory(java.net.DatagramSocketImplFactory)">setDatagramSocketImplFactory</A>, <A HREF="../../java/net/DatagramSocket.html#setReceiveBufferSize(int)">setReceiveBufferSize</A>, <A HREF="../../java/net/DatagramSocket.html#setSendBufferSize(int)">setSendBufferSize</A>, <A HREF="../../java/net/DatagramSocket.html#setSoTimeout(int)">setSoTimeout</A></CODE></TD></TR></TABLE> <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Methods inherited from class java.lang.<A HREF="../../java/lang/Object.html">Object</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../java/lang/Object.html#clone()">clone</A>, <A HREF="../../java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="../../java/lang/Object.html#finalize()">finalize</A>, <A HREF="../../java/lang/Object.html#getClass()">getClass</A>, <A HREF="../../java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="../../java/lang/Object.html#notify()">notify</A>, <A HREF="../../java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="../../java/lang/Object.html#toString()">toString</A>, <A HREF="../../java/lang/Object.html#wait()">wait</A>, <A HREF="../../java/lang/Object.html#wait(long)">wait</A>, <A HREF="../../java/lang/Object.html#wait(long, int)">wait</A></CODE></TD></TR></TABLE> <P><!-- ============ FIELD DETAIL =========== --><!-- ========= CONSTRUCTOR DETAIL ======== --><A NAME="constructor_detail"><!-- --></A><TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=1><FONT SIZE="+2"><B>Constructor Detail</B></FONT></TD></TR></TABLE><A NAME="MulticastSocket()"><!-- --></A><H3>MulticastSocket</H3>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -