Announcement

Collapse
No announcement yet.

RMI Client Server

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • RMI Client Server

    hallo zusammen... ich beschäftige mich schon seit ein paar Monaten mit Java... jetzt will ich ein ganz einfaches Spiel entwickeln mit Java, aber dass man dieses Spiel auch im Netzwerk spielen kann brauche ich Klassen wie Client und Server... ich habe schon ein sehr gutes Beispiel gefunden das ich als Grundlage für meinem Projekt benutzen kann...RMIChat...nur ich brauche kein Chat Netzwerk sondern ich muss nur 2 Komputer im Netzwerk verbinden durch meinem Programm und die sollen zusammen spielen können...kann mir jemand vielleicht ein paar Tipps geben wie ich genau dieses RMIChat verändern soll so dass es für meine Zwecke passt ?

    danke im voraus...

    public class ChatClient extends Thread{
    String name="";
    public static void main(String[] args){
    ChatClient cc = new ChatClient();
    cc.start();
    }
    public void run(){
    //ermittle lokale IP-Adresse
    try{
    InetAddress ia;
    String hostname="";
    ia = InetAddress.getLocalHost();
    hostname = ia.getHostAddress();
    System.out.println("Client IP-Adresse: "+hostname);
    //Eingabe-Strom
    BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
    System.out.println("Chat Client gestartet...");
    System.out.println("Bitte tragen Sie Ihren Namen " +
    "ein und drücken Sie EINGABE...");
    System.out.print("Ihr Name: ");
    //Lese Eingaben (nickname des teilnehmers) aus
    name = in.readLine();
    System.out.println(name);
    ChatInterface ci;
    //verbinde mit dem Namensdienst und finde den Server
    ci = (ChatInterface) Naming.lookup("rmi://"+hostname+"/chatinterface");
    //melde dich beim Chat an
    int value = ci.enterChat(name,hostname);
    System.out.println("You have been succesfully " +
    "connected to a server");
    //starte einen TCP-Server fürs Empfangen der Nachrichten vom Server
    Receiver receiver = new Receiver();
    receiver.start();
    System.out.print("Enter your messages: ");
    //lese die Nachrichten von der Konsole und sende sie an Server
    while(true){
    String message = in.readLine();
    //benutze die entfernte Methode sendMessage()
    ci.sendMessage(message);
    }
    }catch (Exception e){e.printStackTrace();}
    }
    }






    import java.net.InetAddress;
    import java.net.MalformedURLException;
    import java.net.UnknownHostException;
    import java.rmi.Naming;
    import java.rmi.RemoteException;
    import java.rmi.registry.LocateRegistry;
    import java.rmi.registry.Registry;

    //Eine einfache Klasse zum Starten des Namensdienstes und des Servers
    public class ChatServer{
    public static void main(String[] args) {
    InetAddress ia;
    String hostname="";
    try {
    ia = InetAddress.getLocalHost();
    hostname = ia.getHostAddress();
    System.out.println("Server IP-Address: "+hostname);
    } catch (UnknownHostException e1) {

    e1.printStackTrace();
    }
    try {
    //erzeuge eine Instanz der Impl-Klasse,
    //die entfernte Methoden enthält
    ChatImpl ci = new ChatImpl();
    //starte den Namensdienst
    LocateRegistry.createRegistry(Registry.REGISTRY_PO RT);
    //registriere das Objekt ci am Namensdienst
    Naming.rebind("rmi://"+hostname+"/chatinterface", ci);

    System.out.println("Chat Server: Bound");
    System.out.println("Waiting for clients...");
    } catch (RemoteException e) {

    e.printStackTrace();
    } catch (MalformedURLException e) {

    e.printStackTrace();
    }
    }
    }

  • #2
    Hallo,

    hier vieleicht erstmal was zum belesen von RMI.
    http://www.galileocomputing.de/openb...93a012fe3a9a39

    ich glaub mit einer neuentwicklung bist du schneller als mit einem Umbau.
    Konkrete Fragen kannst du gerne hier stellen.

    Viel Erfolg

    Comment

    Working...
    X