Java端口扫描器

Java端口扫描器,java,Java,输出: import java.net.Socket; import java.io.IOException; public class Main { public static void main(String[] args) { String remote = "69.163.44.171"; int i = 0; do { try { Socket s = new Socket(remote,i);

输出:

import java.net.Socket;
import java.io.IOException;

public class Main {


    public static void main(String[] args) {
       String remote = "69.163.44.171";
       int i = 0;
       do {
       try {
       Socket s = new Socket(remote,i);
       System.out.println("Server is listening on port " + i+ " of " + remote);
       s.close();

       } catch (IOException ex) {
       System.out.println("Server is not listening on port " + i+ " of " + remote);
    }
       i++;
       } while(i == 55000);
}

我使用while循环,因为它速度更快,现在要问的问题是,为什么它只扫描一个端口

您需要暂时更改此选项:

Server is not listening on port 0 of 69.163.44.171
BUILD SUCCESSFUL (total time: 0 seconds)

while(i您需要暂时更改此选项:

Server is not listening on port 0 of 69.163.44.171
BUILD SUCCESSFUL (total time: 0 seconds)
while(i你说的是
while(i==55000)
而不是
while(i你说的是
while(i==55000)
而不是
while(i这部分:

while(i <= 55000)
只要
i
恰好是55000,就会重复循环

由于
i
开始时为0,然后递增为1,因此它将永远不会到达值为55000的位置,因此永远不会重新启动循环。

此部分:

while(i <= 55000)
只要
i
恰好是55000,就会重复循环


由于
i
开始时为0,然后增加到1,因此它将永远不会到达值为55000的位置,因此也不会重新启动循环。

好吧……您认为条件
而(i==55000)
为真

好吧……您认为条件
而(i==55000)
是否为
正确

while条件错误已在多个答案中指出,因此我不会重复。不过,我可能会提出一个建议:如果您使用一个和一些,而不是一次尝试一个,您可能可以更快地完成此操作。一些阅读材料。

while条件错误已在多个答案中指出,因此我将不要重复了。不过我可能会提出一个建议:如果你一次使用一个和一些,而不是一次尝试一个,你可能会更快。一些阅读材料。

编译器错误:在
之后缺少
,而(I==55000)
并且使用正常的
for
将使代码更具可读性…(a)这个程序是网络绑定的。如何循环与它的性能完全无关。(b)这是一个“do”循环而不是“while”循环。(c)比什么快?为什么?这个while循环太快了,它甚至没有循环。一个逻辑错误得到了2次投票?我闻到袜子的味道……编译器错误:缺少
之后while(I==55000)
并且对
使用普通的
将使代码更具可读性…(a)该程序受网络限制。如何循环与它的性能完全无关。(b)这是一个“do”循环而不是“while”循环。(c)比什么快?为什么?这个while循环太快了,甚至没有循环。一个逻辑错误得到了2次投票?我闻到了袜子的味道。。。