Мережа
Навіщо нам працювати з мережею?
Socket
Socket - це один із кінців двостороннього комунікаційного каналу між двома програмами, що мають доступ до мережі.
Definition: A socket is one endpoint of a two-way communication link between two programs running on the network."
Socket є комбінацією IP-адреси (ідентифікує конкретний комп'ютер у мережі) та номера порту (розрізняє потоки місцепризначення в межах комп'ютера).
Це можна відобразити так: 64.104.137.58:80, де 64.104.137.58 – IP-адреса, а 80 – порт.
Зв'язок із "зовнішнім світом" (файлами, Інтернетом, ...)
"A stream can represent many different kinds of sources and destinations, including disk files, devices, other programs, and memory arrays." (потоки)
Уведення даних із зовнішнього світу:
Постачання даних у зовнішньій світ:
Отримання даних
крок перший - підключення пакета java.net:
import java.net.*;
крок 2 - створення об'єкту типу Socket
Socket cli = new Socket("127.0.0.1", 80);
(IP-адресу 127.0.0.1 слід замінити адресою реального комп'ютера з програмою-сервером)
отримання даних від сервера: cli.getInputStream() - повертає потік типу InputStream, через який в програму надходитиме інформація з сокета
щоб перетворити ці дані на текст, "обгортаємо" отриманий потік в InputStreamReader:
InputStreamReader is = new InputStreamReader( cli.getInputStream() )
При цьому знадобиться пакет java.io:
import java.io.*;
Тепер можна працювати як з файлами (там був FileReader):
Не забуваємо про те, що як і при роботі з файлами, мережа може стати причиною помилок (немає зв'язку з сервером тощо).
Тому доцільно обробити помилки, а не просто "позбавитися" від них через ключове слово throws:
try {
} catch (Exception e) {
System.out.println("Сталася помилка: "+e.getMessage());
}
Діалог із сервером
щоб обмінятися із сервером, наприклад, числовими даними, "огортаємо" потоки, отримані від сокета через методи
getInputStream() та getOutPutStream() у DataInputStream та DataOutputStream відповідно:
Як і раніше, не забуваємо про конструкцію try - catch або ключове слово throws для обробки
можливих помилок
Повернутися