paranid5

udp factorial

Sep 2nd, 2021
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.58 KB | None | 0 0
  1. // Server.java
  2.  
  3. import org.jetbrains.annotations.Contract;
  4.  
  5. import java.io.IOException;
  6. import java.net.DatagramPacket;
  7. import java.net.DatagramSocket;
  8. import java.net.InetSocketAddress;
  9. import java.nio.ByteBuffer;
  10.  
  11. public final class Server {
  12.     @Contract(pure = true)
  13.     public static final int fac(final int number) {
  14.         return number == 0 ? 1 : fac(number - 1) * number;
  15.     }
  16.  
  17.     public static final void main(final String[] args) throws IOException {
  18.         final var server = new DatagramSocket(new InetSocketAddress("127.0.0.1", 1337));
  19.  
  20.         while (true) {
  21.             final var readData = new byte[4];
  22.             final var packet = new DatagramPacket(readData, readData.length);
  23.             server.receive(packet);
  24.             final var readBuffer = ByteBuffer.wrap(packet.getData());
  25.             final var number = readBuffer.getInt();
  26.  
  27.             final var writeBuffer = ByteBuffer.allocate(4);
  28.             writeBuffer.putInt(fac(number));
  29.             final var writeData = writeBuffer.array();
  30.  
  31.             server.send(
  32.                     new DatagramPacket(
  33.                             writeData,
  34.                             writeData.length,
  35.                             packet.getSocketAddress()
  36.                     )
  37.             );
  38.         }
  39.     }
  40. }
  41.  
  42. // Client.java
  43.  
  44. import java.io.BufferedReader;
  45. import java.io.IOException;
  46. import java.io.InputStreamReader;
  47. import java.net.DatagramPacket;
  48. import java.net.DatagramSocket;
  49. import java.net.InetSocketAddress;
  50. import java.nio.ByteBuffer;
  51.  
  52. import static java.lang.System.out;
  53.  
  54. public final class Client {
  55.     public static final void main(final String[] args) throws IOException {
  56.         final var client = new DatagramSocket();
  57.         out.println("Number:");
  58.  
  59.         try (final var reader = new BufferedReader(new InputStreamReader(System.in))) {
  60.             final var writeBuffer = ByteBuffer.allocate(4);
  61.             writeBuffer.putInt(Integer.parseInt(reader.readLine()));
  62.             final var writeData = writeBuffer.array();
  63.  
  64.             client.send(
  65.                     new DatagramPacket(
  66.                             writeData,
  67.                             writeData.length,
  68.                             new InetSocketAddress("127.0.0.1", 1337)
  69.                     )
  70.             );
  71.  
  72.             final var readData = new byte[4];
  73.             final var packet = new DatagramPacket(readData, readData.length);
  74.             client.receive(packet);
  75.             final var readBuffer = ByteBuffer.wrap(packet.getData());
  76.             out.println(readBuffer.getInt());
  77.         }
  78.     }
  79. }
Add Comment
Please, Sign In to add comment