RMI Chat Problem, Client bekannt machen

Status
Nicht offen für weitere Antworten.

SBS

Aktives Mitglied
Hallo,

ich arbeite an einem RMI Chat.

Ich habe Klassen, die die Verbindung herstellen, Client_Connect und Server_Connect.

Weiterhin habe ich INterfaces Client_Interface und Server_Interface.

Mein Server hostet eine registry an der sich der Client anmeldet.

Die Client_Connect implementiert das Client_Interface, das sieht in etwa soaus:

Code:
...
public class Client_Connect implements Client_Interface, IConnect
{
	
	  protected  Client_InferfaceUI clientGUI;
	  protected Server_Interface server;	  
	  protected Message content;	  

	 protected InetAddress localhost = null;
	 protected Client current_client = null;

	  public Client_Connect(Client_InferfaceUI clientGUI) throws RemoteException
	  {
	    //
	    super();
	    //
	    this.clientGUI = clientGUI;
	    clientGUI.registerClient(this);
	    //
	    server = null;
	    //
	  }

	  public void registering()
	  {
		  
		  		try
				{
					localhost = InetAddress.getLocalHost();
				}
				catch (UnknownHostException e) {
					// TODO Auto-generated catch block
					System.out.println(e);
				}
				current_client = new Client();
				current_client.setName(localhost.getHostName());
				current_client.setIp(localhost.getHostAddress());		
	  }

	  public boolean initConnection(String host, int port, String service, Client_Interface client)
	  {

	    try
	    {
	      String connectString = "rmi://" + host + ":" + port + "/" + service;
	      Registry registry = LocateRegistry.getRegistry(host, port);

             //Hier wird das Server_Interface festgelegt, über welches kommuniziert wird.

	      server = (Server_Interface) (registry.lookup(service));
	      
	     registering();
	     server.connect(current_client);
	    }
	    catch (Exception e)
	    {
	    	System.out.println(e.toString());
	      return false;
	    }
	    return true;
	  }

	  public void setContentAtServer(Message content)
	  {
	    if (null == content)
	    {
	      return;
	    }
	    //
	    // update the server
	    try
	    {
	      server.setContent(content);
	    }
	    catch (NullPointerException e1)
	    {
	      System.out.println(e1.toString());
	    }
	    catch (RemoteException e2)
	    {
	      System.out.println(e2.toString());
	    }
	  }

	  public void setContent(Message content)
	  {
	    clientGUI.updateContent(content);
	  }
}
Über server = (Server_Interface) (registry.lookup(service));
hole ich mir den entsprechenden Serverdienst aus der Registry.
Mit dem Aufruf server.setContent(content); in der SetContentAtServer Methode kann ich wunderbar an den Server den Inhalt schicken.

analog dazu habe ich das in der Server_Connect implementiert um zum Client zu connecten:

Code:
...
public class Server_Connect
  extends UnicastRemoteObject
  implements Server_Interface, IConnect
{
	private static final long serialVersionUID = 4259388142613515938L;

  protected Message content;
  protected Server_InterfaceUI serverGUI;  
  protected Client_Interface client;

  public Server_Connect(Server_InterfaceUI serverGUI) throws RemoteException
  {
    //
    super();
    //
    this.serverGUI = serverGUI;
    serverGUI.registerServer(this);    
    //
    setContent(new Message("Welcome, Server is online..."));
    //
    initRMI();
    //
  }

  protected void initRMI()
  {
    try
    {
      //
      // create the registry object using LocateRegistry
      Registry registry = LocateRegistry.createRegistry(RMI_PORTNUMBER);
      System.out.println("Registry created");   
      //
      // Server an Registry anmelden
      registry.rebind(RMI_SERVICENAME, this);
    }
    catch (Exception e)
    {
      System.out.println(e.toString());
    }
  }

  public void setContent(Message content) throws RemoteException
  {
    if (null == content)
    {
      return;
    }
    //
    // update the content
    this.content = content;
    //
    // update the GUI
    serverGUI.updateContent(content);
  }

  
  public void setContentAtClient(Message content) 
  {
    if (null == content)
    {
      return;
    }
    //
    // update the server
    try
    {
      client.setContent(content);
    }
    catch (NullPointerException e1)
    {
    	System.out.println(e1.toString());
    }
  }

public void connect(Client current_client) throws RemoteException {
	
	serverGUI.register_Client(current_client);
	
	// TODO Auto-generated method stub
	
}
  
}


Wenn ich nun versuche eine Nachricht an den Client vom Server aus zu schicken, erhalte ich eine NullPointerException, der Grund dafür ist anscheinend, dass mein client Objekt (Typ Client_Interface) nirgendwo festgelegt wurde. (Zeile 70 )

Wie lege ich dieses Objekt nun fest?
Bei Client habe ich ein solches Objekt server_interface (Typ Server_Interface) ja über server = (Server_Interface) (registry.lookup(service)); festgelegt.

Wie lege ich nun mein client Objekt in meiner Server_Connect.java fest?

Vielen Dank schonmal!

PS: Sorry für den vielen Code, hoffe es hat was genützt, dass jemand das Problem versteht.
Bei "helfendem" Interesse, stelle ich das ganze gerne auch als .zip irgendwie zu Verfügung.
 

Kola

Aktives Mitglied
Beim Verbinden erhält der Server die nötigen Informationen über den Client. Am besten mal die Beispiele in einem Buch anschauen.
Vielleicht möchtest du ja auch ein Peer-to-peer chat-programm schreiben, dann solltest du unter "JXTA" suchen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Socket Chat-Client-Problem Netzwerkprogrammierung 8
S Client-Server Chat Problem nur im lokalen Netztwerk Netzwerkprogrammierung 23
DamienX Chat Socketserver/Client. wo ist das Problem? Netzwerkprogrammierung 2
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
J Kleines Problem mit Chat Server Netzwerkprogrammierung 2
K Problem mit "Chat" Netzwerkprogrammierung 2
B Multi-chat Problem Netzwerkprogrammierung 3
N Java Chat-Problem Netzwerkprogrammierung 4
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
L Chat Fenster Netzwerkprogrammierung 1
J Socket Ein Chat Server Tutorial Netzwerkprogrammierung 8
S Java Chat Server Netzwerkprogrammierung 8
P Chat in Java Netzwerkprogrammierung 3
C Java Chat Admin Kenzeichnung Netzwerkprogrammierung 14
D Chat Server/mehre Client Netzwerkprogrammierung 9
Androbin Socket Fehlerhafter Applet-Chat Netzwerkprogrammierung 12
C Microsoft Comic Chat Netzwerkprogrammierung 0
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
O Chat (Server) sendet an verschieden Benutzer. Netzwerkprogrammierung 10
J Chat programmieren Netzwerkprogrammierung 12
L Chat Server programmieren Netzwerkprogrammierung 10
TheJavaKid Webcam-Chat im Applet (ChatRoulette Klon) Netzwerkprogrammierung 10
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
K Socket Chat-GUI eigenes Event nach Empfangen Netzwerkprogrammierung 2
K chat Netzwerkprogrammierung 13
F RMI einfacher Chat - Callbacks(?) funktionieren nicht Netzwerkprogrammierung 7
L Socket Chat funktioniert nicht Netzwerkprogrammierung 2
T Socket Java Chat Netzwerkprogrammierung 2
xDarkSunx Chat JFrame Netzwerkprogrammierung 3
xDarkSunx Hilfe Chat Login Netzwerkprogrammierung 7
E JAVA Chat Netzwerkprogrammierung 19
C Java Chat funktioniert nicht richtig Netzwerkprogrammierung 6
I Chat-Client empfängt nichts vom Server Netzwerkprogrammierung 3
A Socket UDP Chat Verbindungsproblem im WWW (Server sendet ins leere) Netzwerkprogrammierung 11
A Multi-User-Chat Netzwerkprogrammierung 2
E Userliste für Chat Applet Netzwerkprogrammierung 4
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
AMStyles Client Server basierter Chat Netzwerkprogrammierung 7
M chat als applet umgeschrieben - unbekannter fehler :( Netzwerkprogrammierung 2
P Socket Chat selbst bauen + Multiusereditor Netzwerkprogrammierung 13
T Java Chat über UDP Netzwerkprogrammierung 7
Developer_X Habe fragen zur Chat Programmierung Netzwerkprogrammierung 4
P Java Multiuser Chat hohe Systemauslastung Netzwerkprogrammierung 24
D Hilfe ich komme bei meinem UDP chat Server nicht mehr weiter Netzwerkprogrammierung 9
B Die alte Leier: "Chat" Netzwerkprogrammierung 3
M chat funktioniert nicht (Connection refused: connect) Netzwerkprogrammierung 3
R Java-Chat-Applet funktioniert nur in Eclipse Netzwerkprogrammierung 3
J Client-Client-Chat ohne Serverbeteiligung Netzwerkprogrammierung 2
A Wichtig für einen Chat? Netzwerkprogrammierung 4
S Java Applet Chat Grundsatzfrage Netzwerkprogrammierung 6
R Java Chat über Inet connecten Netzwerkprogrammierung 3
F Chat Programm. Verständnisfrage while-Schleife Netzwerkprogrammierung 7
P Probleme bei Chat programm Netzwerkprogrammierung 2
C Voice Chat Netzwerkprogrammierung 3
G FAQ Chat geht nicht ? Netzwerkprogrammierung 4
T Schriftfarbe im Chat ändern Netzwerkprogrammierung 2
G ActionEvent klappt beim Chat nicht Netzwerkprogrammierung 5
T Chat-Client Netzwerkprogrammierung 12
G Chat zwischen applets: möglich? Netzwerkprogrammierung 2
T Chat mit mehreren Clients Netzwerkprogrammierung 3
C Chat , Streamproblem, PumpingException, Danke Netzwerkprogrammierung 2
V probleme mit dem chat programm Netzwerkprogrammierung 4
K Lokaler Chat Netzwerkprogrammierung 5
S Chat aufs Internet ausweiten Netzwerkprogrammierung 5
J Router behindert Chat Netzwerkprogrammierung 9
S Knuddels Chat System: Bot / Nachrichten verschicken? Netzwerkprogrammierung 6
G Chat - was brauch ich Netzwerkprogrammierung 2
André B. Brauche Hilfe bei Chat Netzwerkprogrammierung 6
N Java-Chat (lauffähig) macht Probleme auf der Konsole Netzwerkprogrammierung 6
Paule Acces denied bei Chat Netzwerkprogrammierung 6
G Java Chat mit HTML Cleint Netzwerkprogrammierung 3
G Chat Programm - was ist los? Netzwerkprogrammierung 9
A server mit 2 Ports : Mit und ohne SSL Chat system Netzwerkprogrammierung 10
Z chat: wann http und wann sockets verwenden? Netzwerkprogrammierung 11
M Socket Verbindungen für einen Chat Netzwerkprogrammierung 10
R Mini-Chat löst BindException aus Netzwerkprogrammierung 7
F Multiclient Chat Netzwerkprogrammierung 12
K Chat: Nur 1 Verbindung zum Server möglich :( Netzwerkprogrammierung 6
K Chat: Verbindung kommt nicht zu stande Netzwerkprogrammierung 6
S JAV07P SGD client/server chat Netzwerkprogrammierung 4
C IRC CHAT auslesen -> Sockets/input und output Streams Netzwerkprogrammierung 9
S Einfacher Multiuser chat in java Netzwerkprogrammierung 18
I Socket Problem mit den WebSocket Antworten der Discord API Netzwerkprogrammierung 0
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
C RMI Produzent-Verbraucher-Problem - Code review Netzwerkprogrammierung 12
B Socket Bilder verschicken via Sockets. Heap-Problem. Netzwerkprogrammierung 2
S Problem bei dem Bluetoothverbindungsaufbau Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
M Netty - TCP Problem Netzwerkprogrammierung 4
L Socket Problem mit Server Netzwerkprogrammierung 1
M Problem bei Socket (MultiplayerSpiel) Netzwerkprogrammierung 4
M Socket CDI, Websocket reference Problem ! Netzwerkprogrammierung 2
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
G apache httpClient Problem. Netzwerkprogrammierung 5
H Problem mit ObjectStreams Netzwerkprogrammierung 3
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
D Socket BufferedWriter/Reader Problem Netzwerkprogrammierung 1
Maxim6394 Problem mit Socks5 Implementierung Netzwerkprogrammierung 0
C Handle Connection Problem Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben