UDP server tarmoq dasturini amaliy yaratish




Download 381,38 Kb.
bet5/6
Sana20.02.2024
Hajmi381,38 Kb.
#159368
1   2   3   4   5   6
Bog'liq
1-dedline Tarmoqni dasturlash

UDP server tarmoq dasturini amaliy yaratish

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
{
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; System.out.println("Server ishga tushdi!"); while(true)
{
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket);
String sentence = new String( receivePacket.getData());
System.out.println("Qabul qilindi: " + sentence); 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);
}
}
}
Ko‘rib chiqilgan kodda Server klass konstruktorida DatagramSocket klassining socket ob’ekti yaratiladi. Soket 9876 portga initsializatsiya qilingandan so‘ng, klient/server o‘zaro aloqasini boshqaruvchi receive() va send() metodlari chaqiriladi.



Download 381,38 Kb.
1   2   3   4   5   6




Download 381,38 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



UDP server tarmoq dasturini amaliy yaratish

Download 381,38 Kb.