Multiple Clients and one Server

GoldiMM

Mitglied
Hallo
Ich habe dieses Thema bereits schon mal gepostet aber leider keine Antwort erhalten. Kann mir wirklich niemand helfen? Ich möchte mehrere Clients mit dem Server verbinden. Ist alles relativ simpel zu halten. Hier nochmals verkürzt mein Code:

Die Fehlemeldung die ich erhalte ist folgende:
java.lang.NullPointerException
java.lang.NullPointerException
at exercise444.Client.sendAndReceiceMessageServer(Client.java:56)
at exercise444.Client.<init>(Client.java:21)
at exercise444.Client.main(Client.java:28)

Komischwerweise schaff ich es mich mit einem Client zu verbinden und diesem das gesendete String-Objekt wieder zurückzusenden. Sobald ich aber einen zweiten Client verbinde kommt die Fehlermeldung. :bahnhof::bahnhof:

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 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();
				}
				
			}
			
			
			else {
				System.out.println("Unexpected object type:  "
						+ inputObject.getClass().getName());
			}
						
		}
		
	}  catch (Exception e) {
		e.printStackTrace();
	}
	}
	
}
**************************************************
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;

public class ServerThread extends Thread{

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

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

			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!";
						
						try {
							Thread.sleep(1000);
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
						out.writeObject(ausgabe);
										
					}			
				}
				
				
			}catch (Exception e) {
				
			}
			
		}
			catch (Exception e){
			
		}
	
	}


}
 
Zuletzt bearbeitet:

turtle

Top Contributor
Dein Connection-Handling ist falsch.

Dein Server-Code wartet zwar auf den ersten Client, das der sich connected und startet dann dessen Behandlung in einem eigenen Thread, aber der Server?

Nun, der sollte doch wieder auf weitere Clients warten, oder?
Also:
Java:
		try (ServerSocket serverSocket = new ServerSocket(portNumber)) { // create
			while (true) { // ServerSocket
				Socket socket = serverSocket.accept();
				new ServerThread(socket).start(); // set up connection and start
													// run
													// method
			}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
JD_1998 Multiple Parametereingabe Java Basics - Anfänger-Themen 3
D [AES] input not multiple of 16 Java Basics - Anfänger-Themen 2
K RegEx - Multiple Line Java Basics - Anfänger-Themen 3
F Multiple Generics Java Basics - Anfänger-Themen 10
x22 Java Multiple Choice Test Java Basics - Anfänger-Themen 8
Dogge Multiple markers at line 15 Java Basics - Anfänger-Themen 13
U [Problem] Handling multiple frames Java Basics - Anfänger-Themen 5
P Threads Multiple Dialogboxen Java Basics - Anfänger-Themen 6
G Multiple Leerzeichen entfernen Java Basics - Anfänger-Themen 13
J String zu Double parsen (multiple points) Java Basics - Anfänger-Themen 2
H Multiple Markers at this line Java Basics - Anfänger-Themen 3
S Threads Handling multiple different Threads Java Basics - Anfänger-Themen 7
H Multiple Fileaccess - sync? Java Basics - Anfänger-Themen 7
H Multiple JFrames im GUI Editor von NetBeans Java Basics - Anfänger-Themen 2
S jList Multiple Selection mit Klick Java Basics - Anfänger-Themen 2
C Multiple Choice Test Java Java Basics - Anfänger-Themen 5
T Multiple BufferedImage Java Basics - Anfänger-Themen 3
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
R Antwort vom Server an mehreren Clients senden Java Basics - Anfänger-Themen 3
G Verfügbare Clients prüfen ohne ping Java Basics - Anfänger-Themen 12
D Erste Schritte Quit in IRC Clients Java Basics - Anfänger-Themen 7
L Server mit mehreren Clients Java Basics - Anfänger-Themen 25
W mehrere clients auf einem server Java Basics - Anfänger-Themen 2
B Clients aufsammeln und in JTable packen Java Basics - Anfänger-Themen 8
A ServerSocket accept bei mehreren Clients? Java Basics - Anfänger-Themen 2
B Disconnect des Clients feststellen Java Basics - Anfänger-Themen 2
P flash-based java clients Java Basics - Anfänger-Themen 3
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
FireHorses Benutzernamen aus PrivateChannel(Interaction) auf Server bringen Java Basics - Anfänger-Themen 0
HolyFUT Best Practice Architektur WebSocket Server Java Basics - Anfänger-Themen 1
S Server Java Basics - Anfänger-Themen 4
S Server Java Basics - Anfänger-Themen 3
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
M CS GO Server mit Java steuern Java Basics - Anfänger-Themen 3
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
B DHCP-Server Adresse ermitteln Java Basics - Anfänger-Themen 4
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
W Netwerkprogrammierung und Http Server Java Basics - Anfänger-Themen 10
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
G sql server connection mit windows authentication Java Basics - Anfänger-Themen 2
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
U Erste Schritte Server will nicht übergebenes Objekt speichern Java Basics - Anfänger-Themen 5
B IP Adresse von Wildfly Server Java Basics - Anfänger-Themen 1
cezary Server läßt sich nicht starten Java Basics - Anfänger-Themen 2
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I lokales Programm mit Client/Server Programm kommunizieren Java Basics - Anfänger-Themen 3
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
F String zu einem Server senden Java Basics - Anfänger-Themen 4
N Server Zeit zur lokalen Zeit setzen. Java Basics - Anfänger-Themen 0
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
I ical - Datei auf Server ablegen und Kalender abbonieren Java Basics - Anfänger-Themen 0
T Eclipse - GlassFish Server!? Java Basics - Anfänger-Themen 1
I Java Server Faces mit Glassfish Webseite veröffentlichen Java Basics - Anfänger-Themen 4
M Input/Output tcp-Server mit statischer Parallelität Java Basics - Anfänger-Themen 7
K Java Client > Python Server Java Basics - Anfänger-Themen 0
F jabva 7.21 läuft nicht auf windows server 2012? Java Basics - Anfänger-Themen 9
D Socket ---> Server Socket worauf muss ich achten? Java Basics - Anfänger-Themen 2
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
I JDK SERVER -jar stoppen Java Basics - Anfänger-Themen 5
Screen Wie Propertydatei im Server beschreiben? Java Basics - Anfänger-Themen 7
K threaded server Java Basics - Anfänger-Themen 18
E Client Server Java Basics - Anfänger-Themen 12
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
L Chat server Java Basics - Anfänger-Themen 4
O Server Client Problem Java Basics - Anfänger-Themen 2
B Java Server Side Java Basics - Anfänger-Themen 14
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
G JObjekte dynamisch vom Server erzeugen lassen Java Basics - Anfänger-Themen 4
A Server logs auslesen Java Basics - Anfänger-Themen 6
Z Threads, Server, GUI Java Basics - Anfänger-Themen 4
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
M Java class auf Server starten Java Basics - Anfänger-Themen 5
U Java-Programm auf einem Server starten Java Basics - Anfänger-Themen 33
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
X Applet - Client/Server Java Basics - Anfänger-Themen 2
I Interface Comparable für Server-Item-Interface Java Basics - Anfänger-Themen 12
N Methoden Test ob Server vorhanden ist Java Basics - Anfänger-Themen 4
S .Bat Server von .java Starten Java Basics - Anfänger-Themen 5
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
S Klassen Server und Client Java Basics - Anfänger-Themen 3
M Client - DB-Server Struktur Java Basics - Anfänger-Themen 7
M daytime-Server Port 13 Java Basics - Anfänger-Themen 2
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
O (von Applet) daten an Server übergeben Java Basics - Anfänger-Themen 4
R Server-Daten sichern/verschlüsseln Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben