receive(DatagramPacket): This method is available in the java.net.DatagramSocket class of Java.
Syntax:
void java.net.DatagramSocket.receive(DatagramPacket p) throws IOException
This method takes one argument. This method receives a datagram packet from this socket. When this method returns, the DatagramPacket's buffer is filled withthe data received. The datagram packet also contains the sender'sIP 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 packet's length, the message is truncated.
Parameters: One parameter is required for this method.
p: the DatagramPacket into which to place the incoming data.
Returns: NA
Throws:
1. IOException - if an I/O error occurs.
2. SocketTimeoutException - if setSoTimeout was previously calledand the timeout has expired.
3. PortUnreachableException - may be thrown if the socket is connected a currently unreachable destination.
4. IllegalBlockingModeException - if this socket has an associated channel,and the channel is in non-blocking mode.
Approach
Java
package com.DatagramSocket;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class DatagramSocketreceive {public static void main(String[] args) throws IOException {int port = 300;InetAddress laddr = InetAddress.getLocalHost();DatagramSocket datagramSocket =new DatagramSocket(port, laddr);byte buf[] = { 'a', 'b', 'c', 'd', 'e' };int length = 5;DatagramPacket p = new DatagramPacket(buf, length);System.out.println("Receive");datagramSocket.receive(p);}}
Output:
Receive
Some other methods of DatagramSocket class
DatagramSocket(): This method constructs a datagram socket and binds it to any available port on the local host machine.
DatagramSocket(int): This method constructs a datagram socket and binds it to the specified port on the local host machine.
DatagramSocket(SocketAddress): This method creates a datagram socket, bound to the specified local socket address.
DatagramSocket(int, InetAddress): This method creates a datagram socket, bound to the specified local address.
bind(SocketAddress): This method binds this DatagramSocket to a specific address and port.
connect(SocketAddress): This method connects this socket to a remote socket address (IP address + port number).
connect(InetAddress, int): This method connects the socket to a remote address for this socket. When a socket is connected to a remote address, packets may only be sent to or received from that address.
disconnect(): This method disconnects the socket.
getBroadcast(): This method tests if SO_BROADCAST is enabled.
getChannel(): This method returns the unique java.nio.channels.DatagramChannel object associated with this datagram socket, if any.
getInetAddress(): This method returns the address to which this socket is connected. Returns null if the socket is not connected.
getLocalAddress(): This method gets the local address to which the socket is bound.
getLocalPort(): This method returns the port number on the local host to which this socket is bound.
getLocalSocketAddress(): This method returns the address of the endpoint this socket is bound to.
getOption(SocketOption): This method returns the value of a socket option.
getPort(): This method returns the port number to which this socket is connected.
getReceiveBufferSize(): This method gets the value of the SO_RCVBUF option for this DatagramSocket, which is the buffer size used by the platform for input on this DatagramSocket.
getRemoteSocketAddress(): This method returns the address of the endpoint this socket is connected to, or null if it is unconnected.
getReuseAddress(): This method tests if SO_REUSEADDR is enabled.
getSendBufferSize(): This method gets the value of the SO_SNDBUF option for this DatagramSocket, which is the buffer size used by the platform for output on this DatagramSocket.
getSoTimeout(): This method retrieves the setting for SO_TIMEOUT. 0 returns implies that the option is disabled (i.e., timeout of infinity).
getTrafficClass(): This method gets the traffic class or type-of-service in the IP datagram header for packets sent from this DatagramSocket.
isBound(): This method returns the binding state of the socket.
isClosed(): This method returns whether the socket is closed or not.
isConnected(): This method returns the connection state of the socket.
receive(DatagramPacket): This method receives a datagram packet from this socket.
send(DatagramPacket): This method sends a datagram packet from this socket.
setBroadcast(boolean): This method enables/disables SO_BROADCAST.
DatagramSocket.setDatagramSocketImplFactory(DatagramSocketImplFactory): This method sets the datagram socket implementation factory for the application.
setOption(SocketOption, String): This method sets the value of a socket option.
setReceiveBufferSize(int): This method sets the SO_RCVBUF option to the specified value for this DatagramSocket.
setReuseAddress(boolean): This method enables/disables the SO_REUSEADDR socket option.
setSendBufferSize(int): This method sets the SO_SNDBUF option to the specified value for this DatagramSocket.
setSoTimeout(int): This method enables/disable SO_TIMEOUT with the specified timeout, in milliseconds.
setTrafficClass(int): This method sets the traffic class or type-of-service octet in the IP datagram header for datagrams sent from this DatagramSocket.
supportedOptions(): This method returns a set of the socket options supported by this socket. This method will continue to return the set of options even after the socket has been closed.
No comments:
Post a Comment