Чтение из потока, в строке 21, в случае, если клиент после установки соединения не записал в поток никаких данных, приведет: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 }
(Отметьте один правильный вариант ответа.)
Варианты ответа
метод возвратит 0
метод будет заблокирован до момента поступления данных со стороны клиента или обрыва соединения(Верный ответ)
к ошибке, на момент вызова метода readInt (строка 21) данные должны быть уже переданы со стороны клиента