Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 396
Ильдар Шаукатович Хабибуллин
private void sendMessage(String mes){ try{
byte[] data = mes.getBytes();
InetAddress addr = InetAddress.getByName(host);
DatagramPacket pack =
new DatagramPacket(data, data.length, addr, port); DatagramSocket ds = new DatagramSocket(); ds.send(pack); ds.close();
}catch(IOException e){
System.err.println(e);
}
}
public static void main(String[] args){
Sender sndr = new Sender("localhost", 1050); for (int k = 0; k < args.length; k++) sndr.sendMessage(args[k]);
}
}
Листинг 24.6. Прием дейтаграмм по протоколу UDP
import java.net.*; import java.io.*;
public class Recipient{
public static void main(String[] args){ try{
DatagramSocket ds = new DatagramSocket(1050); while (true){
DatagramPacket pack = new DatagramPacket(new byte[1024], 1024); ds.receive(pack);
System.out.println(new String(pack.getData()));
}
}catch(Exception e){
System.out.println(e);
}
}
}
Упражнение
5. Создайте аналог электронной почтовой связи с помощью дейтаграмм.
Вопросы для самопроверки
1. Что такое сетевая архитектура "клиент-сервер"?
2. Чем отличается клиентская часть приложения от серверной части?
3. Может ли клиентская часть приложения взаимодействовать сразу с несколькими серверами?
4. Что такое сетевой протокол?
5. Что такое стек протоколов?
6. Какие протоколы входят в стек протоколов TCP/IP?
7. Что такое IP-адрес?
8. Что такое номер порта?
9. Что такое дейтаграмма?
10. Что такое DNS-имя?
11. Что такое адрес URL?
12. Как установить связь через прокси-сервер?
ЧАСТЬ V Web-технологии Java
Глава 25. | Web-инструменты Java |
Глава 26. | Сервлеты |
Глава 27. | Страницы JSP |
Глава 28. | Связь Java с технологией XML |
ГЛАВА 25
Web-инструменты Java
В этой главе мы вкратце перечислим важные аспекты технологии Java, до сих пор не освещенные в книге, но необходимые для дальнейшего изложения.
Архиватор
Для упаковки нескольких файлов в один архивный файл, со сжатием или без сжатия, в технологии Java разработан формат архивирования JAR. Имя архивного jar-файла может быть любым, но обычно оно получает расширение jar. Способ упаковки и сжатия основан на методе ZIP. Название JAR (Java ARchive) перекликается с названием известной утилиты TAR (Tape ARchive), разработанной в UNIX.
Отличие jar-файлов от zip-файлов только в том, что в jar-файлы автоматически включается каталог META-INF, содержащий несколько файлов с информацией об упакованных в архив файлах.
Архивные файлы очень удобно использовать в апплетах, о чем уже говорилось в
<applet code = "MillAnim.class" archive = "first.jar, second.jar"
width = "100%" height = "100%"></applet>
Основной файл MillAnim.class должен находиться в каком-либо из архивных файлов firstjar или second.jar. Остальные файлы отыскиваются в архивных файлах, а если не найдены там, то на сервере, в том же каталоге, что и HTML-файл. Впрочем, файлы апплета можно упаковать не только в jar-архив, но и в zip-архив со сжатием или без сжатия.