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

Client+Server UDP Examples

parent 2551d5c8
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,7 @@ package MV3500Cohort2024JulySeptember.homework1.Timberlake; ...@@ -3,6 +3,7 @@ package MV3500Cohort2024JulySeptember.homework1.Timberlake;
import java.net.DatagramPacket; import java.net.DatagramPacket;
import java.net.DatagramSocket; import java.net.DatagramSocket;
import java.net.InetAddress; import java.net.InetAddress;
import java.util.Scanner;
/** /**
* *
...@@ -11,6 +12,7 @@ import java.net.InetAddress; ...@@ -11,6 +12,7 @@ import java.net.InetAddress;
public class Client { public class Client {
public static void main(String[] args) { public static void main(String[] args) {
DatagramSocket socket = null; DatagramSocket socket = null;
Scanner scanner = new Scanner(System.in);
try { try {
// Create a socket to communicate with the server // Create a socket to communicate with the server
socket = new DatagramSocket(); socket = new DatagramSocket();
...@@ -18,8 +20,12 @@ public class Client { ...@@ -18,8 +20,12 @@ public class Client {
byte[] sendData = new byte[1024]; // Buffer to store data to send byte[] sendData = new byte[1024]; // Buffer to store data to send
byte[] receiveData = new byte[1024]; // Buffer to store received data byte[] receiveData = new byte[1024]; // Buffer to store received data
// Get user input
System.out.print("Enter message to send to server: ");
String message = scanner.nextLine(); //Read user input
// Send message to server // Send message to server
String message = "Hello from client!"; // Message to send //String message = "Hello from client!"; // Message to send
sendData = message.getBytes(); // Convert message to bytes sendData = message.getBytes(); // Convert message to bytes
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverAddress, 9876); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverAddress, 9876);
socket.send(sendPacket); // Send packet to server socket.send(sendPacket); // Send packet to server
...@@ -28,10 +34,15 @@ public class Client { ...@@ -28,10 +34,15 @@ public class Client {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket); // Blocking call until a packet is received socket.receive(receivePacket); // Blocking call until a packet is received
String responseMessage = new String(receivePacket.getData(), 0, receivePacket.getLength()); String responseMessage = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("Client Received: " + responseMessage); // Print received response System.out.println("Client received: " + responseMessage); // Print received response
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); // Print any exceptions that occur e.printStackTrace(); // Print any exceptions that occur
} finally { } finally {
if (scanner != null) {
scanner.close(); // Close scanner
}
if (socket != null && !socket.isClosed()) { if (socket != null && !socket.isClosed()) {
socket.close(); // Close the socket to release resources socket.close(); // Close the socket to release resources
} }
......
...@@ -23,12 +23,12 @@ public class Server { ...@@ -23,12 +23,12 @@ public class Server {
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket); // Blocking call until a packet is received socket.receive(receivePacket); // Blocking call until a packet is received
String message = new String(receivePacket.getData(), 0, receivePacket.getLength()); String message = new String(receivePacket.getData(), 0, receivePacket.getLength());
System.out.println("Server Received: " + message); // Print received message System.out.println("Server received: " + message); // Print received message
// Prepare response to client // Prepare response to client
InetAddress clientAddress = receivePacket.getAddress(); // Get client's address InetAddress clientAddress = receivePacket.getAddress(); // Get client's address
int clientPort = receivePacket.getPort(); // Get client's port int clientPort = receivePacket.getPort(); // Get client's port
String responseMessage = "Hello from server!"; // Response message String responseMessage = "Hello From Server, I received: " + message; // Response message
sendData = responseMessage.getBytes(); // Convert response message to bytes sendData = responseMessage.getBytes(); // Convert response message to bytes
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, clientAddress, clientPort);
socket.send(sendPacket); // Send response packet to client socket.send(sendPacket); // Send response packet to client
......
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