我已经按照上一个问题中的建议使用 Java 线程和 BlockingQueues(生产者和消费者队列)对客户端服务器应用程序进行了建模。
我所拥有的是服务器有一个BlockingQueue<Request>
,它会将响应推送到客户端的BlockingQueue<Response>
. 现在的问题是我如何设置客户端来调用服务器功能。我有客户的run()
while (true) {
Response res = responses.take();
switch (res.function) {
case "getReservationStatus":
TreeMap<Integer, Boolean> reservations = (TreeMap<Integer, Boolean>) res.data;
//System.out.println("getReservationStatus");
for (Entry<Integer, Boolean> reservation : reservations.entrySet()) {
//System.out.println(" - " + reservation.getKey() + " \t " + (reservation.getValue() ? "Booked" : "Available"));
}
break;
case "book":
SimpleEntry<Integer, Boolean> data = (SimpleEntry<Integer, Boolean>) res.data;
System.out.println(terminalId + ": Booking seat " + data.getKey() + " " + (data.getValue() ? "Successful" : "Unsucessful"));
break;
}
}
我如何以某种方式从我的main()
允许用户控制要发送给客户端的命令?现在我在之前硬编码我的“模拟”while