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();
}
}
}
}
|