Ho creato un pezzo di codice che accetta un indirizzo IP (dal metodo principale in un'altra classe) e quindi esegue il ciclo di un intervallo di indirizzi IP eseguendo il ping di ognuno di essi mentre procede. Ho un front-end GUI su questo ed è andato in crash (quindi perché ho fatto il multithreading.Il mio problema è che non posso più prendere l'indirizzo IP come argomento nel mio codice ping come il suo callable. per questo e non riesco a trovare un modo per aggirare questo. C'è un modo per un metodo callable per prendere argomenti? Se non c'è un altro modo per realizzare ciò che sto cercando di fare?C'è un modo per prendere una discussione in un metodo callable?
campione del mio codice:.
public class doPing implements Callable<String>{
public String call() throws Exception{
String pingOutput = null;
//gets IP address and places into new IP object
InetAddress IPAddress = InetAddress.getByName(IPtoPing);
//finds if IP is reachable or not. a timeout timer of 3000 milliseconds is set.
//Results can vary depending on permissions so cmd method of doing this has also been added as backup
boolean reachable = IPAddress.isReachable(1400);
if (reachable){
pingOutput = IPtoPing + " is reachable.\n";
}else{
//runs ping command once on the IP address in CMD
Process ping = Runtime.getRuntime().exec("ping " + IPtoPing + " -n 1 -w 300");
//reads input from command line
BufferedReader in = new BufferedReader(new InputStreamReader(ping.getInputStream()));
String line;
int lineCount = 0;
while ((line = in.readLine()) != null) {
//increase line count to find part of command prompt output that we want
lineCount++;
//when line count is 3 print result
if (lineCount == 3){
pingOutput = "Ping to " + IPtoPing + ": " + line + "\n";
}
}
}
return pingOutput;
}
}
IPtoPing usato per essere l'argomento che è stata presa
così .... questo non funzionerà se si passa il Callable come parametro a un'altra funzione che cerca di iterare il Callable contro una serie di argomenti è stato passato ... – Michael
È inteso come una dichiarazione o una domanda? Ad ogni modo, non riesco a capire cosa stai dicendo/chiedi. –