Announcement

Collapse
No announcement yet.

Ein paar komische Fragen zum Thema Internetprogrammierung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ein paar komische Fragen zum Thema Internetprogrammierung

    Hi,

    nun kommt sicherlich der Höhepunkt an Trivialität den meine fragen erreichen können, aber sei's drum ;-)

    1. Gibt es eine Möglichkeit von einer java-Appliktaion aus auf einfachem Wege festzustellen ob der lokale Rechner zur zeit über eine aktive Internetverbindung verfügt. Ich weiss: URL-Objekt mit gültiger Adresse erstellen und einen Connect versuchen, aber mir wäre es etwas cleverer lieber. Man fährt ja auch nicht mit einem Auto mit Vollgas auf der Landstrasse um zu testen ob die Bremsen funktionieren ;-) Also was mir vorschwebt wäre (auf das eben genannte Gleichnis bezogen) eine Möglichkeit einfach nachzuschauen ob Bremsen vorhanden sind... geht sowas ???

    2. Wenn ich auf eine Datei im lokalen Dateisystem über einen URL zugreifen möchte, wie muss der URL aussehen ? Nehmen wir an ich will auf Laufwerk d: im Verzeichnis intranet auf die Datei index.html zugreifen. Bisher habe ich (angeregt durch ein Java-Buch für diesen Fall folgenden URL benutzt:

    file://d/intranet/index.html

    Das funkt nicht. Weiss jemand was daran falsch ist ?

    3. Wenn ich einen URL auf eine Datei im Internet habe, und möchte lediglich herausfinden ob diese existiert. Gibt es eine Möglichkeit dies zu tun ohne erst lesend darauf zuzugreifen und dann zu merken dass das Ding nicht existiert ?

    Fragen über Fragen, aber dazu ist das Forum u.a. ja da. Ich hoffe, dass die Antworten auf die Fragen derart trivial sind, wie ich sie mir vorstelle.

    Danke im Voraus

    Jürgen

  • #2
    Hi Jürgen,
    Frage 2 und 3 lassen sich für DATEIEN mit folgendem Programm beantworten:<br>
    <pre><code>
    import java.io.*;
    import java.net.*;

    public class Test {

    public static void main(String[] argv) {
    URL url = null;
    try {
    url = new URL("file:/C:/jdk1.3/README.txt");
    }
    catch (MalformedURLException e) {
    e.printStackTrace();
    }
    String pathname = url.getPath();
    System.out.println("pathname="+pathname);
    File f = new File(pathname);
    if (f.exists()) {
    System.out.println("file exists");
    try {
    InputStream in = url.openStream();
    BufferedInputStream bufIn = new BufferedInputStream(in);
    byte buf[] = new byte[1024];
    int bytesRead;
    while ((bytesRead = bufIn.read(buf, 0, 1024)) != -1) {
    System.out.write(buf, 0, bytesRead);
    }
    }
    catch (IOException ex) {
    ex.printStackTrace();
    }
    }
    else {
    System.out.println("file does not exist!");
    }
    }
    }
    </code></pre>
    Setz einfach mal den Pfad für Deine JDK Installation ein, dann müsste<br>
    das Readme auf der Console erscheinen.<br>
    Zu Frage 1 habe ich auch noch keine geniale Idee.
    <p>
    Gruss Klau

    Comment


    • #3
      Noch 'ne Korrektur:<br>
      das Programm in Kommentar 1 oben funktioniert nur für Dateien, die<br> im Intranet zugreifbar sind, d.h. ge-mounted sind. Ich hab'<br>
      in Deiner Frage 3 fälschlicherweise INTRANET statt INTERNET gelesen.<br>
      Für INTRANET muss man noch nachdenken...
      <p>
      Gruss Klau

      Comment


      • #4
        Eine gute Nacht Klaus ;-)
        zu später Stunde habe ich noch die lösung für Frage 3 gefunden und teile Dir diese gern noch mit:

        Des Rätsels Lösung lautet:

        file://localhost/h:/intranet/index.html

        sieht komisch aus, funkt aber, zumindest bei mir.

        Nun ist aber Schicht im Schacht. Es ist spät und ich bin müde ;-)

        Jürge

        Comment


        • #5
          Hi Jürgen,
          noch eine Lösung zu Frage 1 und 3 (zugegeben: <br>
          file://localhost/h:/intranet/index.html sieht mir SEHR komisch aus):
          <pre><code>
          import java.io.*;
          import java.net.*;

          public class Test {

          public static void main(String[] argv) {
          ///// Zu Frage 1:
          try {
          InetAddress addr = InetAddress.getByName("java.sun.com");
          System.out.println("Computer is connected to the Internet");
          }
          catch (UnknownHostException e) {
          System.err.println("Computer is NOT connected to the Internet");
          }

          ///// Zu Frage 3:
          URL url = null;
          try {
          url = new URL("http://java.sun.com/index.html");
          }
          catch (MalformedURLException e) {
          e.printStackTrace();
          }
          try {
          InputStream in = url.openStream();
          System.out.println("URL filename does exist");
          }
          catch (IOException ex) {
          System.out.println("URL filename does NOT exist!");
          }
          }
          }
          </code></pre>
          Wenn Du Deine Internetverbindung löst, gibt das Programm einen<br>
          entsprechenden Kommentar aus, dto. wenn Du die URL veränderst,<br>
          z.B. in url = new URL("http://java.xxx.com/index.html");
          <p>
          Weiterhin fröhliches Schaffen!<br>
          Klau

          Comment


          • #6
            Noch ein Tip:

            file:///d:/intranet/index.html

            oder

            file:///home/whatever/file.tx

            Comment

            Working...
            X