В случае если клиент завершит соединение, не послав предварительно сигнал EXIT_CLIENT:1 package com.asw.net.ex1;2 import java.io.*;3 4 public class BillingClientService extends Thread {5 DataInputStream dis;6 DataOutputStream dos;7 BillingService bs;8 9 public BillingClientService (BillingService bs,DataInputStream dis,DataOutputStream dos){10 this.bs = bs;11 this.dis = dis;12 this.dos = dos;13 }14 15 public void run(){16 System.out.println("ClientService thread started");17 boolean work = true;18 while (work) {19 int command;20 try {21 command = dis.readInt();22 switch (command) {23 case BillingService.ADD_NEW_CARD:24 addNewCard();25 break;26 case BillingService.ADD_MONEY:27 addMoney();28 break;29 case BillingService.SUB_MONEY:30 subMoney();31 break;32 case BillingService.GET_CARD_BALANCE:33 getCardBalance();34 break;35 case BillingService.EXIT_CLIENT:36 work = false;37 break;38 default:39 System.out.println("Bad operation:" + command);40 }41 } catch (IOException e) {42 e.printStackTrace();43 }44 }45 }46 47 void addNewCard() throws IOException{48 String personName = dis.readUTF();49 String card = dis.readUTF();50 bs.addNewCard(personName,card);51 }52 void addMoney() throws IOException{53 String card = dis.readUTF();54 double money = dis.readDouble();55 bs.addMoney(card,money);56 }57 void subMoney() throws IOException{58 String card = dis.readUTF();59 double money = dis.readDouble();60 bs.subMoney(card,money);61 }62 void getCardBalance() throws IOException{63 String card = dis.readUTF();64 double money = bs.getCardBalance(card);65 dos.writeDouble(money);66 }67 }
(Отметьте один правильный вариант ответа.)
Варианты ответа
экземпляр BillingClientService завершит свою работу
возникнет системная ошибка, все экземпляры BillingClientService завершат свою работу
экземпляр BillingClientService никогда не завершит свою работу (не выйдет из метода run)(Верный ответ)