diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework1/Smith/HomeworkClient.java b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Smith/HomeworkClient.java new file mode 100644 index 0000000000000000000000000000000000000000..647cccf4c9c95997aac640307aad13ac5742512f --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Smith/HomeworkClient.java @@ -0,0 +1,69 @@ +package MV3500Cohort2024JulySeptember.homework1.Smith; + +import java.io.*; +import java.net.*; +import java.util.Scanner; + +public class HomeworkClient { + public HomeworkClient() { + // default constructor + } + + public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; + + public static void main(String[] args) { + Socket socket = null; + InputStream is; + Reader isr; + BufferedReader br; + PrintWriter pw; + String serverMessage; + int clientLoopCount = 0; + + Scanner scanner = new Scanner(System.in); + + try { + while (true) { + clientLoopCount++; + System.out.println(HomeworkClient.class.getName() + " creating socket..."); + + socket = new Socket(LOCALHOST, 2317); + + System.out.println("Enter a number to send to the server:"); + int numberToSend = scanner.nextInt(); + + // Send the number to the server + pw = new PrintWriter(socket.getOutputStream(), true); + pw.println(numberToSend); + + is = socket.getInputStream(); + isr = new InputStreamReader(is); + br = new BufferedReader(isr); + + serverMessage = br.readLine(); + System.out.println("=================================================="); + + System.out.print("Client loop " + clientLoopCount + ": "); + System.out.println("now we're talking!"); + System.out.println("The message the server sent was: '" + serverMessage + "'"); + + Thread.sleep(500l); + } + } catch (IOException | InterruptedException e) { + System.err.println("Problem with " + HomeworkClient.class.getName() + " networking:"); + System.err.println("Error: " + e); + + if (e instanceof java.net.BindException) { + System.err.println("*** Be sure to stop any other running instances of programs using this port!"); + } + } finally { + try { + if (socket != null) + socket.close(); + } catch (IOException e) {} + + System.out.println(); + System.out.println(HomeworkClient.class.getName() + " exit"); + } + } +} diff --git a/assignments/src/MV3500Cohort2024JulySeptember/homework1/Smith/HomeworkServer.java b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Smith/HomeworkServer.java new file mode 100644 index 0000000000000000000000000000000000000000..ddd572c363fe9895d192967ac7ca6968eee13cd1 --- /dev/null +++ b/assignments/src/MV3500Cohort2024JulySeptember/homework1/Smith/HomeworkServer.java @@ -0,0 +1,69 @@ + +package MV3500Cohort2024JulySeptember.homework1.Smith; + +import java.io.*; +import java.net.*; + +public class HomeworkServer { + private static int runningTotal = 0; // Initialize running total + + public HomeworkServer() { + // default constructor + } + + public static void main(String[] args) { + try { + System.out.println(HomeworkServer.class.getName() + " has started..."); + ServerSocket serverSocket = new ServerSocket(2317); + OutputStream os; + PrintStream ps; + InetAddress localAddress, remoteAddress; + int localPort, remotePort; + int serverLoopCount = 0; + + while (true) { + try (Socket clientConnectionSocket = serverSocket.accept()) { + serverLoopCount++; + + os = clientConnectionSocket.getOutputStream(); + ps = new PrintStream(os); + + // Read the number sent by the client + BufferedReader br = new BufferedReader(new InputStreamReader(clientConnectionSocket.getInputStream())); + int clientNumber = Integer.parseInt(br.readLine()); + + // Update the running total + int clientNumnerSqr = clientNumber * clientNumber; + runningTotal += clientNumber; + + // Send back the updated total + ps.println("Client sent: " + clientNumber + ", client number squared was: "+ clientNumnerSqr+", Running total: " + runningTotal); + System.out.println("Client sent: " + clientNumber + ", Running total: " + runningTotal); + + localAddress = clientConnectionSocket.getLocalAddress(); + remoteAddress = clientConnectionSocket.getInetAddress(); + localPort = clientConnectionSocket.getLocalPort(); + remotePort = clientConnectionSocket.getPort(); + + System.out.print("Server loop " + serverLoopCount + ": "); + System.out.println(HomeworkServer.class.getName() + " socket pair showing host name, address, port:"); + System.out.println(" (( " + + localAddress.getHostName() + "=" + localAddress.getHostAddress() + ", " + localPort + " ), ( " + + remoteAddress.getHostName() + "=" + remoteAddress.getHostAddress() + ", " + remotePort + " ))"); + + if (localAddress.getHostName().equals(localAddress.getHostAddress()) || + remoteAddress.getHostName().equals(remoteAddress.getHostAddress())) + System.out.println(" note HostName matches address if host has no DNS name"); + ps.flush(); + } + } + } catch (IOException e) { + System.err.println("Problem with " + HomeworkServer.class.getName() + " networking: " + e); + + if (e instanceof java.net.BindException) { + System.err.println("*** Be sure to stop any other running instances of programs using this port!"); + } + } + } +} +