выводим только некоторые параметры массива - PullRequest
0 голосов
/ 07 января 2019

У меня есть сокет Java, который отправляет параметры с клиента на сервер. я хочу иметь возможность отображать только некоторые параметры, которые отправляются, а не все. на данный момент все они отображаются через println. Например; на стороне сервера я хотел бы отображать только «возраст», а не все параметры

код моего клиента:

ObjectOutputStream oos;
ObjectInputStream ois;
Socket socket;
int[] data = { lotsize, bedrooms, localSchools, age, garages, bathrooms };

try {
    socket = new Socket("127.0.0.1", 8888);
    oos = new ObjectOutputStream(socket.getOutputStream());
    ois = new ObjectInputStream(socket.getInputStream());
    oos.writeObject(data);
    oos.flush();
    ois.close();
    oos.close();
} catch (IOException e) {
    System.out.println(e.getMessage());
}

код моего сервера:

while (true) {
    int[] data = (int[])ois.readObject();
    oos.close();
    ois.close();

    for (int d : data)
        System.out.println(d);

    break;
}

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Объявить карту и положить значения. Это просто пример, я не знаю, как должна выглядеть ваша структура данных.

    Map<String, Integer> data = new HashMap<>();
    data.put("lotsize", 1);
    data.put("bedrooms", 1);
    data.put("localSchools", 1);
    data.put("age", 2);
    data.put("garages", 1);
    data.put("bathrooms", 1);

А затем напишите так же, как вы сейчас, и просто измените чтение на:

Map<String, Integer> data = (Map<String, Integer>) ois.readObject();

А теперь вы можете напечатать свой возраст следующим образом:

System.out.println(data.get("age"));
0 голосов
/ 07 января 2019

Я не думаю, что есть удовлетворительное решение для вашего запроса ... нет никакого способа провести различие между целыми числами в вашем массиве на стороне сервера. То, что вы могли бы сделать, это посвятить определенный индекс, например, возрасту. data [3] = age, затем просто println (data [3]). Если вы идете по этому пути, убедитесь, что он задокументирован.

...