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:
**************************************************
****************************************************
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: