    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class java.net.DatagramSocket

    java.lang.Object
       |
       +----java.net.DatagramSocket

public class DatagramSocket
extends Object

This class represents a socket for sending and receiving datagram packets.

A datagram socket is the sending or receiving point for a connectionless packet delivery service. Each packet sent or received on a datagram socket is individually addressed and routed. Multiple packets sent from one machine to another may be routed differently, and may arrive in any order.

See Also:
  DatagramPacket

##

DatagramSocket()
  Constructs a datagram socket and binds it to any available port on the local host machine.
DatagramSocket(int)
  Constructs a datagram socket and binds it to the specified port on the local host machine.
DatagramSocket(int, InetAddress)
  Creates a datagram socket, bound to the specified local address.

##

close()
  Closes this datagram socket.
getLocalAddress()
  Gets the local address to which the socket is bound.
getLocalPort()
  Returns the port number on the local host to which this socket is bound.
getSoTimeout()
  Retrive setting for SO_TIMEOUT.
receive(DatagramPacket)
  Receives a datagram packet from this socket.
send(DatagramPacket)
  Sends a datagram packet from this socket.
setSoTimeout(int)
  Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds.

##

DatagramSocket

     public DatagramSocket() throws SocketException

  Constructs a datagram socket and binds it to any available port on the local host machine.

  Throws: SocketException
    if the socket could not be opened, or the socket could not bind to the specified local port.

DatagramSocket

     public DatagramSocket(int port) throws SocketException

  Constructs a datagram socket and binds it to the specified port on the local host machine.

  Parameters:
    local - port to use.
  Throws: SocketException
    if the socket could not be opened, or the socket could not bind to the specified local port.

DatagramSocket

     public DatagramSocket(int port,
                           InetAddress laddr) throws SocketException

  Creates a datagram socket, bound to the specified local address. The local port must be between 0 and 65535 inclusive.

  Parameters:
    port - local port to use
    laddr - local address to bind

##

send

     public void send(DatagramPacket p) throws IOException

  Sends a datagram packet from this socket. The `DatagramPacket` includes information indicating the data to be sent, its length, the IP address of the remote host, and the port number on the remote host.

  Parameters:
    p - the `DatagramPacket` to be sent.
  Throws: IOException
    if an I/O error occurs.
  See Also:
    DatagramPacket

receive

     public synchronized void receive(DatagramPacket p) throws IOException

  Receives a datagram packet from this socket. When this method returns, the `DatagramPacket`'s buffer is filled with the data received. The datagram packet also contains the sender's IP address, and the port number on the sender's machine.

  This method blocks until a datagram is received. The `length` field of the datagram packet object contains the length of the received message. If the message is longer than the buffer length, the message is truncated.

  Parameters:
    p - the `DatagramPacket` into which to place the incoming data.
  Throws: IOException
    if an I/O error occurs.
  See Also:
    DatagramPacket, DatagramSocket

getLocalAddress

     public InetAddress getLocalAddress()

  Gets the local address to which the socket is bound.

getLocalPort

     public int getLocalPort()

  Returns the port number on the local host to which this socket is bound.

  Returns:
    the port number on the local host to which this socket is bound.

setSoTimeout

     public synchronized void setSoTimeout(int timeout) throws SocketException

  Enable/disable SO_TIMEOUT with the specified timeout, in milliseconds. With this option set to a non-zero timeout, a call to receive() for this DatagramSocket will block for only this amount of time. If the timeout expires, a java.io.InterruptedIOException is raised, though the ServerSocket is still valid. The option must be enabled prior to entering the blocking operation to have effect. The timeout must be > 0. A timeout of zero is interpreted as an infinite timeout.

getSoTimeout

     public synchronized int getSoTimeout() throws SocketException

  Retrive setting for SO_TIMEOUT. 0 returns implies that the option is disabled (i.e., timeout of infinity).

close

     public void close()

  Closes this datagram socket.

    All Packages  Class Hierarchy  This Package  Previous  Next  Index

Submit a bug or feature - Version 1.1.8 of Java Platform API Specification
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1995-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.