Thread - Networking

W

Waaah!

Gast
Hallo zusammen,

ich bin gerade an einigen Java Übungen dran und hätte mich jetzt gerne an einer Thread-Networking Aufgabe probiert. Ich habe allerdings überhaupt keine Ahnung wie ich da ran gehen muss. Ich hoffe ihr könnt mir weiterhelfen, denn in 2 Wochen habe ich Prüfung und dann muss es sitzen ;)

Schreiben Sie ein Server-Programm,
das Anfragen auf Port 8080 annimmt. Es erwartet Requests der Art

GET /colorpage/r/g/b HTTP/1.x
Weitere, nicht-leere Textzeilen...
[Leerzeile]

r, g, b, x sind ganze Zahlen,
die ersten drei im Bereich (0, 255).

Wenn die Anfrage die oben gezeigte Gestalt hat,
antwortet das Programm mit

HTTP/1.0 200 OK
[Leerzeile]
<html><body bgcolor="#RRGGBB"></body></html>

Dabei ist RRGGBB die Verkettung der Werte von r, g, b in jeweils
zweistelliger hexadezimaler Darstellung.
Für r = 25510 = FF16, g = 12810 = 8016, b = 0 fügen Sie zum Beispiel ein bgcolor="#FF8000" ein.

Wenn die Anfrage nicht die oben gezeigte Gestalt hat, antwortet das Programm mit
HTTP/1.0 404 NOT FOUND
[Leerzeile]

Starten Sie das Programm und besuchen Sie mit einem Webbrowser die Adresse

http://localhost:8080/colorpage/255/128/0


Sie sollten eine komplett orangefarbene Seite sehen.

Ich hab bisher nur versucht die Verbindung über ein Sockert mit dem localhost herzustellen und anschließend zu "readen".

Ich weiß das es viel verlangt ist, aber vll. kann mir jemand von Grund auf erklären wie ich an solch eine Aufgabe ranzugehen habe denn wir (Kommilitone und ich) sind wirklich mehr als überfordert :(

Vielen Danke im Voraus.
 
S

SlaterB

Gast
ranzugehen gibts da nichts anderes als Mathe-Aufgaben in der 5. Klasse, sollte bekannt sein

für all die benötigten Java-Informationen können auch Internet-Quellen dienen, falls noch nicht bekannt,
Socket-Client und Server-Beispiele findet man fast überall voll implementiert

sofern man das Java-Grundgerüst hat muss man nur noch Regeln einbauen,
wenn Eingabe ist x dann gib y zurück usw, nix spannendes zu erzählen

edit: wobei hier noch erstaunliche Http-Details dazukommen,
aber als Vorschritt kann man ja eine einfache Variante eines Servers bauen der "X" liest und dann "Y" zurückgibt,
funktioniert dann nicht im Browser, aber mit einem Java-Socket-Client,
alles kompliziertere später
 
Zuletzt bearbeitet von einem Moderator:
W

Waaah!

Gast
Tut mir leid aber so einfach ist es eben nicht für jeden.
Natürlich können Internet quellen genutzt werden, aber google mal nach so ner spezifischen eingabe/ausgabe. Ich find' da nichts.
Wenn man keine Ahnung hat wonach man sucht, findet man auch nicht mal eben was.

Schon klar dass ihr täglich mit dummen Fragen konfrontiert werdet, aber wenn man keinen Bock drauf hat, dann lieber nichts sagen als ein "google mal".

Ich würd nich fragen wenn ich was gefunden hätte.,.

Aber herzlichen Dank für deine "hilfreiche" Antwort ;)
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
du musst gar nicht die 'spezifische eingabe/ausgabe' finden, sondern generell erstmal laufende Sockets als Server + evtl. Client,
wenn du das schon hast dann kannst du dies auch posten, dann kann man ganz anders über weitere Details der Fragen reden,

bisher sieht das erste Posting nur nach der Marke 'wir haben eine Aufgabe, wissen von nix, bitte macht mal' aus,
deshalb auch nach Hausaufgaben verschoben,

Hinweise auf google sind also immer auch die Folge der bisher beschriebenen Arbeitsleistung,
überlege selber was sonst gepostet werden könnte, detaillierter Code?
 
W

Waah!

Gast
Das ist aber keine Hausaufgabe, denn im Studium gibts das gar nicht :D

V.a. da dies eine Prüfung ist die bereits vor 2 Semestern hätte geschrieben werden müssen.,.

Dies hatte ich bisher:
Java:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;


public class Farbseite {

	public static void main(String[] args) {
		try{
			Socket farbseite = new Socket("localhost", 8080);

			InputStream is = farbseite.getInputStream();

			while(reader.readLine != null){
				BufferedReader reader = new BufferedReader(is);

				String read = reader.readLine();
			}
		}
		
		catch{
			
		}
	}

}
 
S

SlaterB

Gast
tja, und Suchen führen zu Links wie
Michael Peuss - Socket-Programmierung in Java
wo in unzähligen Seiten + Abbildungen offensichtlich unbekannte Grundlagen zu Sockets erklärt werden
und Code-Beispiele so wesentliche Dinge klären wir dass ein Server die Klasse ServerSocket braucht statt nur Socket,

wenn du meinst darauf verzichten zu können und hoffst dass das hier jemand wiederholt, dann sehe ich wenig Chancen,
aber wer weiß..


mit Code wie
> while(reader.readLine != null){
> BufferedReader reader = new BufferedReader(is);
(reader wird (falsch) benutzt und dann erst in der Schleife deklariert?!) sind vielleicht auch ganz andere Wochen an Grundlagenarbeit nötig,
nichts für ungut
 
Zuletzt bearbeitet von einem Moderator:
W

Waah!

Gast
Wie ich schon sagte, wenn man nicht genau weiß wonach man suchen soll, dann findet man auch nichts.

Neben mir liegen aktuelle 3 Java Bücher (java von kopf bis fuß, das Javapraktikum und Programmieren mit java.

Und ehrlich gesagt sagt mir dein Link auch nichts anderes als die Bücher, drum wollt ich einfach mal in nem Forum wo scheinbar sehr viele Leute mit Ahnung sind nachfragen.

Aber scheinbar erfährt man da nichts neues. Denn das es google gibt weiß ich ;)

btw. inzwischen sitzen wir hier zu 3. und keinem von uns helfen deine Beiträge oder google... ;)
 
W

Waah!

Gast
Zu deinem editierten:

Das ich keine Ahnung habe? Da erzählst du mir ja nochmal was neues. Danke !
 

Neue Themen


Oben