Skip to content
Snippets Groups Projects
Commit b6a56505 authored by Timberlake, James (Jack) (LT)'s avatar Timberlake, James (Jack) (LT)
Browse files

HW2

parent 10cb5b1a
No related branches found
No related tags found
No related merge requests found
package MV3500Cohort2024JulySeptember.homework2.Timberlake;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
/**
*
* @author Jack
*/
public class Client_HW2 {
public static void main(String[] args) {
DatagramSocket socket = null;
Scanner scanner = new Scanner(System.in);
try {
// Create a socket to communicate with the server
socket = new DatagramSocket();
InetAddress serverAddress = InetAddress.getByName("localhost"); // Server address (localhost for testing)
byte[] sendData = new byte[1024]; // Buffer to store data to send
byte[] receiveData = new byte[1024]; // Buffer to store received data
System.out.print("Let's play a game!!\n");
System.out.print("Try guessing a number between 1-100\n");
while(true) {
System.out.print("Enter your guess: ");
String guess = scanner.nextLine(); //Read user input
sendData = guess.getBytes(); // Convert message to bytes
// Send guess to the server
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverAddress, 9876);
socket.send(sendPacket); // Send packet to server
// Receive response from server
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket); // Blocking call until a packet is received
String response = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("Server Said: " + response); // Print received response
if (response.startsWith ("Good")) {
break; //End the game
}
}
} catch (Exception e) {
e.printStackTrace(); // Print any exceptions that occur
} finally {
if (scanner != null) {
scanner.close(); // Close scanner
}
if (socket != null && !socket.isClosed()) {
socket.close(); // Close the socket to release resources
}
}
}
}
package MV3500Cohort2024JulySeptember.homework2.Timberlake;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Random;
/**
*
* @author Jack
*/
public class Server_HW2 {
public static void main(String[] args) {
DatagramSocket socket = null;
Random random = new Random();
int numToGuess = random.nextInt(100) + 1;
//System.out.println("Magic Number Is: " + numToGuess);
try {
// Create a socket to listen on port 9876
socket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024]; // Buffer to store incoming data
byte[] sendData = new byte[1024]; // Buffer to store outgoing data
int count = 1;
System.out.println("Server has started, waiting for client...");
boolean isRunning = true;
while (isRunning) {
// Receive packet from client
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket); // Blocking call until a packet is received
String message = new String(receivePacket.getData(), 0, receivePacket.getLength()); //Receive packet
InetAddress clientAddress = receivePacket.getAddress(); //Save IP for response
int clientPort = receivePacket.getPort(); //Save port for response
System.out.println("Client sent: " + message); // Print received message
String response;
try {
int guess = Integer.parseInt(message.trim());
if (guess < numToGuess) {
response = "Guess Higher";
count++;
} else if (guess > numToGuess) {
response = "Guess Lower";
count++;
} else {
response = "Good Job!! That took you " + count + " tries!";
isRunning = false;
}
} catch (NumberFormatException e) {
response = "Invalid input. Enter a number.";
}
// Prepare response to client
sendData = response.getBytes(); // Convert response message to bytes
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort);
socket.send(sendPacket); // Send response packet to client
}
} catch (Exception e) {
e.printStackTrace(); // Print any exceptions that occur
} finally {
if (socket != null && !socket.isClosed()) {
socket.close(); // Close the socket to release resources
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment