Multiple Clients and one Server --> java.lang.NullPointerException

GoldiMM

Mitglied
Hallo

Ich möchte gerne mehrere Clients mit dem Server verbinden und zwischen diesen Objekte hin und her schicken. Das Problem das ich momentan habe ist, dass sich der erste Client mit dem Server erfolgreich verbindet und auch ein erstes String-Objekte an den Server schickt und dieses String-Objekt auch wieder zurückerhält. Sobald ich aber einen zweiten Client starte bekomme ich eine java.lang.NullPointerException. Ich finde leider den Fehler nirgends. Könnt ihr mir sage was ich übersehe?

Java:
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;

@SuppressWarnings("serial")
public class Client {
	
	//Attribute
   Socket socket;
   Object inputObject;
   ObjectInputStream in;
   ObjectOutputStream out;
	
	public static GameObject gObject;
	public static int counter = 0;
	

	//Konstruktor
	public Client(String hostName, int portNumber) {
		connect(hostName, portNumber);
		counter++;
		sendAndReceiceMessageServer();  
	}
	
	//Main-Methode
	public static void main(String[] args) {
		String hostName = "localhost";
		int portNumber = 50001;
		new Client(hostName, portNumber);
		
	}
	
	//Methoden
	public void connect(String hostName, int portNumber) {
		try {
			//Create a new socket, connect immediately
			socket = new Socket(hostName, portNumber);  
		
		// Create reader and writer for the socket
			in = new ObjectInputStream(socket.getInputStream());
			out = new ObjectOutputStream(socket.getOutputStream());
			
			String t= "Hallo ich bin der Client";
			out.writeObject(t);
			out.flush();
		}
		catch (Exception e) {
			
		}
	}
	
	
	public void sendAndReceiceMessageServer() {    
		try {
		
		//Read and display the reply from the server
		while ((inputObject = in.readObject()) != null) {
			
			if (inputObject instanceof String) {
				String ausgabe = (String) inputObject;
				
				System.out.println(ausgabe);
				
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				
			}	
		}
		
		//Clean up
		//in.close();
		//out.close();
		//socket.close();
		
	}  catch (Exception e) {
		System.out.println(e.toString());
		System.exit(1);
	}
	}
	
}

******************************************************

Java:
import java.io.IOException;
import java.net.ServerSocket;

public class Server {


	public static void main(String[] args) throws IOException{
		
		int portNumber = 50001; // dynamic ports from 49152–65535
		
        try (ServerSocket serverSocket = new ServerSocket(portNumber)) { // create ServerSocket
           
        	new ServerThread(serverSocket.accept()).start(); // set up connection and start run method

        } catch (IOException e) {
            System.err.println("Could not listen on port " + portNumber);
            System.exit(-1);
        }
	}
}

******************************************************

Java:
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;

public class ServerThread extends Thread{

	//attributes
	private Socket socket;   // = null;
	public static ArrayList<String> ausgabeList = new ArrayList<String>(2);
	public static ArrayList<ObjectOutputStream> outlist = new ArrayList<ObjectOutputStream>(2);

	
	//constructor
	public ServerThread(Socket socket) {
		this.socket = socket;
	}
	
	public void run() {
		try{
			
			ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
			out.flush();
			outlist.add(out);

			ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
			
			Object inputObject;
			
			//***
			try {
				
				while ((inputObject = in.readObject()) != null) {
					
					//String object
					if (inputObject instanceof String) {
						String ausgabe = (String) inputObject ;
						System.out.println(ausgabe);
						ausgabe = ausgabe +  " und bin jetzt verbunden mit dem Server!";
						//ausgabeList.add(ausgabe);
						
						
						out.writeObject(ausgabe);
						
						try {
							Thread.sleep(1000);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}				
						
					}				
					}
				
				
			}catch (Exception e) {
				
			}
			
		}
			catch (Exception e){
			
		}
	
	}

}
 

Keyone94

Mitglied
dein Problem ist, dass du hiermit:
Java:
try (ServerSocket serverSocket = new ServerSocket(portNumber)) { // create ServerSocket
           
            new ServerThread(serverSocket.accept()).start(); // set up connection and start run method
 
        } catch (IOException e) {
            System.err.println("Could not listen on port " + portNumber);
            System.exit(-1);
        }
auf eine Verbindung zum Server wartest, und wenn diese erfolgt an ServerThread weitergibst und dann den catch block verlässt ( serverSocket.accept() wartet nur einmalig auf eine Verbindung ).

Was du machen musst, ist das warten auf Verbindungen ebenfalls in einem Thread zu realisieren, damit du immer wieder neue Verbindungen aufnehmen kannst

Grüße, key
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Socket Senden an alle verbundenen Clients Netzwerkprogrammierung 3
M Socket Netzwerk Übertragung zwischen 4 Clients Netzwerkprogrammierung 2
G Gui von 2 Clients Synchronisieren Netzwerkprogrammierung 2
F Schulprojekt erweitern - Online Quiz mit mehreren Clients - Was benötige ich ? Netzwerkprogrammierung 0
P Socket Viele Clients bedienen mit Vert.x Netzwerkprogrammierung 9
Aruetiise Socket Mehrere Clients Netzwerkprogrammierung 4
J Framework mehrere Clients/ Server-Broadcast/oracle XE/ XML Netzwerkprogrammierung 1
V Server / mehrere Clients / MySQL / Konzept Netzwerkprogrammierung 2
M MultiClient Server - Senden an alle Clients Netzwerkprogrammierung 8
M Teilnehmerliste vom Server auch an alle Clients senden Netzwerkprogrammierung 0
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6
Z Socket [Chatprogramm] Mehrere Clients an einen Server Netzwerkprogrammierung 10
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
cedi Socket Mehrere Clients an einem Server Netzwerkprogrammierung 4
A Socket Server: Message an verschiedene Clients senden Netzwerkprogrammierung 4
B Socket Liste von clients - multicast Netzwerkprogrammierung 4
M Anzahl Clients aus Start- und Endadr. berechnen Netzwerkprogrammierung 54
R Viele Clients ein Server Netzwerkprogrammierung 8
borobudur Synchronisation von Clients Netzwerkprogrammierung 10
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
L RMI Informationen über die Clients herausfinden Netzwerkprogrammierung 5
H Neues NIO problem nachricht an alle clients Netzwerkprogrammierung 3
D Probleme bei mehreren Clients uns Senden von Messages Netzwerkprogrammierung 16
P Socket Datei von Client zum Server übertragen --> Weiterleitung an Clients Netzwerkprogrammierung 16
F Erhalten und Senden von Nachrichten anhand des Indexes des Clients Netzwerkprogrammierung 19
H Hilfe bei multiplen Clients Netzwerkprogrammierung 7
cowabunga1984 Transferierte Datenmenge eines SOAP Clients (JAX-WS) anzeigen Netzwerkprogrammierung 2
T Administration von Software auf Clients im Netzwerk Netzwerkprogrammierung 6
D Netzwerkprobleme bei mehreren Clients Netzwerkprogrammierung 4
F Peer to Peer Verbindung zwischen mehreren Clients? Netzwerkprogrammierung 8
D Clients sollen mehrere Sessions starten Netzwerkprogrammierung 11
A Server mit mehreren Clients Netzwerkprogrammierung 2
G Nachricht an mehrere Clients schicken Netzwerkprogrammierung 10
5 Webservice max. mit 5 Clients möglich Netzwerkprogrammierung 10
M clients untereinander kommunizieren Netzwerkprogrammierung 2
A RMI: Wieviele Clients können sich gleichzeitig anmelden? Netzwerkprogrammierung 34
B Rmi Kommunikation Server zu mehreren Clients? Netzwerkprogrammierung 3
T Am RMI-Server: IP des Clients ermitteln? Netzwerkprogrammierung 2
J SecurityManager - Server-Zugriff nur von bestimmten Clients? Netzwerkprogrammierung 2
T RMI - Probleme beim Starten des Clients Netzwerkprogrammierung 4
T Chat mit mehreren Clients Netzwerkprogrammierung 3
G Anzahl verbundener Clients zu einem FTP-Server ermitteln? Netzwerkprogrammierung 4
G Server an mehrere Clients Netzwerkprogrammierung 15
D Netzwerk Betrachtung mit vielen Clients Netzwerkprogrammierung 2
G Nachricht von server an alle clients senden Netzwerkprogrammierung 6
I IP Adresse des Clients einer Socket Verbindung Netzwerkprogrammierung 2
S Server mit mehreren Clients Nachrichten austauschen Netzwerkprogrammierung 6
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
E Server mit GUI Netzwerkprogrammierung 4
E FTP FTPS Server gibt Fehlernachricht "522 SSL/TLS required on the data channel" zurück Netzwerkprogrammierung 1
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
Eigenen Rechner als Server? Netzwerkprogrammierung 16
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
J Datei Download vom Server Netzwerkprogrammierung 8
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
J Multithreaded-Server Netzwerkprogrammierung 21
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
L30nS RMI RMI-Server kann Dialog nicht volkommen anzeigen Netzwerkprogrammierung 2
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
F NodeJs-Server auf Firebase hosten ? Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
H HTTP Glassfish (v5) Application Server - Bibliothek zur Verfügung stellen Netzwerkprogrammierung 4
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
P TCP-Server Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
F Server für Java Applikationen Netzwerkprogrammierung 16
H Einfacher Server funktioniert nicht Netzwerkprogrammierung 1
G Server-Client IO Problem Netzwerkprogrammierung 6
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
L Socket Wie kann ich checken ob ein User eine Nachricht per Outputstream an den Server gesendet hat? Netzwerkprogrammierung 1
T Jetty Server LOGGING Netzwerkprogrammierung 1
L Strings an Server senden und in MYSQL speichern? Netzwerkprogrammierung 3
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben