## Uses of Class
java.net.SocketAddress

Packages that use SocketAddress
java.net: Provides the classes for implementing networking applications.
java.nio.channels: Defines channels, which represent connections to entities that are capable of performing I/O operations, such as files and sockets; defines selectors, for multiplexed, non-blocking I/O operations.

### Uses of SocketAddress in java.net

Subclasses of SocketAddress in java.net
`class` `InetSocketAddress` This class implements an IP Socket Address (IP address + port number) It can also be a pair (hostname + port number), in which case an attempt will be made to resolve the hostname.

Methods in java.net that return SocketAddress
`SocketAddress` Proxy.`address()` Returns the socket address of the proxy, or `null` if its a direct connection.
`SocketAddress` Socket.`getLocalSocketAddress()` Returns the address of the endpoint this socket is bound to.
`SocketAddress` ServerSocket.`getLocalSocketAddress()` Returns the address of the endpoint this socket is bound to.
`SocketAddress` DatagramSocket.`getLocalSocketAddress()` Returns the address of the endpoint this socket is bound to.
`SocketAddress` Socket.`getRemoteSocketAddress()` Returns the address of the endpoint this socket is connected to, or `null` if it is unconnected.
`SocketAddress` DatagramSocket.`getRemoteSocketAddress()` Returns the address of the endpoint this socket is connected to, or `null` if it is unconnected.
`SocketAddress` DatagramPacket.`getSocketAddress()` Gets the SocketAddress (usually IP address + port number) of the remote host that this packet is being sent to or is coming from.

Methods in java.net with parameters of type SocketAddress
`void` Socket.`bind(SocketAddress bindpoint)` Binds the socket to a local address.
`void` ServerSocket.`bind(SocketAddress endpoint)` Binds the `ServerSocket` to a specific address (IP address and port number).
`void` DatagramSocket.`bind(SocketAddress addr)` Binds this DatagramSocket to a specific address and port.
`void` ServerSocket.`bind(SocketAddress endpoint, int backlog)` Binds the `ServerSocket` to a specific address (IP address and port number).
`void` Socket.`connect(SocketAddress endpoint)` Connects this socket to the server.
`void` DatagramSocket.`connect(SocketAddress addr)` Connects this socket to a remote socket address (IP address + port number).
`void` Socket.`connect(SocketAddress endpoint, int timeout)` Connects this socket to the server with a specified timeout value.
`protected abstract void` SocketImpl.`connect(SocketAddress address, int timeout)` Connects this socket to the specified port number on the specified host.
`abstract void` ProxySelector.`connectFailed(URI uri, SocketAddress sa, IOException ioe)` Called to indicate that a connection could not be established to a proxy/socks server.
`void` MulticastSocket.`joinGroup(SocketAddress mcastaddr, NetworkInterface netIf)` Joins the specified multicast group at the specified interface.
`protected abstract void` DatagramSocketImpl.`joinGroup(SocketAddress mcastaddr, NetworkInterface netIf)` Join the multicast group.
`void` MulticastSocket.`leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)` Leave a multicast group on a specified local interface.
`protected abstract void` DatagramSocketImpl.`leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)` Leave the multicast group.
`void` DatagramPacket.`setSocketAddress(SocketAddress address)` Sets the SocketAddress (usually IP address + port number) of the remote host to which this datagram is being sent.

Constructors in java.net with parameters of type SocketAddress
Constructor and Description
`DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)` Constructs a datagram packet for sending packets of length `length` with offset `ioffset`to the specified port number on the specified host.
`DatagramPacket(byte[] buf, int length, SocketAddress address)` Constructs a datagram packet for sending packets of length `length` to the specified port number on the specified host.
`DatagramSocket(SocketAddress bindaddr)` Creates a datagram socket, bound to the specified local socket address.
`MulticastSocket(SocketAddress bindaddr)` Create a MulticastSocket bound to the specified socket address.
`Proxy(Proxy.Type type, SocketAddress sa)` Creates an entry representing a PROXY connection.

### Uses of SocketAddress in java.nio.channels

Methods in java.nio.channels that return SocketAddress
`abstract SocketAddress` SocketChannel.`getLocalAddress()` Returns the socket address that this channel's socket is bound to.
`SocketAddress` NetworkChannel.`getLocalAddress()` Returns the socket address that this channel's socket is bound to.
`abstract SocketAddress` DatagramChannel.`getLocalAddress()` Returns the socket address that this channel's socket is bound to.
`abstract SocketAddress` AsynchronousSocketChannel.`getLocalAddress()` Returns the socket address that this channel's socket is bound to.
`abstract SocketAddress` AsynchronousServerSocketChannel.`getLocalAddress()` Returns the socket address that this channel's socket is bound to.
`abstract SocketAddress` ServerSocketChannel.`getLocalAddress()` Returns the socket address that this channel's socket is bound to.
`abstract SocketAddress` SocketChannel.`getRemoteAddress()` Returns the remote address to which this channel's socket is connected.
`abstract SocketAddress` DatagramChannel.`getRemoteAddress()` Returns the remote address to which this channel's socket is connected.
`abstract SocketAddress` AsynchronousSocketChannel.`getRemoteAddress()` Returns the remote address to which this channel's socket is connected.
`abstract SocketAddress` DatagramChannel.`receive(ByteBuffer dst)` Receives a datagram via this channel.

Methods in java.nio.channels with parameters of type SocketAddress
`abstract SocketChannel` SocketChannel.`bind(SocketAddress local)`
`NetworkChannel` NetworkChannel.`bind(SocketAddress local)` Binds the channel's socket to a local address.
`abstract DatagramChannel` DatagramChannel.`bind(SocketAddress local)`
`abstract AsynchronousSocketChannel` AsynchronousSocketChannel.`bind(SocketAddress local)`
`AsynchronousServerSocketChannel` AsynchronousServerSocketChannel.`bind(SocketAddress local)` Binds the channel's socket to a local address and configures the socket to listen for connections.
`ServerSocketChannel` ServerSocketChannel.`bind(SocketAddress local)` Binds the channel's socket to a local address and configures the socket to listen for connections.
`abstract AsynchronousServerSocketChannel` AsynchronousServerSocketChannel.`bind(SocketAddress local, int backlog)` Binds the channel's socket to a local address and configures the socket to listen for connections.
`abstract ServerSocketChannel` ServerSocketChannel.`bind(SocketAddress local, int backlog)` Binds the channel's socket to a local address and configures the socket to listen for connections.
`abstract boolean` SocketChannel.`connect(SocketAddress remote)` Connects this channel's socket.
`abstract DatagramChannel` DatagramChannel.`connect(SocketAddress remote)` Connects this channel's socket.
`abstract Future<Void>` AsynchronousSocketChannel.`connect(SocketAddress remote)` Connects this channel.
`abstract <A> void` AsynchronousSocketChannel.`connect(SocketAddress remote, A attachment, CompletionHandler<Void,? super A> handler)` Connects this channel.
`static SocketChannel` SocketChannel.`open(SocketAddress remote)` Opens a socket channel and connects it to a remote address.
`abstract int` DatagramChannel.`send(ByteBuffer src, SocketAddress target)` Sends a datagram via this channel.