ciao a tutti. ricordate il famoso programma per capire quali pc erno connessi alla rete e quali rispondevano al ping? bene quella parte sono riuscito a farla. ora però ho un problema sulla parte successiva cioè testare la porta 8000 del pc che risponde al ping. stranamente va in eccezzione e non riesco a capire perchè.
secondo voi a cosa è dovuta l'eccezzione?(nullpointer)codice:package javaapplication1; import java.io.*; import java.net.*; import java.lang.*; import java.util.*; import java.net.SocketException; import java.net.Socket; import java.net.SocketAddress; public class connessione { public static void main(String[] args)throws Exception { InetAddress indirizzo=null; NetworkInterface rete=null; byte []mioip=new byte[4]; int[] altroip=new int[4]; short s; int i; int j; int k; boolean x; boolean y; String nome; Vector ipcherispondono= new Vector(); Vector stampanti=new Vector(); Socket connesso; mioip=indirizzo.getLocalHost().getAddress(); rete=NetworkInterface.getByInetAddress(indirizzo.getLocalHost()); System.out.println(rete); List<InterfaceAddress> indirizzi = rete.getInterfaceAddresses(); for (InterfaceAddress elem : indirizzi) { System.out.println(elem.toString()); System.out.println(elem.getNetworkPrefixLength()); s=elem.getNetworkPrefixLength(); if(s==16){ altroip[0]=(int)mioip[0]; altroip[1]=(int)mioip[1]; for(i=30;i<256;i++){ for(j=229;j<256;j++){ altroip[2]=i; altroip[3]=j; mioip[0]=(byte)altroip[0]; mioip[1]=(byte)altroip[1]; mioip[2]=(byte)altroip[2]; mioip[3]=(byte)altroip[3]; indirizzo.getByAddress(mioip); x=indirizzo.getByAddress(mioip).isReachable(5000); if(x){ ipcherispondono.addElement(indirizzo); System.out.print("\n"+altroip[0]+"."+altroip[1]+"."+altroip[2]+"."+altroip[3]+"pinga"); connesso=new Socket(indirizzo,8000); // y=connesso.isConnected(); // connesso.close(); // if(y){ // System.out.println("è una stampante"); // } /* else{ System.out.print("\n"+altroip[0]+"."+altroip[1]+"."+altroip[2]+"."+altroip[3]+"non pinga"); }*/ //System.out.println(altroip[1]); //System.out.println(altroip[2]); //System.out.println(altroip[2]); } } } }

Rispondi quotando

