Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
редаваемую строку команды 
          // на консоль для контроля
          System.out.println(">  " + str);

          // Посылаем пакет серверу
          s.send(pout);

          // Если введена команда 'quit', прерываем цикл
          if(str.equals("quit"))
            break;
        }
      }

      // Закрываем сокет
      s.close();
    }
    catch(Exception ioe)
    {
      System.out.println(ioe.toString());
    }
    
    try
    {
      System.out.println(
        "Press  to terminate application...");

      System.in.read(bKbdInput);
    }
    catch(Exception ioe)
    {
      System.out.println(ioe.toString());
    }
  }
}
   Описание исходного текста приложения DatagramClient
   Внутри метода main определен массив bKbdInput, предназначенный для хранения 
данных, введенных с клавиатуры, переменная length, в которой хранится размер 
этих данных, рабочая строка str класса String, датаграммный сокет s и пакет 
pout класса DatagramPacket.
   Прежде всего приложение определяет адрес узла, на котором оно выполняется, 
вызывая метод getLocalHost:
InetAddress OutAddress = InetAddress.getLocalHost();
   Этот адрес будет использован для формирования передаваемого пакета данных.
   Затем клиент создает датаграммный сокет, применяя для этого конструктор без 
параметров:
s = new DatagramSocket();
   Напомним, что в этом случае для сокета выделяется любой свободный порт.
   На следующем шаге приложение формирует передаваемый пакет, вызывая 
конструктор класса DatagramPacket:
pout = new DatagramPacket(bKbdInput, bKbdInput.length, 
  OutAddress, 9998);
   Этому конструктору указывается адрес массива, содержащего введенные с 
клавиатуры данные, размер этого массива, адрес локального узла, на который 
нужно передать пакет, и номер порта серверного приложения.
   Теперь все готово для запуска цикла передачи команд от клиента к серверу.
   В этом цикле выполняется чтение строки с клавиатуры, причем размер 
прочитанной строки сохраняется в переменной length:
length = System.in.read(bKbdInput);
   Далее, если строка не состоит из одного лишь символа перехода на новую 
строку, она отображается на косоли и посылается серверу методом send:
s.send(pout);
   После того как пользователь введет строку “quit”, цикл завершается. Вслед за 
этим приложение закрывает датаграммный сокет:
s.close();
   Связь приложений Java с расширениями сервера Web
   Итак, мы расказали вам, как приложения Java могут получать с сервера Web для 
обработки произвольные файлы, а также как они могут передавать данные друг 
другу с применением потоковых или датаграммных сокетов. 
   Однако наиболее впечатляющие возможности открываются, если организовать 
взаимодействие между приложением Java и расширением сервера Web, таким как CGI 
или ISAPI. В этом случае приложения или аплеты Java могли бы посылать 
произвольные данные расширению сервера Web для обработки, а затем получать 
 
<<-[Весь Текст]
Страница: из 275
 <<-