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

用java将对象从客户端发送到服务器,java,server,client,Java,Server,Client,如何用java将对象发送到服务器 客户: Help h = new Help("Mattia Cammalleri","Informatica","18 Novembre 2020"); Socket s = new Socket("localhost", 8888); ObjectOutputStream os = new ObjectOutputStream(s.getOutpu

如何用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();
    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(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);
    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();
对象(实现可序列化):


为什么它不起作用?

我是这样解决的:

客户:

    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();
    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(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);
    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();

到底是什么不起作用?你有例外吗?您的控制台从
System.out.println()
的输出是什么?这在客户端,线程“main”java.net中出现异常。连接异常:连接被拒绝:当您启动客户端时,服务器端是否正在运行?是的,我不知道是什么问题吗?嗯,您是否尝试禁用防火墙?也可以尝试其他端口。