Как я могу отправить и сохранить сообщения на сервере с помощью ArrayList - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь создать сервер, который может хранить сообщения от клиента в ArrayList, но я не знаю, как правильно сохранить его там. Я создал ArryList на сервере и клиенте, который может отправлять сообщения с использованием reply (), но как его сохранить?

Вот мой код:

Сервер:

public class Server extends UnicastRemoteObject {
    private static final long serialVersionUID = 1L;
    public ArrayList<String> text;
    public Server() throws RemoteException {
    }
    public static void main(String args[]) throws AlreadyBoundException, SQLException, ClassNotFoundException {
        String name = "123";
    try {
        Registry registry = LocateRegistry.createRegistry(1099);
        System.out.println("Server starts...");
        ArrayList<String> textRequested = new ArrayList<String>();
        textRequested.add("This is first row in table");
        ArrayListImpl arrayListToSend = new ArrayListImpl();
        arrayListToSend.setText(textRequested);
        registry.bind(name, arrayListToSend);
    } catch (Exception e) {
        System.err.println("Server exception: " + e.getMessage());
        e.printStackTrace();
    }
    }
}

Клиент:

public class Client {
    public static void main(String args[]) {
        try {
            String host = "localhost";
            String name = "123";
            Registry registry = LocateRegistry.getRegistry(host, 1099);
            Echo echo = (Echo) registry.lookup(name);
            System.out.println("Sended to server: "+ echo.reply(args[0]));
            ArrayList<String> received = echo.getText();
            System.out.println(received);   

        } catch (Exception e) {
            System.err.println("Echo exception: " +
                               e.getMessage());
            e.printStackTrace();
        }
    }
}

ArrayListImpl:

public class ArrayListImpl  extends UnicastRemoteObject implements Echo{

    private static final long serialVersionUID = 1L;
    public ArrayList<String> text;

    protected ArrayListImpl() throws RemoteException {
        super();
    }
    public ArrayList<String> getText() {
        return text;
    }
    public void setText(ArrayList<String> text) {
        this.text = text;
    }
    public String reply(String s) {
        System.out.println("Server recive a msg:  "+s);
        return s;
    }
}

Эхо:

public interface Echo extends Remote {
    String reply(String s) throws RemoteException;
    public ArrayList<String> getText()  throws RemoteException;
    public void setText(ArrayList<String> text) throws RemoteException;
}
...