Mavzu: Javafx yordamida tarmoq dasturini yaratish Ishning maqsadi



Download 0,58 Mb.
Pdf ko'rish
bet1/3
Sana06.01.2022
Hajmi0,58 Mb.
#321599
  1   2   3
Bog'liq
9-laboratoriya ishi



9. LABORATORIYA ISHI

 

Mavzu: JavaFX yordamida tarmoq dasturini yaratish 



 

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: 

9.1- jadval 

Topshiriq variantlari

 

№ 

Topshiriq 



1.

 

 



Ixtiyoriy matnni teskari tartibda yozish 

2.

 



 

Ixtiyoriy n ta sondan musbatlari yig‘indisini hisoblash 

3.

 

 



Ixtiyoriy n ta sonning yig‘indisini hisoblash 

4.

 



 

Uchburchakning  bissektrisa uzunligini topish 

5.

 

 



Ixtiyoriy   kubning  hajmini topish 


 


Download 0,58 Mb.

Do'stlaringiz bilan baham:
  1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish