7-Amaliy ish. 430-21 guruh talabasi: Rasuljonov Nurali Tekshirdi: Muxammedinov Kobeysin

O’ZBEKISTON RESPUBLIKASI RAQAMLI TEXNOLOGIYALAR VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI.
INFOKOMMUNIKATSIYADA DASTURLASH 2 FANIDAN
7-Amaliy ish.
430-21 guruh talabasi: Rasuljonov Nurali
Tekshirdi: Muxammedinov Kobeysin
7- AMALIY MASHG‘ULOT
Mavzu: JavaFX yordamida tarmoq dasturini yaratish
Ishning maqsadi:
Talabalarda Java dasturlash tilining java.net.*, java.io.*, javafx.stage.*, javafx.application.*, javafx.event.* paketlari klasslaridan foydalanib GUI kliyent- server tarmoq dasturini yaratish bo‘yicha ko‘nikmalar shakllantirish.
Nazariy qism:
JavaFX - boy Internet ilovalarini (Rich Internet Applications) yaratish uchun foydalaniladigan Java kutubxonasi. Ushbu kutubxonadan foydalanib yaratilgan ilovalar turli xil operatsion tizimlarda va qurilmalarda, masalan,
Desktop kompyuterlari, mobil telefonlar, televizorlar, planshetlar va boshqalarda ishlashi mumkin.
Java dasturlash tilidan foydalangan holda GUI ilovalarini yaratish uchun dasturchilar Advanced Windowing Toolkit (AWT) va Swing kabi kutubxonalarga tayanadilar. JavaFX paydo bo‘lganidan so‘ng, ushbu Java dasturchilari boy tarkibga ega samarali GUI ilovalarni JavaFXdan foydalanib yaratishlari mumkin.
Boy xususiyatlarga ega kliyent tomon ilovalarini yaratish
uchun dasturchilar Media, UI Controls, Web, 2D va 3D kabi funktsiyalarni qo‘shish uchun turli xil kutubxonalarga murojaat qilishadi. JavaFX ushbu xususiyatlarning barchasini o‘z ichiga oladi. Bunga qo‘shimcha ravishda, dasturchilar Java kutubxonasining Swing kabi mavjud xususiyatlaridan ham foydalanishlari mumkin.
JavaFX grafika va medianing boy to‘plamini taqdim etadi va apparat tezlashtirilgan grafikasi orqali zamonaviy Graphical Processing Unit (GPU)dan foydalanadi. JavaFXdan Groovy va JRuby kabi JVM asosidagi texnologiyalarda foydalanish mumkin.
JavaFX GUI ilovalarini yaratish uchun boy sinflar va interfeyslarga ega API hisoblanadi. Quyida muhim APIlar keltirilgan:
javafx.animation, javafx.application, javafx.css, javafx.event, javafx.geometry, javafx.stage, javafx.layout, javafx.beans, javafx.collections, javafx.util,
}
public static void main(String args[]){ launch(args);
}
}
Kliyentning birinchi o‘rinda bajaradigan vazifasi server bilan aloqa o‘rnatishdan iborat. Server va kliyent o‘rtasida aloqa o‘rnatish uchun Socket obyekti yaratiladi. TCP soketi kliyentining ilovasini yaratish uchun quyidagi vazifalarni bajaradi:
Socket obyektidan foydalanib, kliyent soketini yaratish.
Soketga yozish va undan o‘qish.
Ulanishni tugallash.
Kliyent soketini yaratish.
Kliyent soketining obyekti server tomonidan eshitiladigan ikki parametr (IP adres va port raqami)ni qabul qiluvchi Socket klassining konstruktori yordamida yaratiladi.
Socket clientSocket = new Socket("127.0.0.1", 7777);
Avvalgi kod fragmentida 127.0.0.1 ga teng bo‘lgan IP adres va 7777-port shunday soketni aniqlaydiki, ushbu soketda server kliyent so‘rovlarini eshitadi.
Soketdan o‘qish va yozish.
Kliyent va server o‘rtasida ulanish o‘rnatilganidan so‘ng kliyent serverga soket orqali so‘rov yuboradi. Soketdan o‘qish va yozish fayldan o‘qish va yozishga o‘xshash. Kliyentga server bilan o‘zaro aloqada ishlashni ta'minlash uchun quyidashilarni bajarish zarur:
PrintStream va BufferedReader klasslari har biri uchun ikkita obyekt e'lon qilinadi. Ushbu obyektlar soketdan o‘qish va yozish uchun ishlatiladi.