Разработка INTRANET приложений

         

Передача данных по сети


Если не передавать данные по сети, апплеты остаются не более как игрушкой для оживления страниц и засорения сети. Поэтому ключевым классом Java является класс net и его подклассы. Реально существует два способа получения данных по сети: использование URL и использование sockets.

Разберем последний как наиболее общий. В этом случае пользователь имеет возможность обращаться непосредственно к транспортному уровню TCP/IP и при этом выбирать транспорт. В приведенном ниже примере используется транспорт TCP.

Пример получения данных по сети:

importjava.io.*; importjava.net.*; importjava.applet.*; importjava.awt.*;

publicclasss_readextendsApplet { Sockets; //Socketforconnection DataInputStreamdis; // Readdatafromthisstream DataOutputStreamdos; // Writedatatothisstream intMAXLENGTH = 4048; StringBuffersb = newStringBuffer(); intc;

publicvoidinit() { try { s = newSocket(getParameter("host"),80); dis = newDataInputStream(s.getInputStream()); dos = newDataOutputStream(s.getOutputStream());

dos.writeBytes("GET "+getParameter("path")+" HTTP/1.0\r\n\r\n");

while((c=dis.read())!=-1) { sb.append((char) c); } s.close(); } catch(IOExceptione) { System.out.println("Problemwithsocket."); } add("Center",newTextArea(sb.toString())); } }

При изучении этого примера стоит обратить внимание на то, что для классов ввода/вывода нет абсолютно никакого различия между сетью и другими объектами, например, файлами.

В примере создаются TCP-sockets, определяется адрес и номер порта, а затем инициализируется и производится обмен информацией по протоколу HTTP.

При реализации обмена данными необходимо в обязательном порядке перехватить исключение, которое может порождаться при работе с потоками ввода/вывода.



Содержание раздела