Передача данных по сети
Если не передавать данные по сети, апплеты остаются не более как игрушкой для оживления страниц и засорения сети. Поэтому ключевым классом 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.
При реализации обмена данными необходимо в обязательном порядке перехватить исключение, которое может порождаться при работе с потоками ввода/вывода.