Створення мережевих додатків
Linux Network Administrator Guide, Second Edition

There are many books and other sources of information from which you can learn any of the topics covered in this book (with the possible exception of some of the truly Linux-specific features, such as the new Linux firewall interface, which is not well documented elsewhere) in greater depth. We've provided a bibliography for you to use when you are ready to explore more.
Прибутковий блог: створи, розкрути і зароби

Відкрийте для себе професійні секрети успіху, дізнайтеся, як хобі може приносити прибуток!
Інформація, що міститься в даній книзі, отримана з джерел, що розглядаються видавництвом як надійні. Проте, маючи на увазі можливі людські або технічні помилки, видавництво не може гарантувати абсолютну точність і повноту відомостей, що приводять і не несе відповідальності за можливі помилки, пов'язані з використанням книги.
Коли ми починали розмову про мову програмування Java, то відзначали, що він спеціально орієнтований на глобальні мережі, такі як Internet. У цьому розділі ми почнемо знайомство з конкретними класами Java, розробленими для мережевого програмування. На прикладі наших додатків ви зможете переконатися, що класи Java дійсно дуже зручні для створення мережевих додатків.
У цьому розділі ми розглянемо два аспекти мережевого програмування. Перший з них стосується доступу з додатків Java до файлів, розташованим на сервері Web, другий - створення серверних і клієнтських додатків з використанням сокетів.
Нагадаємо, що з міркувань безпеки алпетам повністю заборонений доступ до локальних файлів робочої станції, підключеної до мережі. Проте, аплет може працювати з файлами, розташованими на серверах Web. При цьому можна використовувати вхідні і вихідні потоки, описані нами в попередньому розділі.
Для чого аплетів звертатися до файлів сервера Web?
Таким аплетів можна знайти безліч застосувань.
Уявіть собі, наприклад, що вам потрібно відображати у користувача діаграму, вихідні дані для побудови якої знаходяться на сервері Web. Це завдання можна вирішити, грубо кажучи, двома способами.
Перший полягає в тому, що ви створюєте розширення сервера Web у вигляді додатку CGI або ISAPI, яке на підставі вихідних даних динамічно формує графічне зображення діаграми у вигляді файлу GIF і посилає його користувачеві.
Однак на шляху вирішення завдання за допомогою розширення сервера Web вас чекають дві неприємності. По-перше, створити з програми красивий кольоровий графічний файл в стандарті GIF не так-то просто - ви повинні розібратися з форматом цього файлу і створити всі необхідні заголовки. По-друге, графічний файл займає багато місця і передається по каналах Internet досить повільно - середня швидкість передачі даних в Internet становить 1 Кбайт в секунду.
У той же час файл з вихідними даними може бути дуже компактним. Виникає питання - чи не можна передавати через Internet тільки вихідні дані, а побудова графічної діаграми виконувати на робочій станції користувача?
У цьому полягає другий спосіб, який передбачає застосування аплетів. Ваша програма може, наприклад, отримувати через мережу файл вихідних даних, а потім на підставі вмісту цього файлу малювати в своєму вікні кольорову кругову діаграму. Обсяг переданих даних при цьому в порівнянні з використанням розширення сервера Web скорочується в десятки і сотні разів.
Крім роботи з файлами, розташованими на сервері Web, ми розповімо про створення каналів між додатками Java, які працюють на різних комп'ютерах в мережі, з використанням сокетів.
Сокети дозволяють організувати тісну взаємодію аплетов і повноцінних додатків Java, при якому аплети можуть зраджувати один одному дані через мережу Internet. Це відкриває широкі можливості для обробки інформації за схемою клієнт-сервер, причому в ролі серверів тут може виступати будь-який комп'ютер, підключений до мережі, а не тільки сервер Web. Кожна робоча станція може виступати одночасно і в ролі сервера, і в ролі клієнта.