前の質問で推奨されているように、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