多线程是较复杂程序设计过程中不可缺少的一部分。为了提高应用程序运行的性能,采用多线程的设计是一种比较可行的方案。本文通过介绍使用java编写的扫描计算机端口的实例,来说明多线程设计中应注意的问题,以及得出经常使用的多线程模型。
本文要求读者具备一定的java语言基础,对socket有一定的了解。本文的所有程序在java sdk 1.4.2编译通过并能正常运行。
现在,我们需要对一台主机扫描其端口,找出哪些端口是open的状态。我们先采用单线程进行处理,程序代码如下:
-------------------------------------------------------------------------------------------------------
import java.io.ioexception;
import java.net.socket;
import java.net.unknownhostexception;
public class portscannersinglethread {
public static void main(string[] args) {
string host = null; //第一个参数,目标主机。
int beginport = 1; //第二个参数,开始端口。
int endport = 65535; //第三个参数,结束端口。
try{
host = args[0];
beginport = integer.parseint(args[1]);
endport = integer.parseint(args[2]);
if(beginport <= 0 || endport >= 65536 || beginport > endport){
throw new exception("port is illegal");
}
}catch(exception e){
system.out.println("usage: java portscannersinglethread host beginport endport");
system.exi
闽公网安备 35060202000074号