我有一个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;
}
答案 0 :(得分:1)
对于您的请求,我认为没有令人满意的解决方案……没有任何方法可以区分数组服务器端的整数。您可以做的是为年龄指定一个特定的索引,例如data [3] =年龄,然后简单地为println(data [3])。如果您确实选择此路线,请确保已记录在案。
答案 1 :(得分:0)
声明Map并放置值。这只是一个示例,我不知道您的数据结构应如何。
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"));