繁体   English   中英

用java将对象从客户端发送到服务器

[英]Send an object from a client to a server in java

我如何在java中将对象发送到服务器?

客户:

    Help h = new Help("Mattia Cammalleri","Informatica","18 Novembre 2020");
    
    Socket s = new Socket("localhost", 8888);
    ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream()); 
    ObjectInputStream is = new ObjectInputStream(s.getInputStream());
    os.writeObject(h);
    os.flush();

服务器:

    ServerSocket ss = new ServerSocket(8888);
    Socket s = ss.accept(); 
    ObjectOutputStream os = new ObjectOutputStream(s.getOutputStream()); 
    ObjectInputStream is = new ObjectInputStream(s.getInputStream());
    Help h = (Help) is.readObject();
    System.out.println("Richiesta " + h);

对象(实现可序列化):

public String alunno;
public String materia;
public String data;

为什么它不起作用?

我是这样解决的:

客户:

    Help h = new Help("Mattia Cammalleri","Informatica","18 Novembre 2020");
    Socket socket = new Socket("localhost", 7777);
    System.out.println("Connected");
    OutputStream outputStream = socket.getOutputStream();
    ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
    System.out.println("The object has been sent");
    objectOutputStream.writeObject(h);
    socket.close();

服务器:

    ServerSocket ss = new ServerSocket(7777);
    System.out.println("Waiting for the client");
    Socket socket = ss.accept();
    System.out.println("Connected from " + socket + "!");
    InputStream inputStream = socket.getInputStream();
    ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
    Help h = (Help) objectInputStream.readObject();
    System.out.println("Object: " + h);
    ss.close();
    socket.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM