Class java.net.DatagramSocket
java.lang.Object
|
+----java.net.DatagramSocket
- Subclasses:
- MulticastSocket
- 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.
- Since:
- JDK1.0
- See Also:
- DatagramPacket
Constructor Summary
|
DatagramSocket()
Constructs a datagram socket and binds it to any available port
on the local host machine.
|
DatagramSocket(int port)
Constructs a datagram socket and binds it to the specified port
on the local host machine.
|
DatagramSocket(int port,
InetAddress laddr)
Creates a datagram socket, bound to the specified local
address.
|
Method Summary
|
void
|
close()
Closes this datagram socket.
|
InetAddress
|
getLocalAddress()
Gets the local address to which the socket is bound.
|
int
|
getLocalPort()
Returns the port number on the local host to which this socket is bound.
|
int
|
getSoTimeout()
Retrive setting for SO_TIMEOUT.
|
void
|
receive(DatagramPacket p)
Receives a datagram packet from this socket.
|
void
|
send(DatagramPacket p)
Sends a datagram packet from this socket.
|
void
|
setSoTimeout(int timeout)
Enable/disable SO_TIMEOUT with the specified timeout, in
milliseconds.
|
Methods inherited from class java.lang.Object
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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 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 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 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.
Submit a bug or feature
Submit comments/suggestions about new javadoc look.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.