如何用Java将对象从服务器发送到客户端?
嗨,我想创建一个java程序,从服务器发送对象和获取对象 为此,我创建了两个类: 如果我将一个对象从客户端发送到服务器,它可以工作,但如何将一个对象从服务器发送到客户端呢?:/ 客户经理:如何用Java将对象从服务器发送到客户端?,java,sockets,object,client,server,Java,Sockets,Object,Client,Server,嗨,我想创建一个java程序,从服务器发送对象和获取对象 为此,我创建了两个类: 如果我将一个对象从客户端发送到服务器,它可以工作,但如何将一个对象从服务器发送到客户端呢?:/ 客户经理: public class ClientManager { private String server; private int port; //Streams für Serialisierte Objekte private ObjectInputStream inputO
public class ClientManager {
private String server;
private int port;
//Streams für Serialisierte Objekte
private ObjectInputStream inputObjectStream = null;
private ObjectOutputStream outputObjectStream = null;
//Konstruktor: Server und Port werden benötigt
public ClientManager(String server,int port){
this.server = server;
this.port = port;
}
//Sendet ein Object an eine Serverinstanz
public void sendObjectToServer(Object obj){
try(Socket socket = new Socket(server,port)){
outputObjectStream = new ObjectOutputStream(socket.getOutputStream());
outputObjectStream.writeObject(obj);
outputObjectStream.flush();
outputObjectStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
//Bekommt ein Object von einer Serverinstanz
public Object getObjectFromServer(){
return new Object();
}
}
服务器管理器:
public class ServerManager {
private final int port; //Portnummer
private Socket socket = null;
private ObjectInputStream inputStream = null; //Objekt vom Client
private ObjectOutputStream outputStream = null; //Objekt an Client
private Object obj; //Objekt das übers Netzwerk gesendet wird
//Konstruktor
public ServerManager(int port){
this.port = port;
}
//Bekommt ein Objekt von einem Client
public Object getObjectFromClient(){
try(ServerSocket serverSocket = new ServerSocket(port)) {
socket = serverSocket.accept();
inputStream = new ObjectInputStream(socket.getInputStream());
obj = inputStream.readObject();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}
public void sendObjectToClient(Object obj){
//Muss noch erstellt werden
}
}
当您在服务器端建立连接并获取InputStream时,您可以以相同的方式获取OutputStream并将您想要的任何内容发送回客户端
socket.getInputStream();
socket.getOutputStream();
客户端也应该进行同样的更改。请记住-客户端启动会话。仅服务器应答。因此,它只能用某种东西来回答,而不是发送某种东西,而是自己 请看这里:这里:和这里:好的,我希望我可以用两种方法来实现这一点。实际上,对象序列化充满了问题,当客户机类与服务器的版本过时时,您会怎么做?考虑使用像XML或JSON那样的交换格式