Datenaustausch zweier rechner

N

Nabralanca

Gast
Heyhey^^

ums gleich vornewegzunehmen, ich habe mich an der suche des Forums versucht, bin aber iwie dran gescheitert :) und die gefundenen Threats haben mir auch net ganz geholfen.

Folgende Situation: Wir in der Schule müssen im Informatik unterricht ein Spiel programmieren. Ich habe ein einfaches game vor, was aber einen Multiplayer haben soll (sowas wie jump and run gegeneinander). Wir programmieren mit Eclipse und Java applets.

Wie kann ich nun Daten zwischen zwei Programmen auf zwei verschiedenen rechnern via Internet austauschen?
(Ip adresse und port ist bekannt)

Ich habe es schon geschafft via sockets eine Verbindung zwischen zwei servern aufzubauen: (aus nem i-net tutorial kopiert)
client :

Java:
public static void main(String[] args) throws IOException {

        Socket Socket = null;
        PrintWriter out = null;
        BufferedReader in = null;

        try {
            Socket = new Socket("192.168.178.21", 4444);
            out = new PrintWriter(Socket.getOutputStream(), true);
            in = new BufferedReader(new InputStreamReader(Socket.getInputStream()));
        } catch (UnknownHostException e) {
            System.err.println("No Host");
            System.exit(1);
        } catch (IOException e) {
            System.err.println("No Connection");
            System.exit(1);
        }

        BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
        String fromServer;
        String fromUser;

        
        while ((fromServer = in.readLine()) != null) {
            System.out.println("Server: " + fromServer);
            if (fromServer.equals("Bye."))
                break;
		    
            fromUser = stdIn.readLine();
	    if (fromUser != null) {
                System.out.println("Client: " + fromUser);
                out.println(fromUser);
	    }
        }

        out.close();
        in.close();
        stdIn.close();
        Socket.close();
    }

und als server:
Java:
public static void main(String[] args) throws IOException {

		 ServerSocket serverSocket = null;
	        try {
	            serverSocket = new ServerSocket(4444);
	            System.out.println("Erfolgreich erstellt");
	        } catch (IOException e) {
	            System.err.println("Could not listen on port: 4444.");
	            System.exit(1);
	        }

	        Socket clientSocket = null;
	        try {
	            clientSocket = serverSocket.accept();
	            System.out.println("Socket aufgenommen");
	        } catch (IOException e) {
	            System.err.println("Accept failed.");
	            System.exit(1);
	        }

	        PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
	        BufferedReader in = new BufferedReader(
					new InputStreamReader(
					clientSocket.getInputStream()));
	        String inputLine, outputLine;
	        KnockKnockProtocol kkp = new KnockKnockProtocol();

	        outputLine = kkp.processInput(null);
	        out.println(outputLine);



		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String ins = null;


		while ((inputLine = in.readLine()) != null) {
			System.out.println("schleife");
			outputLine = kkp.processInput(inputLine);
			String s = "";
			try {
				while ((ins = br.readLine()) != null) {
					s = ins;
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			//Anfrage vom Client ausgeben
			System.out.println("Client : "+inputLine);
			out.println(s);
			if (inputLine.equals("Bye."))
				break;
		}
		Console.class.getMethods();
		out.close();
		in.close();
		clientSocket.close();
		serverSocket.close();
	}

damit kann ich von einem rechner anfragen auf den server schicken, der mir dann antwortet.

Um zum Thema zurückzukommen: wie kann ich das jetzt umbauen zu dem prinzip:
a sendet b nen befehl
b empfängt befehl und wertet ihn aus
b führt befehl aus
?

Danke schonmal für antworten^^
 
F

Firephoenix

Gast
Auf mich kommt auch bald ein ähnliches Projekt zu, dies aber im Rahmen eines Studiums mit einer Gruppe aus anderen Informatikstudenten.
Bist du dir denn sicher, dass es einen Multiplayer haben muss?
Wenn du nämlich schon den Austausch aus einem Tutorial kopieren musst sieht das ganze am Ende wohl eher nach einer Frickellösung aus.
Alleine die ganze hintergrundgeschichte und synchronisation etc wird euch noch vor einige Probleme stellen.
 
N

Nabralanca

Gast
Ich fände es halt ein nettes Feature^^

Da das ganze als Seminar projekt angelegt ist hab ich auch noch ein Jahr zeit :)

Aber wie läuft so ein Prozess eigentlich grundliegend ab?
Also ein Datenaustausch, sagen wir ein einfaches Chatprogramm.

Kann mir vlt wer so ne art pseudo code geben?
 

darkeye2

Bekanntes Mitglied
ablauf bei einem chat:
client verbindet sich zum server (über socket)
der server erstellt für den clienten sofort einen neuen Handling thread, der alles andere macht
jeder client ist in einer liste beim server eingetragen
schickt nun ein user eine nachricht ab wird diese vom ihm zugeteilten serverThread empfangen. jeder dieser threads hat eine methode sendMessage, diese schicken an den user, mit dem es verbunden ist eine nachricht die dort ausgegeben wird.
Nun ruft der Thread systematisch in einer Schleife alle threads auf und ruft dort die sendMessage(nachricht) Methode auf.
Somit erhält jeder user die nachricht.

Das war jetzt ganz simple normal wird da etwas mehr gemacht, aber so würde es schon funktionieren

ein paar code zeilen
Java:
//client stellt verbindung her (port :int; ip: string):
Socket sok = new Socket(ip, port)
//in und output streams
InputStream input = sok.getInputStream();
br = new BufferedReader(new InputStreamReader(input));
pw = new PrintWriter(sok.getOutputStream());

//auf der anderen seit (server)
//verbindungen annehmen 
//Serversocket, dass auf einen port hört (port : int)
ServerSocket = new ServerSocket(port);

//live ist ein boolean der beim ausschalten des progs oder wenn zu viele leute verbunden sind auf false gesetzt wird
while(live){
//eingehende verbindungen annehmen
Socket client = server.accept();
String hostName = client.getInetAddress().getHostName();

//neuen thread starten, der für diesen clienten verantwortlich ist, der von mir erstellte thread erwartet das socket und eine ip des users, die ja vorhin ausgelesen wurde
ChatHandler cl = new ChatHandler(client, hostName);

//neuen Thread (cl) in die liste eintragen (clients ist eine ArrayList)
clients.add(cl);
//starten des threads, der mit dem clienten komunizieren soll
cl.start();

}
//das sollte als ansatz reichen, denke ich zumindest
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Tips zum Datenaustausch Java Basics - Anfänger-Themen 2
G Datenaustausch JFrame und eigenständige JTable? Java Basics - Anfänger-Themen 2
I Datenaustausch Java Basics - Anfänger-Themen 2
K Datenaustausch Java Basics - Anfänger-Themen 4
U Datenaustausch zwischen zwei Klassen Java Basics - Anfänger-Themen 8
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
C Kollision zweier Rechtecke, Schnittpunkte bestimmen Java Basics - Anfänger-Themen 25
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
J Transformation zweier Integer in ein Double Java Basics - Anfänger-Themen 26
H Gemeinsame Schnittmenge zweier Arrays ausgeben Java Basics - Anfänger-Themen 12
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
S Vergleich zweier ArrayLists mit Ausgabe an dritte ArrayList Java Basics - Anfänger-Themen 5
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
G Klassen Vergleich zweier Klassen Java Basics - Anfänger-Themen 23
S Implementieren zweier Klassen Java Basics - Anfänger-Themen 5
P Ungerade Zahlen ausgeben lassen zwischen Spannweite zweier eingegeben zahlen Java Basics - Anfänger-Themen 6
L Vergleich zweier Variablen, mit Abweichung Java Basics - Anfänger-Themen 3
N Methoden Methode zum Vergleich zweier Geburtstage Java Basics - Anfänger-Themen 5
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
D Zusammenfassen zweier Programme Java Basics - Anfänger-Themen 3
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
N Vergleich zweier String Arrays scheitert Java Basics - Anfänger-Themen 3
C Proportionale Abnahme zweier Werte Java Basics - Anfänger-Themen 4
O ArrayListe sortieren anhand zweier Parameter Java Basics - Anfänger-Themen 4
C Inhalte zweier Vektoren vergleichen Java Basics - Anfänger-Themen 3
T Programm, das die Differenz zweier Daten ausgibt Java Basics - Anfänger-Themen 4
S Ermittlung des GGTs zweier Werte Java Basics - Anfänger-Themen 5
Y Erste Schritte Verknüpfung zweier JAVA-Codes Java Basics - Anfänger-Themen 8
A Methoden Gedanken Anstöße zur Realisierung zweier Ideen (Grafisch Sekunden zählen und Frameaufteilung) Java Basics - Anfänger-Themen 18
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
A Durchschnitt zweier Mengen berechnen Java Basics - Anfänger-Themen 3
G Kombination zweier Befehle (Preis festlegen & Rabatt berechnen) Java Basics - Anfänger-Themen 3
W Methoden größe zweier tiere vergleichen Java Basics - Anfänger-Themen 15
K Schnitt zweier Ebenen ergibt Gerade Java Basics - Anfänger-Themen 10
L vergleich zweier texte Java Basics - Anfänger-Themen 18
B Vergleich zweier Objekte durch "Hashfunktion" Java Basics - Anfänger-Themen 12
J Addition zweier Zahlen Java Basics - Anfänger-Themen 9
J Dimensionen zweier Arrays vergleichen Java Basics - Anfänger-Themen 4
U Größenvergleich / Dimensionsvergleich zweier Matrizen Java Basics - Anfänger-Themen 2
turmaline Gleicheit zweier Listen Java Basics - Anfänger-Themen 12
S Print Methode zweier "Classes" kombinieren Java Basics - Anfänger-Themen 2
C Dateiinhalt zweier Dateien auf Gleichheit prüfen Java Basics - Anfänger-Themen 3
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
W Unterschiede zweier Dateien herauslesen Java Basics - Anfänger-Themen 7
P Unterschiede zweier System.in Varianten Java Basics - Anfänger-Themen 3
I Abhängigkeiten zweier Klassen Java Basics - Anfänger-Themen 25
G Vergleich zweier Arrays Java Basics - Anfänger-Themen 8
D Eine Nachkommazahl zweier Double vergleichen Java Basics - Anfänger-Themen 4
N sortieren zweier abhängiger array listen Java Basics - Anfänger-Themen 12
S Addieren zweier Arrays Java Basics - Anfänger-Themen 10
T ermittlung des minimus zweier eingegebener werte Java Basics - Anfänger-Themen 7
G größere zweier zahlen ermitteln und ausgeben Java Basics - Anfänger-Themen 6
G Summe zweier doubles falsch? Java Basics - Anfänger-Themen 10
I Kollision zweier Rechtecke Java Basics - Anfänger-Themen 9
H Genauigkeit beim Multiplizieren zweier Zahlen Java Basics - Anfänger-Themen 2
K Vergleich zweier Objekte in einer HashMap Java Basics - Anfänger-Themen 6
B Zusammenspiel zweier JFrames Java Basics - Anfänger-Themen 2
A Schnitt zweier Rechtecke ermitteln Java Basics - Anfänger-Themen 2
N Vergleich zweier Elemente verschiedener Vectoren Java Basics - Anfänger-Themen 2
G Vergleich zweier 'long'-Werte. Problem! Java Basics - Anfänger-Themen 6
T Inhalte zweier Variablen tauschen Java Basics - Anfänger-Themen 18
U Maximum zweier Zahlen ermitteln Java Basics - Anfänger-Themen 7
N Den Inhalt zweier Strings (Zahlen) addieren Java Basics - Anfänger-Themen 5
S maximum zweier Zahlen Java Basics - Anfänger-Themen 1
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
Renjiroo Java Bmi Rechner mit Methoden Java Basics - Anfänger-Themen 4
T BMI Rechner fehlerhaft Java Basics - Anfänger-Themen 18
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
Alan6 Java Editor BMI Rechner Java Basics - Anfänger-Themen 7
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
M Rechner programmieren Java Basics - Anfänger-Themen 3
Z BMI-Rechner Java Basics - Anfänger-Themen 1
F Trinkgeld Rechner und Promillenrechener Hilfe Java Basics - Anfänger-Themen 3
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
S Erste Schritte Java GUI - Rechner erstellen Java Basics - Anfänger-Themen 4
$ Multiplikations-Rechner mit while Schleife Java Basics - Anfänger-Themen 8
J double_Problem im ZinsesZins Rechner Java Basics - Anfänger-Themen 33
K (Taschen)Rechner Java Basics - Anfänger-Themen 8
M Abitur-Noten-Rechner Java Basics - Anfänger-Themen 2
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
N Einfacher Rechner (für mich nicht so einfach) Java Basics - Anfänger-Themen 5
thet1983 rechner anfaengerfehler? Java Basics - Anfänger-Themen 10
B BMI Rechner Java Basics - Anfänger-Themen 2
H DriveByZero Exception - BMI-Rechner Java Basics - Anfänger-Themen 12
B Co2 rechner hilfe beim programmieren Java Basics - Anfänger-Themen 10
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
C Rechner Java Basics - Anfänger-Themen 19
B Verbindung zu einen anderen Rechner Java Basics - Anfänger-Themen 2
M BMI-Rechner NumberFormatException Java Basics - Anfänger-Themen 30
Jats Kosinussatz-Rechner Java Basics - Anfänger-Themen 9
Haave Postfix-Rechner: mehrere math. Operationen nacheinander ausführen Java Basics - Anfänger-Themen 8
C Bmi rechner programmieren Java Basics - Anfänger-Themen 72

Ähnliche Java Themen

Neue Themen


Oben