说点题外话:for(int i=1; i<254; i++)
{
try{
Socket s = new Socket("192.168.0."+i , 4455);
vector.add("192.168.0."+i);
}
catch(IOException e){
//如果建立连接不成功,就会抛出异常,自然就不会添家到vector中.
}
}小编程方法问题:是把for循环放在try里好呢,还是把try放在for里比较好呢?
频繁地调用try也会带来资源损耗,似乎。哪为高手有好说法,请指点一二啊。。
{
try{
Socket s = new Socket("192.168.0."+i , 4455);
vector.add("192.168.0."+i);
}
catch(IOException e){
//如果建立连接不成功,就会抛出异常,自然就不会添家到vector中.
}
}小编程方法问题:是把for循环放在try里好呢,还是把try放在for里比较好呢?
频繁地调用try也会带来资源损耗,似乎。哪为高手有好说法,请指点一二啊。。
解决方案 »
- 与tomcat服务器建立socket连接
- 怎样在MyEclipse下使用Java实现数据库中导入导出Excel表
- 请问如何将html表单转换生成word文档?
- WebLogic 的webService
- struts spring hibernate整合问题(要多少分自己说)
- 要作毕业论文了,是关于j2ee的,希望大家推荐一套开发J2EE软件
- 使用URLDecoder.decode 报URLDecoder: Illegal hex characters in escape (%) pattern -
- 关于Servlet过滤器的问题?
- 有关jboss的问题,熟悉着请指教
- jbuilder编译出错是什么原因啊?急送分
- 晕了 大家来帮帮我!关于数组与容器的问题(急死我了)!
- jboss-3.0.8_tomcat-4.1.24.zip配置今晚搞定就给分
把for 放在 try里面, 一旦出现异常,循环就结束了, 达不到目的啊.
-------------------------------------------------------------
收到。
我想说的是其他(for try)的时候,用哪种方式最好,不是针对您的程序。
开60个线程
起始到结束端口当做参数传给SOCKET类连接ING...这样做大概几秒钟有了..
Scanner.javaimport java.net.*;
import java.io.*;public class Scanner implements Runnable
{
private InetAddress IPAddress;
private int Port;
private Thread allportThread; public Scanner(String IPAddress, int port)
{
try
{
this.IPAddress = this.IPAddress.getByName(IPAddress);
this.Port = port;
}
catch(Exception e)
{
System.out.println("The host does not exist.");
}
} public void run()
{ try
{
Socket TestPort = new Socket(this.IPAddress, this.Port); //if this port cannot been connected, throw a exception.
System.out.println(this.Port + ": exist"); //if connected, print out.
}
catch(Exception e){
// System.out.println("The host port is not open!");
e.printStackTrace();
}
}
//String[] args ΪÊäÈëµÄ²ÎÊý
public static void main(String[] args)
{
String str;
str = "TPoI Scanner 1.0 - Network Host Scanner\n";
str += "Author: T.T (TPoI:http://www.tpoi.net)\n\n";
str += "Usage: Scanner <options> <Hostname>\n\n";
str += "<options> List:\n";
str += " -allport : scan the status of all the ports of the specified host\n";
str += " -port %0 : scan the status of the specified ports(%0) of the specified host\n\n";
str += "Examples:\n";
str += " Scanner -allport http://www.microsoft.com/n";
str += " Scanner -port 80 21.64.34.191"; if(args.length==0)
{
System.out.println(str);
}
else
{
System.out.println("Length:"+args.length);
args[0] = args[0].toUpperCase().trim();
System.out.println("args[0]:"+args[0]);
char switchArgs = args[0].charAt(1);
switch(switchArgs)
{
case 'A':
{
for(int i=1;i<=65535;i++)
{
System.out.println("args[1]:"+args[1]); // args[1] ΪÖ÷»úµØÖ·
Scanner mainScanner = new Scanner(args[1],i);
System.out.println("number:"+mainScanner.allportThread.activeCount());
if(mainScanner.allportThread.activeCount()>100)
mainScanner.run();
else
{
mainScanner.allportThread = new Thread(mainScanner);
mainScanner.allportThread.start();
}
}
break;
}
case 'P':
{
System.out.println("args[2]:"+args[2]+"---Parameter2:"+java.lang.Integer.parseInt(args[1],10));
Scanner mainScanner = new Scanner(args[2],java.lang.Integer.parseInt(args[1],10));//args[1] ÒÔ10½øÖÆÏÔʾ
try
{
mainScanner.run();
}
catch(Exception e)
{
System.out.println("parameter error");
}
break;
}
default:
System.out.println(str);
}
}
}
}
是怎么实现,小弟愚钝,还请多多指教
--------------------------应该就是用线程啦
不过前面那发广播的方法倒很不错。
使用syn扫描应该很快 ,但java里不知道有没有直接的ip包的api设置和调用。