In this
post, I am going to explain how to get all available ports in your machine
using ‘ServerSocket’ class.
public ServerSocket(int port) throws IOException
Create a
ServerSocket instance, if the port is available, else throws IOException. The
port number is an unsigned 16-bit integer, so there are maximum of 65535 ports.
If you pass the argument port as 0, then port number is automatically
allocated.
Following
snippet is used to get all available ports.
for (int
port = 1; port < 65535; port++) {
try {
ServerSocket socket = new
ServerSocket(port);
socket.close();
availablePorts.add(port);
} catch (IOException e) {
}
}
Following is
the complete working application.
import java.io.IOException; import java.net.ServerSocket; import java.util.ArrayList; import java.util.List; public class PortsChecker { public static List<Integer> getAvailablePorts() { List<Integer> availablePorts = new ArrayList<>(); for (int port = 1; port < 65535; port++) { try { ServerSocket socket = new ServerSocket(port); socket.close(); availablePorts.add(port); } catch (IOException e) { } } return availablePorts; } public static void main(String args[]) { List<Integer> ports = getAvailablePorts(); ports.stream().forEach(System.out::println); } }
No comments:
Post a Comment