localhost
-
Hi!
Also ich habe da einen Server geschrieben, nun weis ich aber nicht so recht wo denn dann der localhost ist, ist es das Verzeichnis in dem Die .class-Datei liegt? Denn ich habe über eine Art telnet versucht Kontakt aufzunehmen, hat auch geklappt, Befehl vom Server erkannt und zumindest versucht zu bearbeiten, jedoch wird immer eine FileNotFoundException geworfen wenn ich einen Stream zu einer Datei im Order Data der im gleichen Verzeichnis wie die .class liegt öffnen will. Warum wird die Datei nicht gefunden? Ich habe auch nochmal den absoluten Pfad per file://C:/.../Data/file.ext angegeben und trotzdem wurde nichts gefunden.
Danke!
-
Pogo schrieb:
nun weis ich aber nicht so recht wo denn dann der localhost ist, ist es das Verzeichnis in dem Die .class-Datei liegt?
-
Der Begriff "localhost" bezieht sich für gewöhnlich auf die IP-Adresse 127.0.0.1,
welche benutzt wird wenn man eine Verbindung mit dem eigenen Rechner aufbauen möchte.Es ist kein Verzeichnis in deinem Dateisystem!
-
Zafor schrieb:
Der Begriff "localhost" bezieht sich für gewöhnlich auf die IP-Adresse 127.0.0.1,
welche benutzt wird wenn man eine Verbindung mit dem eigenen Rechner aufbauen möchte.Es ist kein Verzeichnis in deinem Dateisystem!
Völlig korrekt...
P.S.: Ein bißchen Code wie Du mit dem Server ein File öffnest wäre ggf. hilfreich...
-
Nun gut, aber ich habe z.B. 2 Server, einmal Omnicron und FoxServ, bei FoxServ ist der localhost:
C:\FoxServ\www
und bei Omnicron ist es halt ein ganz anderer Ordner.
Und ich habe einfach mal ausgehend von beiden Verzeichnissen gesucht und keine Datei gefunden...
-
if (cmd.startsWith("SEND")) { StringTokenizer str = new StringTokenizer(cmd, " "); String file = str.nextToken(); file = str.nextToken(); int a = 0; is = new BufferedInputStream(new FileInputStream(file)); os = new BufferedOutputStream(socket.getOutputStream()); while ((a = is.available()) == 0); int size = 0; while (true) { byte[] buffer = new byte[a]; size = is.read(buffer, 0, a); if (size < 0) break; if (size < a) { byte[] buffer2 = new byte[size]; System.arraycopy(buffer, 0, buffer2, 0, size); buffer = buffer2; } os.write(buffer, 0, buffer.length); } }
-
Sag mal was steht in dem cmd da eigentlich konkret drinn wenn der bei der FileNotFoundException ankommt?
-
Also ein konkretes Beispiel:
cmd = "SEND /Data/settings.gpd";
habe aber auch sowas versucht:
cmd = "SEND http://localhost/Data/settings.gpd";
-
Ich weiß nicht mehr wie das heißt, aber warum führst Du bei einer Anfrage nicht erstmal GetCurrentPath() oder so ähnlich aus und schaust es Dir an?!?
-
Hmm kA welches System du benutzt aber je nach dem worauf der Server (Unix/Linux vs Windoof) läuft müssen die Striche richtig rum sein bei Pfadangaben... Versuch mal damit bevor du den cmd String beschreibst:
String sep = System.getProperty("file.separator"); String cmd = "SEND " + "Data" + sep + "settings.gpd";
Damit das ganze dann funzt müsste in dem Verzeichnis wo deine .class mit der main() drinn liegt ein Unterverzeichnis Data sein mit einer Datei namens "settings.gpd" da drinn (kA ob groß- und Kleinschreibung wichtig is...).
-
Hi
Versuch mal die Datei folgender masen zu öffnen.
cmd = "SEND Data/settings.gpd";
Lass mal das erste slash weg.
Um zu kontrollieren wo die Virtual Maschine die DAtei sucht kannst du folgendes immer versuchen.
Anstatt einer Lese Operation würde ich eine DAtei erzeugen.
Dann könntest du nachschauen wo er die Datei erzeugt, vieleicht kommst du dann auf den Richtigen Pfad.
-
@Sgt. Nukem & Zafor
Danke für eure mehr oder weniger konstruktiven Antworten, aber bist du dir sicher, dass der localhost kein Verzeichnis "ist"? Ich meine irgendwo her muss der Server ja seine Dateien holen und dieses Verzeichnis wird meiner Meinung nach mitder Adresse 127.0.0.1 angesprochen!
Es ist also tatsache so, dass der localhost im selben Verzeichnis liegt, wie der Server, jedenfalls ist das scheinbar standardmäßig so.
@CoTech & Geeesy
Vielen Dank! Es war tatsächlich der slash schuld! Ich war es einfach von Server requests gewohnt, einen slash voran zustellen.
-
Pogo schrieb:
@Sgt. Nukem & Zafor
Danke für eure mehr oder weniger konstruktiven Antworten, aber bist du dir sicher, dass der localhost kein Verzeichnis "ist"?
Ja, bin ich. Die beiden Sachen haben GAR NICHTS miteinander zu tun. Das erste ist eine "Adresse", d.h. Strassenbezeichnung des Wohnhauses, das zweite ist ein Aktenschrank, der im Haus steht.
Vielleicht mal ein bißchen über Netzwerktechnik informieren!Pogo schrieb:
@CoTech & Geeesy
Vielen Dank! Es war tatsächlich der slash schuld! Ich war es einfach von Server requests gewohnt, einen slash voran zustellen.
Jau, hab' das auch gerade gesehen.
Mit dem '/' fängst Du natürlich vom Root aus zu suchen, wo Du halt nichts findest...
-
@pogo
lies dir das mal durch:
http://www.ruhr-uni-bochum.de/~rothamcw/Lokale.Netze/tcpip.html
-
Ich bin ja nun nicht blöd! Und das ich mit, "wo liegt der localhost", nach einem Verzeichnis frage ist ja wohl nicht unverständlich! Ich habe mich schon ein bisschen über Netzwerke informiert. Ich weis sehr wohl, dass localhost, bzw. 127.0.0.1 eine Addresse ist, aber sie verweist halt auf ein Verzeichnis, wenn ich mich nicht irre... und so kann man nicht wirklich sagen, dass das miteinander GAR NICHTS zu tun hat!
-
Das ist nicht ganz so richtig.
localhost verweist nicht auf ein Verzeichnis sondern auf eine Netzwerkadresse.
Wenn man jetzt noch einen port dazu hat dann hat man ein Socket.Dieser Socket bedient dann anfragen die an ihn gestellt werden.
Dazu ist kein Verzeichnis notwendig.Man kann das so Prgrammieren das der Socket in einem Gewissen verzeichnis nachschaut und dort Dateien an den Client sendet.
BYE
-
Ja is ok, ich seh´s ja ein...