Класс BillingServiceпроизводит непосредственное чтение данных, передаваемых клиентом в методе:1 package com.asw.net.ex1;2 import java.net.*;3 import java.util.Hashtable;4 import java.io.*;5 6 public class BillingService extends Thread{7 public static final int ADD_NEW_CARD = 1;8 public static final int ADD_MONEY = 2;9 public static final int SUB_MONEY = 3;10 public static final int GET_CARD_BALANCE = 4;11 public static final int EXIT_CLIENT = 5;12 13 private int serverPort = 7896;14 private ServerSocket ss;15 private Hashtable hash;16 17 public static void main(String[] args) {18 BillingService bs = new BillingService();19 bs.start();20 }21 22 public BillingService(){23 hash = new Hashtable();24 }25 26 public void run(){27 try {28 ss = new ServerSocket(serverPort);29 System.out.println("Server started");30 while(true){31 Socket s = ss.accept();32 System.out.println("Client accepted");33 BillingClientService bcs = new BillingClientService(this, new DataInputStream(s.getInputStream()), new DataOutputStream(s.getOutputStream()));34 bcs.start();35 }36 } catch (IOException e) {37 e.printStackTrace();38 }39 }40 41 public void addNewCard(String personName, String card) {42 hash.put(card, new Double(0.0));43 }44 public void addMoney(String card, double money) {45 Double d = (Double)hash.get(card);46 if (d!=null) hash.put(card,new Double(d.doubleValue()+money));47 }48 public void subMoney(String card, double money) {49 Double d = (Double)hash.get(card);50 if (d!=null) hash.put(card,new Double(d.doubleValue()-money));51 }52 public double getCardBalance(String card) {53 Double d = (Double)hash.get(card);54 if (d!=null) return d.doubleValue();55 return 0;56 }57 }
(Отметьте один правильный вариант ответа.)
Варианты ответа
класс не содержит методов, осуществляющих непосредственное чтение данных, передаваемых клиентом(Верный ответ)
run
конструкторе