Hilfe **** kommt nicht weiter

R4PTURe

Grünschnabel
Und zwar kann man es ja dem Programm Namen entnehmen was es machen soll, es ist mein erstes Programm besteht aus viel Copy & Paste und viel rumgeteste, so aber jetzt komme ich nicht weiter. Ich will das wenn aus der CMD "Zeitüberschreitung der Anforderung." kommt, das der Prozess bzw. das Programm beendet wird, das Pingen funktioniert schon mit der IP-Eingabe nur das automatische beenden bekomme ich komischer Weise nicht hin, ich freue mich natürlich wenn ihr den Fehler findet und verbessert aber ich möchte nach der Verbesserung gerne noch mein Prog. erkennen. :)

Gruß R4PTUR3

package Main;



import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import javax.swing.JOptionPane;









public class PingFlood {



/**

* @param args

* @throws IOException

*/

public static void main(String[] args) throws IOException {

// String für die Zeitüberschreitungsabfrage

String Zeit = "Zeit?berschreitung der Anforderung.";



String text =""; // Lesepuffer

// Stream zum Einlesen der Prozeßausgabe

BufferedReader in;

PrintWriter out = new PrintWriter(System.out);

try {

// Prozeß anlegen



// String für die IP

String x = JOptionPane.showInputDialog("Bitte geben sie eine IP ein");

// Prozess-Name und das Exec-Kommando

Process Ping = Runtime.getRuntime().exec("cmd /c ping" + " " + x + " " + "-t" + " " + "-l" + " " + "65000");

System.out.println("Die IP Adresse" + " " + x + " " + "wird geflooded" );

// Eingabestream holen

in = new BufferedReader(

new InputStreamReader(Ping.getInputStream()));

// Alle Zeichen aus dem Stream auslesen und

// auf der Standardausgabe ausgeben

while ((text = in.readLine()) != null) {

out.println(text); out.flush();



If (text.equals(Zeit));

{Ping.destroy(); }



}

}

catch (IOException e) {

e.printStackTrace();

}

}



private static void If(boolean equals) {

// TODO Auto-generated method stub



}



}
 
Hallo R4PTUR3 und herzlich Willkommen bei tutorials.de :)

Zuerst möchte ich dich bitten, deine zukünftigen Code-Schnipsel in entsprechende Tags zu setzen, dann kann man das ganze viel einfacher lesen.

Beispiel: [ java] code, code, code [/ java] (Nur ohne Leerzeichen)

Java:
package Main;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import javax.swing.JOptionPane;

 

 

 

 

public class PingFlood {

     

      /**

      * @param args

      * @throws IOException

       */

      public static void main(String[] args) throws IOException {

            // String für die Zeitüberschreitungsabfrage

            String Zeit = "Zeit?berschreitung der Anforderung.";

           

            String text ="";    // Lesepuffer

            // Stream zum Einlesen der Prozeßausgabe

            BufferedReader in;

            PrintWriter out = new PrintWriter(System.out);

            try {

              // Prozeß anlegen

 

            // String für die IP   

            String x = JOptionPane.showInputDialog("Bitte geben sie eine IP ein");

      // Prozess-Name und das Exec-Kommando

            Process Ping = Runtime.getRuntime().exec("cmd /c ping" + " " + x + " " + "-t" + " " + "-l" + " " + "65000");

            System.out.println("Die IP Adresse" + " " + x + " " + "wird geflooded" );

      // Eingabestream holen

    in = new BufferedReader(

       new InputStreamReader(Ping.getInputStream()));

    // Alle Zeichen aus dem Stream auslesen und

    // auf der Standardausgabe ausgeben

    while ((text = in.readLine()) != null) {

      out.println(text); out.flush();

  

    If (text.equals(Zeit));

    {Ping.destroy(); }

     

    }

      }

  catch (IOException e) {

    e.printStackTrace();

  }

}

 

      private static void If(boolean equals) {

            // TODO Auto-generated method stub

           

      }

     

}

Bei deinem Problem kann ich dir leider nicht helfen, da ich in dem Codeteil keinen Fehler entdecken kann. Habe allerdings auch noch nicht allzu viel mit externen Prozessen in Java gemacht.

Jedoch frage ich mich, warum du dein Programm als "Ping-Flood" bezeichnest. Ich denke, dass du damit nicht mal einen Windows-95 Rechner in die Knie bekommst ;)

Gruß
BK
 
Zuletzt bearbeitet:
Danke Bratkartoffel,
Das ich damit irgendeinen Rechner down bekomme bezweifle ich auch, aber es ist ja auch ein Programm, das aus purer Langeweile und der Tatsache, das ich in der Schule nichts im Thema Java verstehe entstand, und soll auch nichts großes sein. Ich wollte einfach mal probieren etwas zu schreiben etwas halbwegs sinnvolles, dass nicht sowas wie die Ausgabe von "HelloWorld" ist :D. Wie gesagt bin absoluter Anfänger im Programmieren und habe keinerlei Vorkenntnisse, deswegen wollte ich hiermal nachfragen. Was meinst du mit Code-Schnipsel Tags? Tut mir leid aber wenn ich es nicht verstehe kann ich es auch in nächster Zeit nicht verbessern :).

Grüße R4PTUR3
 
Hi,

das mit dem noparse-Tags ist mir neu, danke sheel :)

Nun zu dem ursprünglichen Problem. Du versuchst etwas über Java zu lernen, indem du dir selbst ein Programm schreibst. Soweit bin ich einverstanden, nur lernst du nichts, wenn du "nur" ne kleine Oberfläge für ein bereits bestehendes Programm schreibst und das dann (meiner Meinung nach) total falsch als externes Programm startest.

Du würdest weit mehr lernen, wenn du deine Lösungen komplett und nativ in Java programmierst. Das obige kommt mir eher als negativ-Beispiel vor, sorry. Das rum-gehacke mit Aus- und Eingaben eines externen Prozesses ist kompliziert und sehr fehleranfällig, fang dir das bitte nicht an. Da könntest effektiver und leichter ein einfaches Batch-Script schreiben mit dem selben Ziel. ;)

Ich würde hier das Programm eher direkt in Java schreiben. Google liefert genug Ergebnisse, wenn ihn nach "Java ICMP" suchen lässt, hier mal ein Source der mich recht vielversprechend ansieht: ICMP Ping in JAVA. Hier werden viele Basics der Netzwerk-Technik verwendet die du kennen solltest. Unter anderen sind das ARP, ICMP.

Gruß
BK
 
Zuletzt bearbeitet:
Okay, das mit dem Java-Code einbinden hier im Forum habe ich jetzt gecheckt :D.
Das ich mir auch einfach eine Batch-Datei hätte schreiben können ist mir durchaus bewußt aber ist sehr langweilig und hilft mir in der Schule bei der Java-Programmierung glaube ich auch nicht weiter.
Mit dem Programm direkt in Java schreiben meinst du wahrsch. den Umweg über die CMD -Console weglassen? Das wäre Ideal, wenn das geht, weil so wollte ich es Ursprünglich, wusste nur nicht ob das möglich ist. :)
Wobei es wohl ein bisschen heftig ist diesen langen Sourcecode als absoluter Anfänger zu verstehen bzw nachzuahmen ^^.

Naja ist egal, möchte evtl. noch irgendwie noch Grafisch was machen an dem Programm aber mehr brauche ich denke ich nicht trotzdem danke für die Hilfe :)
mfg R4PTUR3
 
Zuletzt bearbeitet:
Der Fehler ist recht simpel. Du hast bei der if-Abfrage einen entscheidenen Fehler begangen. du hast das i groß geschrieben. Somit dachte deine Programmierumgebung (sieht nach Eclipse aus) du würdest eine Funktion erstellen wollen, die If() heißt und als Parameter einen boolschen Wert bekommt. Deshalb auch die unten von der Programmierumgebung automatisch erstellte Funktion, die du noch hättest ausprogrammieren sollen. Du hast wahrscheinlich beim Durchschauen der Fehler einfach was angeklickt, damit der Fehler verschwindet. Das ist dir auch gelungen, nur hast du dir damit auch die Funktion abgeschossen ;)

Der richtige Code muss lauten:

Java:
if(text.equals(Zeit)) {
     Ping.destroy();
}
 
Zurück