/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.core.cachepool.threadpool; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import com.jinhe.tss.core.cachepool.extend.assignment.IAssignment; /** * <p> Scanner.java </p> * 扫描机器的各个端口,判断各端口是开着还是关闭的。 * * @author 金普俊 2007-1-9 * */ public class _Scanner implements IAssignment { String host = ""; int port; long createTime = System.currentTimeMillis(); String oldInfo = ""; public _Scanner(){ try { Thread.sleep(2); //休眠n(ms),增加对象的创建时间 } catch (InterruptedException e) { } } public void excute() { Socket s = null; try { if(port > 0 && port % 5000 == 0) { System.out.println("已经扫描 " + port + " 个"); } s = new Socket(InetAddress.getByName(host), port); System.out.println("****** " + this + " ****** : " + " is opened."); } catch (IOException ex) { System.out.println("****** " + this + " ****** : " + " is closed."); } finally { try { if (s != null) s.close(); } catch (IOException e) { } } } public int hashCode(){ return new Long(createTime).hashCode() * new Long(System.currentTimeMillis()).hashCode(); } public boolean equals(Object o){ if(o instanceof _Scanner){ _Scanner temp = (_Scanner) o; return this.createTime == temp.createTime; } return false; } public String toString(){ return "(host : " + this.host + " , port : " + this.port + ", was(" + oldInfo + "))"; } public void recycle() throws Exception { oldInfo = "(host : " + this.host + " , port : " + this.port + ")"; this.host = ""; this.port = 0; } public void setHost(String host) { this.host = host; } public void setPort(int port) { this.port = port; } }