Lo prometido es deuda :)
 
Asi que aqui va el codigo: 
Este es del programa principal: 
import java.io.*;
import java.lang.*;
import java.net.*; 
public class Escaneo{  
public static void main(String[] arg) 
{
	int i;
	int n;
 	for (i = 0; i < arg.length; i++)
 	{
	}
	if (i!= 4){ 
		System.out.println(" El programa debe recibir 4 argumentos");
		System.out.println(" 1er Argumento-> Equipo destino, mediante IP  xxx.xxx.xxx.xxx o www.xxx.x");
		System.out.println(" 2n  Argumento->Puerto inicial");
		System.out.println(" 3er Argumento-> Puerto final");
		System.out.println(" 4to Argumento-> Modo escaneo debe de ser un 0"); 
		System.out.println (" EJEMPLO: Escaneo 
www.google.es 2 56 0");
		System.exit(0);
	} //if// 
	int puertoini;
	int puertofin;
	int modo;
	puertoini=Integer.parseInt(arg[1]);
	puertofin=Integer.parseInt(arg[2]);
	modo=Integer.parseInt(arg[3]);
	error_puertos(puertoini, puertofin);
	error_puertos2(puertoini, puertofin);
	error_modo(modo); 
	System.out.println("Intentando conectar al servidor: "+arg[0].toString());
	while (puertoini<=puertofin){
		Cliente cliente=new  Cliente(arg[0],puertoini);
		puertoini++;
	}		
}//main// 
public static void error_puertos(int pi, int pf)
{
	if (pi < 1 || pi>65535) {
		System.out.println("El puerto inicial/final debe estar entre los valores 1 y 65535");
		System.exit(0);
	}//if
	if (pf < 1 || pf>65535){
	System.out.println("El puerto inicial/final debe estar entre los valores 1 y 65535");
	System.exit(0);
	}//if
}//error_puertos 
public static void error_puertos2(int pi, int pf)
{ 
	if (pi > pf) {
		System.out.println("El puerto inicial debe ser menor que el puerto final");
		System.exit(0);
	}
}//error_puertos2 
public static void error_modo(int m){
	if (m!=0 ){
		System.out.println(" Modo escaneo debe de ser un 0");
		System.exit(0);
	}//if
}//error_modo 
}//class// 
Ahora el de la clase cliente: 
import java.io.*;
import java.net.*;
import java.sql.*; 
class Cliente {
	Socket Cliente=null;
	DataInputStream recibo=null;
	DataOutputStream envio=null; 
	public Cliente(String host,int puerto){ 
		try{
			Cliente=new Socket(host,puerto);
			envio=new DataOutputStream(Cliente.getOutputStream());
			recibo=new DataInputStream(Cliente.getInputStream());
		}//try
		catch (UnknownHostException e){ 
			System.out.println("No se ha podido conectar con el servidor: " +host.toString());
			System.exit(0);
		}//cath 
		catch (IOException e1){ 
			System.out.println("Puerto: " +puerto+ " Cerrado");
		}//catch 
			if(Cliente !=null && envio !=null && recibo !=null){
				try{
				if(puerto<=1023){
				consulta(puerto);
				}//if
				else {servidor_http(host,puerto);} 
				envio.close();
				recibo.close();
				Cliente.close();
				}//try
				catch (UnknownHostException e){ 
					System.out.println("No se ha podido conectar con el servidor: " +host.toString());
				}//catch 
				catch (IOException e1){ 
					System.out.println("Error en entrada/salida datos");
				}//catch
			}//if
	}//cliente 
	public void consulta(int puerto){
		try{
			 File fichero=new File("Puertos.mdb");
			 String ruta=null;
			 if(fichero.exists()){
			 	 ruta=fichero.getAbsolutePath();
			 }//if
			 // la información para conectar la BD: 
http://www.gamarod.com.ar/articulos/...y_access.asp//
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //llamada al Driver JDBC-ODBC para cargarlo
			Connection conexion=DriverManager.getConnection("jdbc:odbc:Dr  iver={Microsoft Access Driver (*.mdb)};DBQ=" + ruta, "", "");//hacemos la conexion a la BD pasandole el patch
			Statement stat=conexion.createStatement();  
			ResultSet rs=stat.executeQuery("SELECT * FROM Ports WHERE Port="+puerto+"");
			 while (rs.next())
             {
                  System.out.println("Puerto: "+rs.getString(1)+ "  Servicio: "+rs.getString(2));
             }
             rs.close();
             stat.close();
             conexion.close();
			}//try
			catch(Exception e){ System.out.println("No se ha podido cargar el Driver JDBC-ODBC"); } 
	}//consulta
	public void servidor_http(String host, int puerto){ 
		String servicio=null;	
		try{
		URL url = new URL("http://" + host + ":" + puerto + "/");//constructor url//
		HttpURLConnection conexion=(HttpURLConnection)url.openConnection(); //abrimos una conexion//
		conexion.connect();
		if (conexion.getResponseCode() !=-1){
			System.out.println("Puerto: "+puerto+ "  Servicio: http");
		}//if
		conexion.disconnect();//la cerramos//
		}//try 
		catch (MalformedURLException e) {
	        System.out.println("MalformedURLException: " + e);
		}//catch
		catch (IOException e1){
			System.out.println("Error");
		}
	}//	servidor_http 
	}//class  
Lo q habia pensado en el principal era una vez conectado poner una opcion de establecer una conexion asi como en visual basic con el winsock, pero no veo como se aceptan sugerencias :)