String aus ObjectInputStream ausgeben

Kieks

Mitglied
Hallo allerseits,

ich möchte über einen Server Objekte hin- und herschicken. Die Objekte sollen je nach Klasse weiterbehandelt werden. Ich stocke jetzt schon daran, dass ich einen String nicht ausgeben kann, falls die Klasse String ist. Wo könnte das Problem liegen?

Java:
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
       public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(5000);
        Socket socket = serverSocket.accept();
        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
       
        if (ois.readObject() instanceof String)
        {System.out.println((String) ois.readObject());}
        ois.close();
    }
}

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

public class Client {
     public static void main(String[] args) throws Exception {
        Socket socket = new Socket("localhost", 5000);
        ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
        String sp = "test";
        oos.writeObject(sp);
        oos.flush();
        oos.close();
    }
}

Vielen Dank für Ideen!
Kieks
 
Ok. Scheinbar kann man auf die Methode readObject() nur einmal zugreifen, daher muss man zunächst das Objekt zuweisen. Die Frage ist damit beantwortet.
Java:
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
      public static void main(String[] args) throws Exception {
        ServerSocket serverSocket = new ServerSocket(5000);
        Socket socket = serverSocket.accept();
        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
            Object o = ois.readObject();
            if (o instanceof String)
            {System.out.println((String) o);}
            ois.close();
    }
}
 

Zurück
Oben