Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Server.java
- import org.jetbrains.annotations.Contract;
- import java.io.IOException;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.InetSocketAddress;
- import java.nio.ByteBuffer;
- public final class Server {
- @Contract(pure = true)
- public static final int fac(final int number) {
- return number == 0 ? 1 : fac(number - 1) * number;
- }
- public static final void main(final String[] args) throws IOException {
- final var server = new DatagramSocket(new InetSocketAddress("127.0.0.1", 1337));
- while (true) {
- final var readData = new byte[4];
- final var packet = new DatagramPacket(readData, readData.length);
- server.receive(packet);
- final var readBuffer = ByteBuffer.wrap(packet.getData());
- final var number = readBuffer.getInt();
- final var writeBuffer = ByteBuffer.allocate(4);
- writeBuffer.putInt(fac(number));
- final var writeData = writeBuffer.array();
- server.send(
- new DatagramPacket(
- writeData,
- writeData.length,
- packet.getSocketAddress()
- )
- );
- }
- }
- }
- // Client.java
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.InetSocketAddress;
- import java.nio.ByteBuffer;
- import static java.lang.System.out;
- public final class Client {
- public static final void main(final String[] args) throws IOException {
- final var client = new DatagramSocket();
- out.println("Number:");
- try (final var reader = new BufferedReader(new InputStreamReader(System.in))) {
- final var writeBuffer = ByteBuffer.allocate(4);
- writeBuffer.putInt(Integer.parseInt(reader.readLine()));
- final var writeData = writeBuffer.array();
- client.send(
- new DatagramPacket(
- writeData,
- writeData.length,
- new InetSocketAddress("127.0.0.1", 1337)
- )
- );
- final var readData = new byte[4];
- final var packet = new DatagramPacket(readData, readData.length);
- client.receive(packet);
- final var readBuffer = ByteBuffer.wrap(packet.getData());
- out.println(readBuffer.getInt());
- }
- }
- }
Add Comment
Please, Sign In to add comment