gpt4 book ai didi

java - java中socket api的问题

转载 作者:行者123 更新时间:2023-11-30 09:35:42 24 4
gpt4 key购买 nike

我正在设计一个端口扫描器来检测正在使用的端口。问题是它显示所有端口都未使用,即使我知道其中一些正在使用。需要帮助确定问题。这是我的代码。


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);
}
}
}

}

最佳答案

在那里看:http://docs.oracle.com/javase/6/docs/api/java/net/Socket.html#Socket%28java.lang.String,%20int%29

Socket 构造函数抛出三个异常:
UnknownHostException - 如果无法确定主机的 IP 地址。
IOException - 如果在创建套接字时发生 I/O 错误。
SecurityException - 如果安全管理器存在并且其 checkConnect 方法不允许该操作。

当端口已被使用时,它们都不会被抛出。您可以尝试使用 bind() 方法,如果套接字已绑定(bind),该方法将抛出 IOException。

关于java - java中socket api的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11222727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com