LAN tutorial ?

Status
Nicht offen für weitere Antworten.

Stream

Mitglied
Hallo

Ich will ein "Spiel" über Lan machen hab, aber auf dem Gebiet
nicht so viel ahnung also wollt ich mal fragen ob mal jemmand bitte einen Link
für ein tutorial über Austausch von daten über Lan posten kann.
Wenn jemmand ein Beispiel schicken könnte wär das natürlich
auch super :wink:
 

Stream

Mitglied
OK

Ich hab das jetzt verstanden, aber jetzt habe ich
eine neue Frage:

Bei heutigen Spielen wird im Lan
automatisch nach dem HOST gesucht.
Wie geht das /Wie kann ich das machen ?
 

madboy

Top Contributor
Da fallen mir zwei Möglichkeiten ein. Welche davon benutzt wird, weiß ich aber nicht.

Vorausgesetzt, mit HOST meinst du Server:
1.) Der Server schickt in regelmäßigen Abständen einen Broadcast, dass er Server ist.
2.) Jeder neue Client schickt einen Broadcast mit der Frage "wer ist Server" und der Server antwortet. (wahrscheinlich wird es so gemacht)

Sollten dir Dinge wie "Broadcast" nix sagen, würde ich empfehlen, zuerst n bisschen was über Netzwerke zu lernen. Sonst wirds recht schnell recht schwierig beim Programmieren.
 

Stream

Mitglied
leuchtet mir ein, danke.

Ich wäre trotzdem sehr dankbar wenn noch mal jemand
ein beispiel posten könnte , bitte; :oops:
 

madboy

Top Contributor
das kommt natürlich drauf an, was genau du machen willst. Als "Grundgerüst" würde sich etwa sowas eignen:

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

public class Server {
    public static void main(String[] args) {

        ServerSocket server = null;
        try {
            server = new ServerSocket(1234);
        } catch (IOException e) {
            e.printStackTrace();
            // ohne Socket hat es keinen Sinn, weiter zu machen ;-)
            System.exit(1);
        }

        while (true) {
            try {
                Socket s = server.accept();
                BufferedReader socketReader = new BufferedReader(
                        new InputStreamReader(s.getInputStream()));
                String line;

                while ((line = socketReader.readLine()) != null) {
                    System.out.println(line);
                }
                socketReader.close();
                s.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
    }
}
Code:
/**
*Client.java
*/
import java.io.*; 
import java.net.*; 

public class Client { 
  public static void main(String[] args) { 
    try { 
      Socket s = new Socket("localhost", 1234); 
 
      BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));  
      out.write("blabla\n");  
      out.flush(); 
      out.close();
      s.close();
    } catch (IOException io) { 
      io.printStackTrace(); 
    } 
  } 
}
 

HoaX

Top Contributor
es gibt noch möglichkeit 3, eine multicast-message zu schicken, aber das ist ehr selben der fall.

bei lanspielen sendet ehr der client eine broadcast-nachricht. (fall 2)

nur der vollständigkeit halber.
 

Stream

Mitglied
Ups, :oops:
ich habe die Frage falsch formuliert ich meinte
eigentlich ein Beispiel für einen Broadcast.

PS: Was macht out.flush() ? ???:L
 

HoaX

Top Contributor
für einen broadcast benutzt du einfach die broadcast-adresse zum senden und empfangen der daten. im idealfall direkt die des gewünschten interfaces - keine ahnung ob man die in java bestimmen kann. der einfachheit halber kann man aber auch direkt 255.255.255.255 nehmen.

schau in die api-doc? es verarbeitet alle daten im puffer. in einem outputstream werden diese dann gesendet, wenn vorhanden.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben