1-amaliy mashg’ulot. Mavzu: tcp kliyent tarmoq dasturini amaliy o‘rganish. Ishning maqsadi


Download 1.94 Mb.
bet7/14
Sana07.02.2023
Hajmi1.94 Mb.
#1172646
1   2   3   4   5   6   7   8   9   10   ...   14
Bog'liq
Amaliyot ishlari

4-AMALIY MASHG’ULOT.
Mavzu: UDP server tarmoq dasturini yaratish
Ishning maqsadi:
Java dasturlash tili java.net.* va java.io.* paketlari klasslaridan foydalanib UDP server tarmoq dasturini yaratish.
Topshiriq:
Talaba amaliy mashg’ulot uchun shaxsiy topshiriq oladi. Bu topshiriq bo‘yicha talaba UDP server tarmoq dasturini yaratadi. Har bir talaba uchun shaxsiy topshiriq 4.1-jadvalda berilgan.
Nazariy qism:
UDP serveri klient ilovalariga xizmat ko‘rsatish uchun UDP protokolidan foydalanadigan tarmoq ilovasidir. UDP serverini yaratish uchun DatagramPacket ob’ektlarini klientlardan qabul qiladigan DatagramSocket ob’ektidan foydalaniladi. UDP serverini yaratish uchun quyidagilarni bajarish kerak bo‘ladi:

Quyidagi kod fragmentidan DatagramSocket ob’ektini yaratish uchun foydalanish mumkin:
DatagramSocket serverSocket = new DatagramSocket(9876);
Yuqoridagi kod fragmentida DatagramSocket klassining socket ob’ekti 9876 raqamli port bilan bog‘lanadi.
Datagramma paketini qabul qiluvchi DatagramPacket ob’ekti datagrammalarni saqlash uchun buferga ega. Quyidagi kod fragmentidan datagramma paketlarini qabul qiluvchi DatagramPacket ob’ektini yaratish uchun foydalanish mumkin:
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket);
Oldingi kod fragmentida socket ob’ektidan paketni qabul qilish uchun receive() metodini chaqiradigan DatagramPacket klassining packet ob’ekti yaratiladi.
Qabul qiluvchiga yuborilgan DatagramPacket ob’ekti qabul qilingan ma’lumotlar ob’ektidan farq qiladi. Ushbu DatagramPacket ob’ekti xostning paket yuborilgan IP-adresi va port nomeriga ega bo‘ladi. Quyidagi kod fragmentidan DatagramPacket ob’ektini berilgan manzilga yuborish uchun foydalanish mumkin:
InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket);
Oldingi kod fragmentida 4 ta parametrni qabul qiluvchi DatagramPacket klassining yangi packet ob’ekti yaratiladi.

  • sendData: ma’lumotlarga ega bo‘lgan buferni beradi.  sendData.length: bufer uzunligin baytlarda beradi.

  • address: datagramma yuborilgan adresni beradi.

  • port: masofadagi kompyuter datagrammani qabul qilishda ishlatadigan port nomerini beradi.

DatagramSocket klassining send() metodi adresga DatagramPacket ob’ektini yuboradi.
UDP serverini ishga tushirish uchun main() metodidagi konstruktor klassi chaqiriladi. Quyidagi kod fragmentini UDP serverini ishga tushirish uchun ishlatish mumkin:
Oldingi kod fragmentida UDP server ilovasini ish tushiruvchi Server klass ob’ekti yaratiladi.
Quyidagi kod klientdan qabul qilingan xabarlarni aks ettiradi va klientga javob xabarlarni uzatuvchi Server ni yaratish imkonini beradi:
/* 410-14 guruh talabasi Palonchiyev Pistavonchining

*/
package udp;
import java.io.*;
import java.net.*;
class Server
{

Download 1.94 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   ...   14




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