МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Опис вихідного тексту клієнтського додатка SocketClientУсередині методу main клієнтського додатка SocketClient визначені змінні для вводу рядка із клавіатури (масив bKbdInput), сокет s класу Socket для роботи із сервером SocketServ, вхідний потік is і вихідний потік os, які пов'язані із сокетом s. Після виводу на консоль рядка, що запрошує, клієнтський додаток створює сокет, викликаючи конструктор класу Socket: s = new Socket("localhost",9999);У процесі налагодження ми запускали сервер і клієнт на тому самому вузлі, тому як адреса сервера зазначена рядок "localhost". Номер порту сервера SocketServ дорівнює 9999, тому ми й передали конструкторові це значення. Після створення сокета наш клієнтський додаток створює вхідний і вихідний потоки, пов'язані із цим сокетом: is = s.getInputStream();os = s.getOutputStream();Тепер клієнтський додаток готовий обмінюватися даними із сервером. Цей обмін виконується в циклі, умовою завершення якого є вводу користувачем рядка "quit". Усередині циклу додаток читає рядок із клавіатури, записуючи її в масив bKbdInput: length = System.in.read(bKbdInput);Кількість введених символів зберігається в змінної length. Далі якщо користувач ввів рядок, а не просто нажав на клавішу <Enter>, цей рядок відображається на консолі й передається серверу: Відразу після передачі скидається буфер вихідного потоку. Далі додаток читає відповідь, що посилається сервером, у буфер buf: length = is.read(buf);Нагадаємо, що наш сервер посилає клієнтові прийнятий рядок у незмінному виді. Якщо сервер закрив канал, то метод read повертає значення -1. У цьому випадку ми перериваємо цикл вводу й передачі рядків: if(length == -1) break;Якщо ж відповідь сервера прийнята успішно, прийняті дані записуються в рядок str, що відображається на консолі клієнта: System.out.println(">> " + str);Перед завершенням своєї роботи клієнт закриває вхідний і вихідний потоки, а також сокет, на якому виконувалася передача даних: is.close();os.close();s.close();
|
||||||||
|