Starten einer Socket Verbindung - wie?

levo

Grünschnabel
Ich grüße jeden einzelnen dieser Community
und verfasse hiermit meinen ersten Beitrag, auf ein schönes Zusammenschreiben :)

Ich lese mich seit 2 Tagen durch diverse Foren/Tutorials/Beiträge im ganzen http://www..
aber vlt ist genau das mein Problem: Ich bin sehr verwirrt bzw durcheinander.

Ich möchte:
- Ein kleines Netzwerk zu Hause aufbauen (1 PC als Server, 1 PC als Client (später 2 PCs als Client)).
- Mich austoben (kleine 2 Player Spielchen programmieren) und somit Erfahrung sammeln.

Ich habe bereits:
- TomCat installiert und kann vom Client auf Server zureifen (standard Seite von Tomcat wird angezeigt)
- Eine TestAnwendung mit 2 .class Dateien (Einer für den Server, einer für Client)

Aber ich kriege das letzte Teilchen vom Puzzle nicht gebacken.
Ich weiß nicht, wie ich die Server.class "starten" soll, so dass sie auf einem Port auf eingehende Verbindungen lauschen soll.

Tomcat Version: 5.5.27

Hier, falls notwendig, die Codes

Client:
Code:
import java.net.*;
import java.io.*;

public class Client {

	Client() throws IOException {
		Socket server = new Socket ("192.168.2.109", 8080);
		InputStream input = server.getInputStream();
		OutputStream output = server.getOutputStream();
		output.write(5);
		output.write(10);
		output.flush();
		System.out.println (intput.read() );
		server.close();
		input.close();
		output.close();		
	}	
	
	public static void main (String[] args) {
		try {
			Client client = new Client();
		}	
		catch (IOException e) {
			System.out.print(e);
		}
	}	
}

Server:
Code:
import java.net.*;
import java.io.*;

public class KleinerServer {
	
	ServerSocket server = new ServerSocket(8080);
	
	KleinerServer() throws IOException {
	
		while (true) {
			Socket client = server.accept();
			InputStream input = client.getInputStream();
			OutputStream output = client.getOutputStream();
			int zahl1 = input.read();
			int zahl2 = input.read();
			output.write(zahl1 + zahl2);
			output.flush();
			input.close();
			output.close();
		}				
	}	
	
	public static void main (String[] args) {
		try {
			KleinerServer server = new KleinerServer();	
		}	
		catch (IOException e) {
			System.out.print(e);
		}
	}
}

Brauche ich überhaupt für eine Socketanwendung den TomCat Server?
Wenn ja, wie "starte" ich die KleinerServer.class Datei?

Kurz und bündig: Ich sehe den Wald vor lauter Bäumen nicht mehr.

Bin jeder Hilfe dankbar.
 
Auweia.. Sehr ige Frage oben :)
Also brauche ich für meine Zwecke bei weitem keinen Webserver (Tomcat in meinem Fall).

Einfach auf dem Server die Server.class ausführen, ganz normal wie jedes andere Java Progrämmchen auch (über das Terminal/Konsole)
Und eben auf dem Client die Client.class (über das Terminal/Konsole)

Und schon klappts.
Das hier hat mir auch dazu verholfen (hier im Board gefunden, danke an den Poster):
http://java.sun.com/docs/books/tutorial/networking/sockets/definition.html

Also doch: Ich sah den Wald vor lauter Bäumen nicht.
Warum einfach wenn es auch kompliziert geht ;)

Danke trotzdem!
 
Wobei sich halt die Frage stellt warum man so eine Connection zu Fuß coden will. Ich meine, da muss es schon gute fachliche Gründe geben, auf so niedriger Schicht zu kommunizieren. Warum nicht etwas mehr Abstraktion? RMI? Hessian? Burlap? (REST) WebServices?

Gruß
Ollie
 

Neue Beiträge

Zurück