어떤 포트가 사용 중인지 탐지하기 위해 포트 스캐너를 설계 중입니다. 문제는 일부 포트가 사용 중이라는 것을 알고 있더라도 사용하지 않는 포트를 모두 표시한다는 것입니다. 문제를 파악하는 데 도움이 필요합니다. 여기 내 코드가있다.Java에서 socket api 관련 문제
package portscanner;
import java.net.Socket;
import java.util.Scanner;
/**
*
* @author DeLL
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("Enter the range of ports to be scanned:");
Scanner ob=new Scanner(System.in);
int start=ob.nextInt();
int stop=ob.nextInt();
if(start<0||stop<0||start>65535||stop>65535){
System.out.println("Invalid Range!!!");
}
for(int i=start;i<=stop;i++){
try{
Socket sock = new Socket("127.0.0.1",i);
System.out.println("Port in use :"+i);
sock.close();
}
catch(Exception e){
System.out.println("Port not in use: "+i);
}
}
}
}
흠. 나를 위해 일합니다. 그것은 나에게 22 (ssh), 1090을 알려주고 다른 몇개는 사용 중이다. – Bombe
테스트 중에 방화벽이 활성화되어 있습니까? 방화벽은 일반적으로 자바 시작 프로그램 (예 : 'java.exe')에 대한 규칙을 만듭니다. 그것은 모든 자바 프로그램에 공통적이며 어떤 이유로 더 일찍 블랙리스트에 올 수도 있습니다. – Mersenne