UDPClient.java
package udp;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Scanner;
public class UDPClient {
public static void main(String[] args) throws Exception {
System.out.print("Enter a, b, c: ");
Scanner scanner = new Scanner(System.in);
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
// int n = scanner.nextInt();
byte[] sendData;
byte[] receiveData = new byte[10];
StringBuilder data = new StringBuilder();
for (int i = 0; i < 3; i++) {
data.append(scanner.nextInt()).append("~");
}
sendData = data.toString().getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence = new String(receivePacket.getData());
System.out.println("Result: " + modifiedSentence);
clientSocket.close();
}
}
UDPServer.java
package udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPServer extends Thread {
public static void main(String[] args) throws Exception {
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData;
System.out.println("Started working server!");
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String data = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String[] d = data.split("~");
int a = Integer.parseInt(d[0]);
int b = Integer.parseInt(d[1]);
int c = Integer.parseInt(d[2]);
double D = b * b - 4.0 * a * c;
if (D > 0.0) {
double r1 = (-b + Math.pow(D, 0.5)) / (2.0 * a);
double r2 = (-b - Math.pow(D, 0.5)) / (2.0 * a);
sendData = ("yechimlar " + r1 + " va " + r2).getBytes();
result(sendData, IPAddress, port, serverSocket);
} else if (D == 0.0) {
double r1 = -b / (2.0 * a);
System.out.println("yechim " + r1);
sendData = ("yechim " + r1).getBytes();
result(sendData, IPAddress, port, serverSocket);
} else {
sendData = ("yechim yo'q").getBytes();
result(sendData, IPAddress, port, serverSocket);
}
}
private static void result(byte[] sendData, InetAddress IPAddress, int port, DatagramSocket serverSocket) throws IOException {
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
port);
serverSocket.send(sendPacket);
serverSocket.close();
if (serverSocket.isClosed()) System.out.println("Server closed");
}
}
UDP soketi asosida ixtiyoriy n ta sonni o‘sish tartibida saralash kliyent-server dasturini tuzing.
Do'stlaringiz bilan baham: |