connect(InetAddress, int): This method is available in the java.net.DatagramSocket class of Java.
Syntax:
void java.net.DatagramSocket.connect(InetAddress address, int port)
This method takes two arguments. 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. By default, a datagram socket is not connected. If the socket is already closed, then this method has no effect.
Parameters: Two parameters are required for this method.
address: the remote address for the socket.
port: the remote port for the socket.
Returns: NA
Throws:
1. IllegalArgumentException - if the address is null or the port is out of range.
2. SecurityException - if a security manager has been installed and it does not permit access to the given remote address.
3. UncheckedIOException - may be thrown if connect fails, for example, if the destination address is non-routable.
Approach 1: When no exception
Java
package com.DatagramSocket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class DatagramSocketconnect2 {public static void main(String[] args) throwsSocketException, UnknownHostException {DatagramSocket datagramSocket = new DatagramSocket();InetAddress address = InetAddress.getLocalHost();int port = 100;datagramSocket.connect(address, port);System.out.println("Successfully connect");}}
Output:
Successfully connect
Approach 2: IllegalArgumentException
Java
package com.DatagramSocket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class DatagramSocketconnect2 {public static void main(String[] args)throws SocketException, UnknownHostException {DatagramSocket datagramSocket = new DatagramSocket();InetAddress address = InetAddress.getLocalHost();int port = 100000;datagramSocket.connect(address, port);System.out.println("Successfully connect");}}
Output:
Exception in thread "main" java.lang.IllegalArgumentException: port out of range:100000 at java.base/java.net.InetSocketAddress.checkPort(InetSocketAddress.java:153) at java.base/java.net.InetSocketAddress.<init>(InetSocketAddress.java:198) at java.base/sun.nio.ch.DatagramSocketAdaptor.connect(DatagramSocketAdaptor.java:118) at java.base/java.net.DatagramSocket.connect(DatagramSocket.java:341) at com.DatagramSocket.DatagramSocketconnect2.main(DatagramSocketconnect2.java:15)
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