Toshkent 2023 3-LABORATORIYA ISHI Mavzu: Multicast soket asosidagi dasturni yaratish Ishning maqsadi: Talabalarda Java dasturlash tili java.net.* va java.io.* paketlari klasslaridan foydalanib Multicast tarmoq dasturini yaratish bo‘yicha amaliy ko‘nikmalar hosil qilish.
Nazariy qism: UDP protokoli asosida multicast dasturini yaratish. Java UDP datagramma va TCP soketlaridan foydalangan holda tarmoq ilovalarini ishlab chiqish imkonini beradi. UDP soketlari ilovalarning tarmoq orqali o‘zaro ishlashi uchun UDP protokolidan foydalanadi. UDP ulanish o‘rnatish zaruriyatisiz tez va ishonchsiz protokoldir. java.net paketi Java ilovasida UDP soketidan foydalanish imkonini beruvchi quyidagi ikki klassni o‘z ichiga oladi:
DatagramPacket klassi;
DatagramSocket klassi.
DatagramPacket va DatagramSocket klasslari. DatagramPacket obyekti tarmoq orqali uzatiladigan yoki qabul qilinadigan datagramma paketlaridan iborat bo‘lgan ma’lumotlar konteyneridir. Quyidagi konstruktorlar DatagramPacket obyektlarini initsializatsiya qilish uchun ishlatiladi:
public DatagramPacket(byte[] buffer, int buffer_length): ma’lumotlarni byte massivida qabul qiladigan va saqlaydigan DatagramPacket obyektini yaratadi. Byte massivining bufer uzunligi buffer_length ikkinchi parametri tomonidan beriladi.
public DatagramPacket(byte[] buffer, int buffer_length, InetAddress address, int port): berilgan uzunlikdagi ma’lumotlar paketlarini uzatuvchi DatagramPacket obyektini yaratadi. Ma’lumotlar paketlari kompyuterga IP-adres va parametr sifatida beriladigan port nomeri bilan uzatiladi.
DatagramSocket klassi DatagramPacket obyektlarini boqsharish uchun funksionallikni o‘z ichiga oladi. DatagramPacket obyektlari DatagramSocketdan 2 foydalangan holda saqlangan ma’lumotlarni uzatadi va qabul qiladi. Quyidagi konstruktorlar DatagramSocket obyektini initsializatsiya qilish uchun ishlatiladi:
public DatagramSocket(): DatagramSocket obyektini yaratadi va uni lokal kompyuterdagi ruxsat etilgan port bilan bog‘laydi.
public DatagramSocket(int port): obyektni yaratadi va uni parametrda berilgan lokal xostdagi port bilan bog‘laydi.
public DatagramSocket(int port, InetAddress address): obyektni yaratadi va uni berilgan xost porti bilan bog‘laydi.
Multicast qabul qiluvchi qismining Java kodi:
package multicast;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.UnknownHostException;
public class Receiver { final static String INET_ADDR = "224.0.0.3";
final static int PORT = 8888;
public static void main(String[] args) throws UnknownHostException {
InetAddress address = InetAddress.getByName(INET_ADDR);
byte[] buf = new byte[256];
try (MulticastSocket clientSocket = new MulticastSocket(PORT)){ clientSocket.joinGroup(address);
while (true) {
DatagramPacket msgPacket = new DatagramPacket(buf, buf.length); clientSocket.receive(msgPacket);
String msg = new String(buf, 0, buf.length);
System.out.println("Socket 1 received msg: " + msg); } }
catch (IOException ex) {
ex.printStackTrace();
} }
Topshiriq: Talabalar 3.1-jadvalda keltirilgan o‘zlariga belgilangan variantlarni olib Multicast tarmoq dasturini yaratishadi.
20-variant: Ixtiyoriy koefitsentli kvadrat tenglama yechimini topish
Xulosa: Men ushbu laboratoriya ishimda multicast tarmoq tuzib o’z varyantimni bajardim. Men ushbu laboratoriya ishini java.net.* va java.io.* paketlari klasslaridan foydalanib Multicast tarmoq dasturini yaratish haqida batafsil ma’mumotga ega bo’ldim.