База ответов ИНТУИТ

Построение распределенных систем на Java

<<- Назад к вопросам

Протокол обмена данными между клиентом и сервером, предложенный в первой части лекции обладает следующими недостатками:

(Отметьте один правильный вариант ответа.)

Варианты ответа
ошибка в передаче одной команды может привести к неправильной интерпретации всех последующих команд(Верный ответ)
протокол требует, чтобы и клиент и сервер были запущены на одном узле
для того чтобы добавить новую команду, необходимо изменять схему наследования классов системы
Похожие вопросы
Протокол TCP:
Поля транспортных классов, которые предполагается передавать между компонентами, в обязательном порядке:
Класс 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  }