UDP server tarmoqdasturiniamaliyyaratish




Download 378,36 Kb.
bet5/6
Sana20.02.2024
Hajmi378,36 Kb.
#159285
1   2   3   4   5   6
Bog'liq
1-dedline Tarmoqni dasturlash
Ботирхонов Бехзод Бахтиёр уғли Ru, Intelektual tahlil 1.2.3, 1-laboratoriya ishi mavzu Tarmoq simulyatorlari bilan ishlash. -ADministratsiyalash, 2-dedline Tarmoqni dasturlash, GENOMLARDAGI OQSIL STRUKTURASINI ANIQLASH 3, Jismoniy tarbiya va sportni boshqarish, HARAKAT M T, SAYFULLO, 1578738782
UDP server tarmoqdasturiniamaliyyaratish

UDP serveriklientilovalarigaxizmatko‘rsatishuchun UDP protokolidanfoydalanadigantarmoqilovasidir. UDP serveriniyaratishuchunDatagramPacketob’ektlariniklientlardanqabulqiladiganDatagramSocketob’ektidanfoydalaniladi. UDP serveriniyaratishuchunquyidagilarnibajarishkerakbo‘ladi:


  • DatagramSocketob’ektidanfoydalanibsoketyaratish;


  • DatagramPacketklassob’ektiniyaratishvaklientxabarlariniqabulqilishuchunreceive() metodidanfoydalanish;


  • DatagramPacketklassob’ektiniyaratishvaklientxabarlariniuzatishuchunsend() metodidanfoydalanish;


  • main() metodida UDP server klassikonstruktorinichaqirib, serverniishgatushirish.


QuyidagikodfragmentidanDatagramSocketob’ektiniyaratishuchunfoydalanishmumkin:


DatagramSocketserverSocket = new DatagramSocket(9876);
YuqoridagikodfragmentidaDatagramSocketklassining socket ob’ekti 9876 raqamli port bilanbog‘lanadi.
DatagrammapaketiniqabulqiluvchiDatagramPacketob’ektidatagrammalarnisaqlashuchunbufergaega. QuyidagikodfragmentidandatagrammapaketlariniqabulqiluvchiDatagramPacketob’ektiniyaratishuchunfoydalanishmumkin:
DatagramPacketreceivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket);
Oldingikodfragmentida socket ob’ektidanpaketniqabulqilishuchun receive() metodinichaqiradiganDatagramPacketklassining packet ob’ektiyaratiladi.
Qabul qiluvchigayuborilganDatagramPacketob’ektiqabulqilinganma’lumotlarob’ektidanfarqqiladi. UshbuDatagramPacketob’ektixostningpaketyuborilgan IP-adresiva port nomerigaegabo‘ladi. QuyidagikodfragmentidanDatagramPacketob’ektiniberilganmanzilgayuborishuchunfoydalanishmumkin:
InetAddressIPAddress = receivePacket.getAddress(); int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes();
DatagramPacketsendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket);
Oldingikodfragmentida 4 ta parametrniqabulqiluvchiDatagramPacketklassiningyangi packet ob’ektiyaratiladi.


  • sendData: ma’lumotlargaegabo‘lganbuferniberadi. sendData.length: buferuzunliginbaytlardaberadi.
  • address: datagrammayuborilganadresniberadi.


  • port: masofadagikompyuterdatagrammaniqabulqilishdaishlatadigan port nomeriniberadi.


DatagramSocketklassiningsend() metodiadresgaDatagramPacketob’ektiniyuboradi.


UDP serveriniishgatushirishuchunmain() metodidagikonstruktorklassichaqiriladi. Quyidagikodfragmentini UDP serveriniishgatushirishuchunishlatishmumkin:
Oldingikodfragmentida UDP server ilovasiniishtushiruvchi Server klassob’ektiyaratiladi.
Quyidagikodklientdanqabulqilinganxabarlarniaksettiradivaklientgajavobxabarlarniuzatuvchi Server niyaratishimkoniniberadi:
/* 410-14 guruhtalabasiPalonchiyevPistavonchining


*/
package udp;
import java.io.*;
import java.net.*;
class Server
{
public static void main(String args[]) throws Exception
{
DatagramSocketserverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; System.out.println("Server ishgatushdi!"); while(true)
{
DatagramPacketreceivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket);
String sentence = new String( receivePacket.getData());
System.out.println("Qabul qilindi: " + sentence); InetAddressIPAddress = receivePacket.getAddress(); int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes(); DatagramPacketsendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket);
}
}
}
Ko‘ribchiqilgankodda Server klasskonstruktoridaDatagramSocketklassining socket ob’ektiyaratiladi. Soket 9876 portgainitsializatsiyaqilingandanso‘ng, klient/server o‘zaroaloqasiniboshqaruvchi receive() va send() metodlarichaqiriladi.



Download 378,36 Kb.
1   2   3   4   5   6




Download 378,36 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



UDP server tarmoqdasturiniamaliyyaratish

Download 378,36 Kb.