package MV3500Cohort2024JulySeptember.homework2.Williams; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /** * Server file for HW2. * * @author ethanjwilliams */ public class HW2Server { /** * @param args the command line arguments */ public static void main(String[] args) { DatagramSocket socket = null; String riddleAnswer = "echo"; try { socket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; int count = 1; System.out.println("Server has started, waiting for client..."); boolean isRunning = true; while (isRunning) { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); socket.receive(receivePacket); String message = new String(receivePacket.getData(), 0, receivePacket.getLength()); InetAddress clientAddress = receivePacket.getAddress(); int clientPort = receivePacket.getPort(); System.out.println("Client sent: " + message); String response; if (message.trim().equalsIgnoreCase(riddleAnswer)) { response = "Good Job!! You solved the riddle in " + count + " tries!"; isRunning = false; } else { response = "Wrong answer. Try again!"; count++; } sendData = response.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort); socket.send(sendPacket); } } catch (Exception e) { e.printStackTrace(); } finally { if (socket != null && !socket.isClosed()) { socket.close(); } } } }