summaryrefslogtreecommitdiff
path: root/libjava/java/net/DatagramPacket.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2001-10-01 18:24:54 +0000
committerMark Wielaard <mark@gcc.gnu.org>2001-10-01 18:24:54 +0000
commit477946a63dee474c725243ae0d998f4cba1bfc0a (patch)
tree4dda11c70f74fbaee3eeeac3ddfd3597c909ea23 /libjava/java/net/DatagramPacket.java
parentbe55d07d6f4666c031950dc610bdb3fe85c007b5 (diff)
FileWriter.java: Merge with Classpath.
* java/io/FileWriter.java: Merge with Classpath. * java/io/FilterInputStream.java: Ditto. (mark): no longer synchronized (reset): Likewise * java/io/FilterOutputStream.java: Merge with Classpath. * java/io/FilterReader.java: Ditto. (mark): no longer synchronized (reset): Likewise * java/io/FilterWriter.java: Merge with Classpath. * java/io/Writer.java: Ditto. * java/lang/Compiler.java: Ditto. * java/lang/Process.java: Ditto. * java/lang/Void.java: Ditto. * java/net/ContentHandler.java: Ditto. * java/net/DatagramPacket.java: Ditto. * java/net/MulticastSocket.java: Merge comments with Classpath. From-SVN: r45930
Diffstat (limited to 'libjava/java/net/DatagramPacket.java')
-rw-r--r--libjava/java/net/DatagramPacket.java189
1 files changed, 172 insertions, 17 deletions
diff --git a/libjava/java/net/DatagramPacket.java b/libjava/java/net/DatagramPacket.java
index b08f6736e4f..3e166281e66 100644
--- a/libjava/java/net/DatagramPacket.java
+++ b/libjava/java/net/DatagramPacket.java
@@ -1,35 +1,99 @@
-// DatagramPacket.java - Represents packets in a connectionless protocol.
+/* DatagramPacket.java -- Class to model a packet to be sent via UDP
+ Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-/* Copyright (C) 1999, 2000 Free Software Foundation
+This file is part of GNU Classpath.
- This file is part of libgcj.
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
-package java.net;
+As a special exception, if you link this library with other files to
+produce an executable, this library does not by itself cause the
+resulting executable to be covered by the GNU General Public License.
+This exception does not however invalidate any other reasons why the
+executable file might be covered by the GNU General Public License. */
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date April 28, 1999.
- */
+package java.net;
-/**
+/*
* Written using on-line Java Platform 1.2 API Specification, as well
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
* Status: Believed complete and correct.
*/
+/**
+ * This class models a packet of data that is to be sent across the network
+ * using a connectionless protocol such as UDP. It contains the data
+ * to be send, as well as the destination address and port. Note that
+ * datagram packets can arrive in any order and are not guaranteed to be
+ * delivered at all.
+ * <p>
+ * This class can also be used for receiving data from the network.
+ * <p>
+ * Note that for all method below where the buffer length passed by the
+ * caller cannot exceed the actually length of the byte array passed as
+ * the buffer, if this condition is not true, then the method silently
+ * reduces the length value to maximum allowable value.
+ *
+ * Written using on-line Java Platform 1.2 API Specification, as well
+ * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
+ * Status: Believed complete and correct.
+ *
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @author Aarom M. Renn (arenn@urbanophile.com) (Documentation comments)
+ * @date April 28, 1999.
+ */
+
public final class DatagramPacket
{
+/**
+ * The data buffer to send
+ */
private byte[] buffer;
+
+/**
+ * This is the offset into the buffer to start sending from or receiving to.
+ */
private int offset;
+
+/**
+ * The length of the data buffer to send
+ */
private int length;
+
+/**
+ * The address to which the packet should be sent or from which it
+ * was received
+ */
private InetAddress address;
+
+/**
+ * The port to which the packet should be sent or from which it was
+ * was received.
+ */
private int port;
- // JDK1.2
+/**
+ * This method initializes a new instance of <code>DatagramPacket</code>
+ * which has the specified buffer, offset, and length.
+ *
+ * @param buf The buffer for holding the incoming datagram.
+ * @param offset The offset into the buffer to start writing.
+ * @param length The maximum number of bytes to read.
+ *
+ * @since Java 1.2
+ */
public DatagramPacket(byte[] buf, int offset, int length)
{
if (buf == null)
@@ -49,12 +113,30 @@ public final class DatagramPacket
this.port = -1;
}
+/**
+ * Initializes a new instance of <code>DatagramPacket</code> for
+ * receiving packets from the network.
+ *
+ * @param buf A buffer for storing the returned packet data
+ * @param length The length of the buffer (must be <= buf.length)
+ */
public DatagramPacket(byte[] buf, int length)
{
this(buf, 0, length);
}
- // JDK1.2
+/**
+ * Initializes a new instance of <code>DatagramPacket</code> for
+ * transmitting packets across the network.
+ *
+ * @param buf A buffer containing the data to send
+ * @param offset The offset into the buffer to start writing from.
+ * @param len The length of the buffer (must be <= buf.length)
+ * @param addr The address to send to
+ * @param port The port to send to
+ *
+ * @since Java 1.2
+ */
public DatagramPacket(byte[] buf, int offset, int length,
InetAddress address, int port)
{
@@ -79,37 +161,86 @@ public final class DatagramPacket
this.port = port;
}
+/**
+ * Initializes a new instance of <code>DatagramPacket</code> for
+ * transmitting packets across the network.
+ *
+ * @param buf A buffer containing the data to send
+ * @param length The length of the buffer (must be <= buf.length)
+ * @param address The address to send to
+ * @param port The port to send to
+ */
public DatagramPacket(byte[] buf, int length, InetAddress address, int port)
{
this(buf, 0, length, address, port);
}
+/**
+ * Returns the address that this packet is being sent to or, if it was used
+ * to receive a packet, the address that is was received from. If the
+ * constructor that doesn not take an address was used to create this object
+ * and no packet was actually read into this object, then this method
+ * returns <code>null</code>.
+ *
+ * @return The address for this packet.
+ */
public synchronized InetAddress getAddress()
{
return address;
}
+/**
+ * Returns the port number this packet is being sent to or, if it was used
+ * to receive a packet, the port that it was received from. If the
+ * constructor that doesn not take an address was used to create this object
+ * and no packet was actually read into this object, then this method
+ * will return 0.
+ *
+ * @return The port number for this packet
+ */
public synchronized int getPort()
{
return port;
}
+/**
+ * Returns the data buffer for this packet
+ *
+ * @return This packet's data buffer
+ */
public synchronized byte[] getData()
{
return buffer;
}
- // JDK1.2
+/**
+ * This method returns the current offset value into the data buffer
+ * where data will be sent from.
+ *
+ * @return The buffer offset.
+ *
+ * @since Java 1.2
+ */
public synchronized int getOffset()
{
return offset;
}
+/**
+ * Returns the length of the data in the buffer
+ *
+ * @return The length of the data
+ */
public synchronized int getLength()
{
return length;
}
+/**
+ * This sets the address to which the data packet will be transmitted.
+ *
+ * @param addr The destination address
+ */
public synchronized void setAddress(InetAddress iaddr)
{
if (iaddr == null)
@@ -118,6 +249,11 @@ public final class DatagramPacket
address = iaddr;
}
+/**
+ * This sets the port to which the data packet will be transmitted.
+ *
+ * @param port The destination port
+ */
public synchronized void setPort(int iport)
{
if (iport < 0 || iport > 65535)
@@ -126,6 +262,11 @@ public final class DatagramPacket
port = iport;
}
+/**
+ * Sets the data buffer for this packet.
+ *
+ * @param buf The new buffer for this packet
+ */
public synchronized void setData(byte[] buf)
{
// This form of setData requires setLength to be called separately
@@ -136,7 +277,15 @@ public final class DatagramPacket
buffer = buf;
}
- // JDK1.2
+/**
+ * This method sets the data buffer for the packet.
+ *
+ * @param buf The byte array containing the data for this packet.
+ * @param offset The offset into the buffer to start reading data from.
+ * @param length The number of bytes of data in the buffer.
+ *
+ * @since Java 1.2
+ */
public synchronized void setData(byte[] buf, int offset, int length)
{
// This form of setData must be used if offset is to be changed.
@@ -156,6 +305,11 @@ public final class DatagramPacket
this.length = length;
}
+/**
+ * Sets the length of the data in the buffer.
+ *
+ * @param length The new length. (Where len <= buf.length)
+ */
public synchronized void setLength(int length)
{
if (length < 0)
@@ -166,4 +320,5 @@ public final class DatagramPacket
this.length = length;
}
-}
+} // class DatagramPacket
+