• Mavzu: JavaFX yordamida tarmoq dasturini yaratish . Bajardi: Mamatov A Tekshirdi:Jurayev Oybek
  • Nazariy qism
  • Kommunatsiyalarni rivojlantirish vazirligi muhammad al-xorazimiy nomidagi toshkent axborot texnologiyalari universiteti




    Download 0.71 Mb.
    bet1/3
    Sana13.03.2022
    Hajmi0.71 Mb.
    #18612
      1   2   3
    Bog'liq
    lab9


    O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
    KOMMUNATSIYALARNI RIVOJLANTIRISH VAZIRLIGI
    MUHAMMAD AL-XORAZIMIY NOMIDAGI
    TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
    TBTA va DT” kafedrasi “TDA” fanidan

    9-LABORATORIYA ISHI


    Mavzu: JavaFX yordamida tarmoq dasturini yaratish.


    Bajardi: Mamatov A
    Tekshirdi:Jurayev Oybek


    1. LABORATORIYA ISHI

    Ishning maqsadi:
    Java dasturlash tili java.net.*, java.io.*, javafx.stage.*, javafx.application.*, javafx.event.* paketlari klasslaridan foydalanib GUI kliyent-server tarmoq dasturini yaratish.
    Topshiriq:
    Talaba laboratoriya ishi uchun shaxsiy topshiriq oladi. Bu topshiriq bo‘yicha talaba TCP kliyent-server tarmoq dasturini JavaFX asosida yaratadi. Har bir talaba uchun shaxsiy topshiriq 9.1- jadvalda berilgan.
    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, javafx.concurrent, javafx.embed.swing, javafx.fxml, javafx.print, javafx.scene, javafx.scene.shape, javafx.scene.text, javafx.scene.effect, javafx.scene.input, javafx.scene.transform, javafx.scene.paint, javafx.scene.media, javafx.scene.web, javafx.scene.image, javafx.scene.control, javafx.scene.chart.
    JavaFXda GUI ilovalari Scene Graph yordamida kodlanadi. Scene Graph GUI ilovasini yaratishning boshlang'ich nuqtasidir. U GUI ilova node (tugun)lari deb ataladigan sodda vositalarni o'z ichiga oladi.
    Node vizual/grafik obyekt bo’lib, unda quyidagilar bo’lishi mumkin:

    • Geometrik (Grafik) obyektlar - (2D va 3D), masalan, aylana, to’rtburchak, ko’pburchak va boshqalar.

    • UI elementlari - Button, Checkbox, Choice box, Text Area va hokazo.

    • Konteynerlar - Border Pane, Grid Pane, Flow Pane va boshqalar.

    • Media elementlari - audio, video va tasvir obyektlari.

    Stage (oyna) JavaFX ilovasining barcha obyektlarini o’z ichiga oladi. U javafx.stage paketining Stage sinfi yordamida yaratiladi. Boshlang’ich Stage platformaning o’zi tomonidan yaratiladi. Yaratilgan Stage obyekti Application sinfining start() metodi uchun argument sifatida uzatiladi.
    Stage ikki Width va Height parametrlariga ega. U tarkibiy qism va bezaklar (sarlavha paneli va chegaralar) ga bo’linadi.
    Stagelarning besh turi mavjud:

    • Decorated

    • Undecorated

    • Transparent

    • Unified

    • Utility

    Stage tarkibini ko'rsatish uchun show() metodini ishga tushirish kerak.
    Scene JavaFX ilovasining fizik tarkibini aks ettiradi. Unda scene graphining barcha tarkibi mavjud. javafx.scene paketining Scene sinf Scene obyektini namoyish etadi.
    public class JavafxSample extends Application {
    @Override public void start(Stage primaryStage) throws Exception {
    /*
    Code for JavaFX application.
    (Stage, scene, scene graph)
    */
    }
    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:

    1. Socket obyektidan foydalanib, kliyent soketini yaratish.

    2. Soketga yozish va undan o‘qish.

    3. 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.
    DataOutputStream outToServer = new
    DataOutputStream(clientSocket.getOutputStream());
    BufferedReader inFromServer = new BufferedReader(new
    InputStreamReader(clientSocket.getInputStream()));
    Socket klassining getInputStream() va getOutputStream() metodlari kliyentga server bilan o‘zaro aloqada ishlash imkonini beradi. getInputStream() metodi BufferedReader obyektiga soketdan o‘qish, getOutputStream() metodi esa DataOutputStream obyektiga soketga yozish imkonini beradi.
    Kliyent ilovasida kiritilgan ma’lumotlar serverga uzatilishi uchun standart kirish bilan aloqa o‘rnatish uchun BufferdReader klassining yana bir obyekti e’lon qilinadi. Quyidagi kod fragmenti konsol oynasidan ma’lumotlarni o‘qish uchun ishlatiladi:
    BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
    Keltirilgan kod fragmenti foydalanuvchiga klaviaturadan ma’lumotlarni kiritish imkonini beradi.
    Ulanishni tugallash uchun clientSocket.close() metodidan foydalaniladi.
    TCP serverini yaratish
    Serverni ishlab chiqish jarayoni ma’lum portdan kliyentlarning ulanish o‘rnatish so‘rovlarini “eshitadigan” ServerSocket klass obyektini yaratishdan iborat. Server ruxsat etilgan so‘rovni taniganidan so‘ng ServerSocket obyekti kliyent yaratgan Socket obyektini qabul qiladi. Server va kliyent o‘rtasidagi o‘zaro aloqa ushbu soketdan foydalanish bilan amalga oshiriladi.
    java.net.* paketining ServerSocket klassi shunday obyektni yaratishda ishlatiladiki, uning yordamida server masofadagi kirish so‘rovlarini eshitadi. BufferedInputStream klassi kliyentdan serverga ma’lumotlar uzatilishini boshqaradi, DataOutputStream klassi esa serverdan kliyentgacha ma’lumotlar uzatilishini boshqaradi.
    accept() metodi o‘zi ulangan portni eshitish bilan kliyentning ulanishini kutadi. Kliyent serverning soketi bilan ulanishga harakat qilganida, metod ulanishni qabul qiladi va kliyent soketini qaytaradi, so‘ngra esa ushbu soket kliyent tomonidan server bilan muloqot uchun ishlatiladi. Ushbu soketning chiquvchi oqimi ulangan kliyent uchun kiruvchi oqim bo‘lib hisoblanadi va aksincha.
    IOException holati ulanish o‘rnatish vaqtida qandaydir xatolik yuzaga kelganida generatsiyalanadi. Java yuzaga kelayotgan istisno holatlarni qayta ishlashga majbur qiladi.
    TCP serverining server ilovasini yaratish uchun quyidagilarni bajarish kerak:

    • ServerSocket serverining soket obyektini yaratish;

    • Kliyentning ulanish so‘rovlarini eshitish;

    • Serverni ishga tushirish;

    • Kliyentlarning so‘rovlari uchun ulanish oqimini yaratish.

    Serverni yaratish
    ServerSocket obyekti kliyentlarning so‘rovlarini “eshitadi” va Server klassining konstruktori ServerSocket obyektini yaratadi. Serverni ishga tushirishda istisno holat yuzaga kelganida xatolik to‘g‘risidagi xabar aks ettiriladi. Server konstruktori uchun kod fragmenti quyidagi ko‘rinishga ega:

    Download 0.71 Mb.
      1   2   3




    Download 0.71 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Kommunatsiyalarni rivojlantirish vazirligi muhammad al-xorazimiy nomidagi toshkent axborot texnologiyalari universiteti

    Download 0.71 Mb.