Mavzu: udp kliyent-server tarmoq dasturini yaratish




Download 49,86 Kb.
bet2/3
Sana14.02.2024
Hajmi49,86 Kb.
#156218
1   2   3
Bog'liq
2lab Davronov Diyorbek
Kamron, УФ Спектрофотометр, turk-sivilizatsiyasi-xunnlar-imperiyasining-dunyo-davlatchilik-taraqqiyotiga-ta-siri, WAURMA HOUSE, 123, Doc1, 4-Testlar 111 (1), kompruter tarmoqlari4, Muhammad Al signalllar oo, Round-up-1, 3-Amaliy mashg’ulot. Pythonda istisno xolatlar bilan ishlash. Is, M. U. Hamidova, maxsus pedagogika-fayllar.org, tavsifnoma, Dars, 1- amaliy mashg\'uloti Mavzu Tarmoq qurilmalari va kommunikasiya
Server kod:
import java.io.*;
import java.net.*;
import java.util.ArrayList;

public class UDPServer {


public static void main(String[] args) {
DatagramSocket socket = null;
try {
socket = new DatagramSocket(12345);
System.out.println("Server is listening on port 12345...");

while (true) {


byte[] receiveData = new byte[1024];
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket);

InetAddress clientAddress = receivePacket.getAddress();


int clientPort = receivePacket.getPort();

String message = new String(receivePacket.getData(), 0, receivePacket.getLength());


String[] parts = message.split(",");

if (parts.length != 2) {


String response = "Invalid input. Please send two numbers separated by a comma: radius and height.";
byte[] sendData = response.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort);
socket.send(sendPacket);
continue;
}

try {
double radius = Double.parseDouble(parts[0]);


double height = Double.parseDouble(parts[1]);

if (radius <= 0 || height <= 0) {


String response = "Invalid input. Please send positive values for radius and height.";
byte[] sendData = response.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort);
socket.send(sendPacket);
} else {
double slantHeight = Math.sqrt(radius * radius + height * height);
double surfaceArea = Math.PI * radius * (radius + slantHeight);

String response = "Surface area of the cone: " + surfaceArea;


byte[] sendData = response.getBytes();

DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort);


socket.send(sendPacket);
}
} catch (NumberFormatException e) {
String response = "Invalid input. Please send valid numbers for radius and height.";
byte[] sendData = response.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort);
socket.send(sendPacket);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null && !socket.isClosed()) {
socket.close();
}
}
}
}

Download 49,86 Kb.
1   2   3




Download 49,86 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Mavzu: udp kliyent-server tarmoq dasturini yaratish

Download 49,86 Kb.