|
Kompyuter injiniring fakulteti 716-20 guruh talabasi karimov Anvarjoning
|
bet | 4/6 | Sana | 20.02.2024 | Hajmi | 378,36 Kb. | | #159285 |
Bog'liq 1-dedline Tarmoqni dasturlash2-amaliy ish.
UDP klientdasturiniamaliyo’rganish. UDP server tarmoqdasturiniamalio’rganish
UDP klienti UDP protokolidanservergaso‘rovlarniyuborishva server ilovasidanjavoblarniqabulqilishuchunfoydalanadiganilovadir. Foydalanuvchining UDP-ilovasida UDP serveridanxabarlarniqabulqiladiganDatagramSocketklassob’ektiniyaratishzarur, buuchunesaquyidagilarnibajarishlozimbo‘ladi:
Server bilanulanisho‘rnatishuchunDatagramSocketklassob’ektidanfoydalanuvchisoketiniyaratish.
DatagramPacketklassob’ektiniyaratishvaxabarlarniservergayuborishuchunsend() metodidanfoydalanish.
DatagramPacketklassob’ektiniyaratishvaserverdanyuborilganxabarlarniqabulqilishuchunreceive() metodidanfoydalanish.
QuyidagikodfragmentidanklientilovasiuchunDatagramSocketklassob’ektiniyaratishuchunfoydalanishmumkin:
DatagramSocketclientSocket = new DatagramSocket();
OldingikodfragmentidakonstruktorDatagramSocketklassob’ektiniharqandayruxsatetilganlokal port bilanbog‘laydi, chunkiparametrda port nomeriko‘rsatilmaganbo‘ladi.
UshbuDatagramSocketob’ektiso‘rovyuboriladiganserverning IP-manziliva port raqaminio‘zichigaoladi. QuyidagikodfragmentiDatagramPacketob’ektiniberilganservergayuborishuchunishlatiladi:
InetAddressIPAddress = InetAddress.getByName("localhost");
DatagramPacketsendPacket = new DatagramPacket(sendData, sendData.length,
IPAddress, 9876);
clientSocket.send(sendPacket);
Oldingikodfragmetida 4 ta parametrniqabulqiluvchiDatagramPacketkonstruktoriyordamida packet ob’ektiyaratiladi. DatagramSocketklassiningsend() metodiDatagramPacketklassob’ektiniservergayuboradi.
QuyidagikodfragmentidanserverdandatagrammapaketlariniqabulqiluvchiDatagramPacketob’ektiniyaratishdafoydalanishmumkin:
DatagramPacketreceivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData());
Oldingikodfragmentida receive() metodinichaqiruvchiDatagramPacketklassning packet ob’ektiyaratiladi. getData() metodi packet ob’ektidanma’lumotlarniqabulqiladivaularni string turdagio‘zgaruvchidasaqlaydi.
Quyidagikod UDP servergaxabarlarniuzatuvchivaqabulqiluvchi UDP Client klassiniyaratishuchunishlatiladi:
package udp;
import java.io.*;
import java.net.*;
class Client
{
public static void main(String args[]) throws Exception
{
System.out.println("Client ishgatushdi!");
BufferedReaderinFromUser = new BufferedReader(new
InputStreamReader(System.in));
DatagramSocketclientSocket = new DatagramSocket(); InetAddressIPAddress = InetAddress.getByName("localhost"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes();
DatagramPacketsendPacket = new DatagramPacket(sendData,
sendData.length, IPAddress, 9876); clientSocket.send(sendPacket);
DatagramPacketreceivePacket = new DatagramPacket(receiveData,
receiveData.length); clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData()); System.out.println("SERVERDAN:" + modifiedSentence); clientSocket.close();
|
| |