• Nazariy qism
  • 9-laboratoriya ishi mavzu: Javafx yordamida tarmoq dasturini yaratish Ishning maqsadi




    Download 0,55 Mb.
    Pdf ko'rish
    bet1/2
    Sana21.12.2023
    Hajmi0,55 Mb.
    #126169
      1   2
    Bog'liq
    9-LABORATORIYA ISHI



    9-LABORATORIYA ISHI 
    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, 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; 
    - foydalanuvchi interfeysi 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,55 Mb.
      1   2




    Download 0,55 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    9-laboratoriya ishi mavzu: Javafx yordamida tarmoq dasturini yaratish Ishning maqsadi

    Download 0,55 Mb.
    Pdf ko'rish