Problem beim Lesen des Codes...

Was passiert in dem Code..?!

  • ?

    Stimmen: 0 0,0%
  • ?

    Stimmen: 1 100,0%

  • Anzahl der Umfrageteilnehmer
    1
  • Umfrage geschlossen .

beshay

Neues Mitglied
Hallo Ihr da draußen, ich habe einige Schwierigkeiten beim Lesen des Codes.

Den habe ich in einem 'alten' Ordner gefunden und würde gerne wissen was passiert. Ein paar sachen habe ich bereits rausgefunden, aber der Rest ist mir nicht schlüssig...

Es geht darum einen Server anzupeilen...man gibt die Adresse und den Port ein. Warum wird aber der String in einen charArray umgewandelt? muss das sein?



Java:
class Client {

	public static void main(String[] args) {
		try {
			// Anfang Eingabe
			String adresse;
			System.out.print("Adresse mit Port eingeben: ");
			BufferedReader adresseR = new BufferedReader(new InputStreamReader(
					System.in));
			adresse = adresseR.readLine(); // Eingabe auf Adresse

			char[] c;
			c = adresse.toCharArray(); // String in CharArray umwandeln
			String puffer = "";
			String method = "";
			String urlpuff = "";
			int v = adresse.length(); // Laenge des Strings
			int x = 0;
			// Methode auslesen (String bis zum ersten Leerzeichen)
			for (int i = 0; i < v; i++) {
				if (c[i] != ' ') {
					puffer = puffer + String.valueOf(c[i]);
				} else {
					method = puffer;
					x = i;
				}
			}

			puffer = "";
			// URL auslesen
			for (int i = (x + 1); i < v; i++) {
				puffer = puffer + String.valueOf(c[i]);
			}
			urlpuff = puffer;
			URL host = new URL(urlpuff);
			// Zerlegung der URL
			String host1 = host.getHost();
			String protocol = host.getProtocol();
			String path = host.getPath();
			int port = host.getPort();
			if (port < 0)
				port = 80; // fuer den Fall dass Port nicht angegeben wird ist er 80
			System.out.println(path);
			if (path.isEmpty()) {
				path = "/";
			}
			// Anfang Kontrollausgabe
			System.out.println(method);
			System.out.println(protocol);
			System.out.println(host1);
			System.out.println(port);
			System.out.println(path);
			// if (path==null){path= "/index.html";}
			// Ende Kontrollausgabe
			// Ende Eingabe

			// Verbindungsaufbau
			Socket socket = new Socket(host1, port);

			// "Kanal" zum Server
			OutputStream out = socket.getOutputStream();
			OutputStreamWriter out2 = new OutputStreamWriter(out);
			PrintWriter out1 = new PrintWriter(out2);

			System.out.println("vor der anfrage");
			// Anfrage an den Server
			System.out.println(method + ' ' + path + ' ' + protocol);
			System.out.println("Host: " + host1);
			out1.print(method + ' ' + path + ' ' + protocol + "\r\n");
			out1.print("Host: " + host1 + "\r\n" + "\r\n");

			// out1.println("test");
			System.out.println("vor flush");

			out1.flush(); // startet Uebertragung

			// mit BR Antwort vom Server puffern und an s uebergeben
			BufferedReader in = new BufferedReader(new InputStreamReader(
					socket.getInputStream()));
			String s = in.readLine();

			// Abfangen der Codes und sinnvolles Kommentar dazu
			if (s.contains("200")) {
				System.out.println("\r\n" + "Alles ist gut.");
			}
			if (s.contains("400")) {
				System.out.println("\r\n" + "Syntaktisch falsche Eingabe.");
			}
			if (s.contains("404")) {
				System.out.println("\r\n" + "Datei nicht gefunden.");
			}
			if (s.contains("501")) {
				System.out.println("\r\n" + "Serverfehler.");
			}
			System.out.println();
			System.out.println();

			// Ausgabe der ersten Zeile
			System.out.println(s);
			// Ausgabe alller weiteren
			while ((s = in.readLine()) != null)
				System.out.println(s);

			// socket schliessen
			socket.close();

			// BufferedReader schliessen
			in.close();
		}

		catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
 

Anhänge

  • Client.java
    3,2 KB · Aufrufe: 4

JavaMeister

Gesperrter Benutzer
Ja, es muss sein, da hier pport und Adresse und andere Sachen ausgelesen werden.

---

Und google mal nach "Wie man Fragen richtig stellt".

Und was soll das mit der Umfrage???
 

fehlerfinder

Bekanntes Mitglied
Hallo und willkommen im Forum ;-)

ich habe einfach mal geschaut, was denn mit diesem char-Array gemacht wird. Da wird also die Eingabezeile Zeichen für Zeiche an einen puffer angehängt, vorausgesetzt, es ist kein Leerzeichen. Ist es doch ein Leerzeichen, wird der puffer zu einer method umkopiert. Das könnte man sicherlich auf über ein String.indexOf() und anschließendem String.substr() erreichen. Dann wäre es evtl. etwas intuitiver. Ich vermute aber mal, dass die char-Array Variante schneller ist.

Allerdings geht der (gemutmaßte) Geschwindigkeitsvorteil schnell wieder flöten, weil die for-Schleife einfach weiter arbeitet, nachdem die Methode schon gefunden ist, d.h. die komplette Eingabezeile wird bis zum Ende gelesen. Das mag undramatisch sein, wenn tatsächlich nur zwei Angaben enthalten sind. Sobald aber noch ein zweites Leerzeichen auftritt, wird deine Methode überschrieben und auch das x für die weitere Verarbeitung - ab dann könnte es kompliziert (oder schlicht falsch) werden.

Weiterhin viel Erfolg beim "Dechiffrieren" ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
R JPA Problem beim Speichern eines Users Allgemeines EE 2
B Problem beim einbinden einer CSS in eine JSP Allgemeines EE 8
S Embedded JBoss Problem beim Deployment Allgemeines EE 4
H GWT Problem beim Ausführen Allgemeines EE 8
E Performance-Problem beim ersten Request Allgemeines EE 4
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
A Problem / Fehler beim Einbinden einer Klasse in ein JSP Allgemeines EE 20
B Problem beim Deployen auf Sun AS 8.1 Allgemeines EE 12
R Problem beim hochladen einer Web Application Allgemeines EE 16
H Problem beim Umstieg von 1.3 auf 1.4 Allgemeines EE 5
D Problem mit Update von ApacheHttpClient von 5.2 auf 5.3 Allgemeines EE 10
D Problem mit redundanten Servern Allgemeines EE 7
Azemaria JSF: Problem bei der einfachsten Applikation Allgemeines EE 2
P JPA Internal Problem Nullpointer Allgemeines EE 10
M Glassfish Deployment-Problem unter Eclipse Allgemeines EE 0
S WebSocket Problem Allgemeines EE 0
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
Raidri [SEAM] rich:dataTable sortBy Problem Allgemeines EE 6
T Problem mit den Beispielen von Apache Allgemeines EE 5
W JSF Validator Problem HTTP Status 500 Allgemeines EE 2
E JBoss 7.1 Datasource Problem Allgemeines EE 2
M JSP Problem -unbestimmte Anzahl von Werten Transportieren Allgemeines EE 9
S Problem mit EJB Verständnis Allgemeines EE 4
F JSP Problem mit Datenbankanbindung über Glassfishserver Allgemeines EE 4
S java Entities Problem Allgemeines EE 19
E Session Problem Allgemeines EE 9
F problem mit nullpointer bei DB zugriff Allgemeines EE 2
A Erste Schritte... Problem mit Hibernate Allgemeines EE 15
ruutaiokwu jboss problem - work-verzeichnis muss manuell gelöscht werden??? Allgemeines EE 5
Stillmatic sendRedirect Problem! Allgemeines EE 3
M Problem mit Lookup auf EJB3 mit Glassfish Allgemeines EE 11
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
X JBoss InitialContext problem Allgemeines EE 5
LordZed Problem mit dem einbinden von Bibliotheken, die sich gegenseitig verwenden Allgemeines EE 5
Q Problem mit JMS und Weblogic 10 Allgemeines EE 5
G Multi User Problem Allgemeines EE 8
G Datasource Problem Allgemeines EE 1
J OOP Java Array Problem Allgemeines EE 2
T Problem mit Java Transaction API Allgemeines EE 2
D Problem mit EJB: Bean soll Objekt eigener Klasse zurückgeben Allgemeines EE 2
N JavaMail Problem Allgemeines EE 4
N JBoss Problem mit Bibliothek in unterschiedlichen Versionen Allgemeines EE 2
A Tomcat -- JSP: komisches Problem Allgemeines EE 11
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
B Problem mit ActionListener Allgemeines EE 13
G Simples JSF-Projekt in Eclipse - Problem Allgemeines EE 9
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
J Problem mit EJB Aufruf und DualCore Rechner Allgemeines EE 4
J ejb3.0 datenbank problem Allgemeines EE 2
J Problem mit Zurück-Button Allgemeines EE 2
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
J problem mit jsp/js Allgemeines EE 2
B Help - EJB2 - Problem mit Hybernate und "LIMIT" Allgemeines EE 6
B JSTL Problem Allgemeines EE 8
byte Tomcat Deployment Problem (HTTP Status 503) Allgemeines EE 8
S Problem mit t:selectOneRadio und ValueChangeListener Allgemeines EE 2
S Problem mit Struts und tiles Allgemeines EE 4
B Problem mit JBoss-4.2.1.GA Allgemeines EE 8
N Tiles - JSF Problem Allgemeines EE 3
M JSF & EJB "Bean not bound" Problem Allgemeines EE 4
V MYSQL JDBC;java.lang.ClassNotFoundException; Problem Eclipse Allgemeines EE 3
megachucky JMS - Problem mit TemporaryQueue Allgemeines EE 2
G Problem mit MimeType/ContentType Allgemeines EE 4
E Java Mail problem Allgemeines EE 5
Y XFire - Maven Build Problem Allgemeines EE 2
D JSP Problem mit equals? Allgemeines EE 2
A Eclipse Start-Problem Allgemeines EE 5
S JSF - Custom converter Problem Allgemeines EE 3
Y JSF Uhrzeitausgabe Problem Allgemeines EE 4
Y JSF - rendered Problem Allgemeines EE 1
D Servlet Problem über Server Allgemeines EE 26
Zed JSF h:inputText h:outputText update Problem Allgemeines EE 2
K mysql treiber problem wenn import java.sql.* bei _servlet_ Allgemeines EE 2
S JDBC Mysql Connection Problem - datasource null Allgemeines EE 3
T Session-Problem Allgemeines EE 2
R Tiles - Layout-Problem wegen Leerzeichen Allgemeines EE 6
G Tomcat / Eclipse oder Web.xml Problem Allgemeines EE 11
S Netbeans 5.5 Visual Web Pack Problem mit INSERT und PK Allgemeines EE 4
D JSF Problem mit Action Allgemeines EE 2
F Klassen und zugriffs Problem "Help wanted"! Allgemeines EE 16
D <input type="file"> Problem Allgemeines EE 6
N Struts - Problem mit <html:link> Action Allgemeines EE 3
G Session Problem Allgemeines EE 5
T Ant Compiler Problem Allgemeines EE 9
T Problem dem Zaehler in mein Java - Code Allgemeines EE 2
A Hibernate-Problem mit MySQL-Cluster Allgemeines EE 6
H Servlet problem Allgemeines EE 10
G Problem mit Benutzerverwaltung Allgemeines EE 3
S Hibernate Mapping Problem Allgemeines EE 3
S Hibernate INSERT Problem Allgemeines EE 11
S Dummes JSP-Problem Allgemeines EE 8
P EJB-Installations-Problem Allgemeines EE 4
S CSS Problem in JSP Allgemeines EE 16
C Problem mit html:optionsCollection Allgemeines EE 4
R HILFE: Problem mit JSF examples Allgemeines EE 10
R Problem mit value-expression Allgemeines EE 7
R Problem mit for-schleife in JSP tag Allgemeines EE 8
B Struts Problem: Array in JSP ausgeben (logic:iterate) Allgemeines EE 12

Ähnliche Java Themen

Neue Themen


Oben