Here's a quick and fun code that you can try on. We know that the port no spans from 0 - 65535. So lets loop through that range and find the active ports in the system. This is called a Port Scanner.
There are no steps to do this. Just make a loop and try to establish a connection .
Implementation 01
The result I got was interesting. FYI this takes a longer time to finish scanning all 65535 ports. So I stropped just after I got a positive hit.
One of the things that I experienced was this is a very fast method compared to earlier one. I got the results for all the 65535 ports after about few seconds.
The results :
Any other alternative method? Yes, Just go to the Command Prompt and type in netstat -p tcp -ano
now run your simple server in port 9000 and type in the above code in the command prompt.
There it is. But where is all the fun of coding.
There are no steps to do this. Just make a loop and try to establish a connection .
Implementation 01
import java.net.Socket;
public class MyPortScanner {
public static void main(String[] args) {
for (int i = 0; i < 65535; i++) {
try {
Socket ClientSoc = new Socket("localhost",i);
System.out.println("Port "+i+" is active");
ClientSoc.close();
} catch (Exception e) {
System.out.println("Nope nothing on "+i+" port");
}
}
}
}
The result I got was interesting. FYI this takes a longer time to finish scanning all 65535 ports. So I stropped just after I got a positive hit.
So what is this port 80. Port 80 is a well known port used by the HTTP (Hypertext Transfer Protocol). Go ahead and try.
Implementation 02
Another method that we can use is try to create Server Sockets with all the port numbers looping from 0 to 65535. If it fails that means a used Socket.
import java.net.ServerSocket; public class MySecondPortScanner { public static void main(String[] args) { for (int i = 0; i < 65535; i++) { try { ServerSocket soc = new ServerSocket(i); System.out.println("Dude "+i+" not used"); } catch (Exception e) { System.out.println("This is a used socket no "+i); } } } }
One of the things that I experienced was this is a very fast method compared to earlier one. I got the results for all the 65535 ports after about few seconds.
The results :
Any other alternative method? Yes, Just go to the Command Prompt and type in netstat -p tcp -ano
now run your simple server in port 9000 and type in the above code in the command prompt.
There it is. But where is all the fun of coding.