From f66539656226138931658049c86ce6400c21add7 Mon Sep 17 00:00:00 2001 From: "nicholas.royer" <nicholas.royer@nps.edu> Date: Tue, 31 May 2022 13:05:52 -0700 Subject: [PATCH] Added HW2/1 --- .../homework2/Royer/RoyerHomework2/pom.xml | 13 +++ .../main/java/royer/homework2/TCPPeer.java | 89 ++++++++++++++++++ .../src/main/java/royer/homework2/Tester.java | 57 +++++++++++ .../classes/royer/homework2/TCPPeer.class | Bin 0 -> 3408 bytes .../royer/homework2/Tester$ServerThread.class | Bin 0 -> 1091 bytes .../classes/royer/homework2/Tester.class | Bin 0 -> 1386 bytes .../compile/default-compile/createdFiles.lst | 2 + .../compile/default-compile/inputFiles.lst | 2 + 8 files changed, 163 insertions(+) create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/pom.xml create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/TCPPeer.java create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/Tester.java create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/TCPPeer.class create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/Tester$ServerThread.class create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/Tester.class create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/pom.xml b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/pom.xml new file mode 100644 index 0000000000..ab19a7ddda --- /dev/null +++ b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/pom.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.mycompany</groupId> + <artifactId>RoyerHomework2</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>12</maven.compiler.source> + <maven.compiler.target>12</maven.compiler.target> + </properties> +</project> \ No newline at end of file diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/TCPPeer.java b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/TCPPeer.java new file mode 100644 index 0000000000..551af66db9 --- /dev/null +++ b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/TCPPeer.java @@ -0,0 +1,89 @@ +package royer.homework2; + +import java.net.*; +import java.io.*; +import java.util.concurrent.atomic.AtomicBoolean; + +/** + * + * @author nick + */ +public class TCPPeer { + private ServerSocket server_socket = null; + private Socket client_socket = null; + + private PrintWriter out_stream = null; + private BufferedReader in_stream = null; + + private boolean is_server = true; + + public boolean isServer() { + return is_server; + } + + public TCPPeer(int port, String ip) throws IOException { + is_server = (ip.equals("")); + if (is_server) { + server_socket = new ServerSocket(port); + client_socket = server_socket.accept(); + + } else { + // Client + client_socket = new Socket(ip, port); + } + + in_stream = new BufferedReader(new InputStreamReader(client_socket.getInputStream())); + out_stream = new PrintWriter(client_socket.getOutputStream(), true); + + should_stop.set(false); + + start(); + } + + void start() { + if (is_server) { + while(!should_stop.get()) { + try { + String msg = in_stream.readLine(); + // if (msg == null || msg.equals("")) + // continue; + System.out.println("Server received \"" + msg + "\""); + out_stream.println("OK"); + if (msg.equals("--quit")) + stop_connection(); + } catch (IOException ex) { + + } + } + } + } + + private final AtomicBoolean should_stop = new AtomicBoolean(false); + + public void stop_connection() { + should_stop.set(true); + } + + public TCPPeer(int port) throws IOException { + this(port, ""); + } + + public void close() throws IOException { + System.out.println("Closing " + (is_server ? "Server" : "Client")); + in_stream.close(); + out_stream.close(); + client_socket.close(); + if (is_server) { + server_socket.close(); + } else { + + } + } + + public String send(String msg) throws IOException { + out_stream.println(msg); + String response = in_stream.readLine(); + System.out.println((is_server ? "Server" : "Client") + " sending \"" + msg + "\": " + response); + return response; + } +} diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/Tester.java b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/Tester.java new file mode 100644 index 0000000000..5e3032b01e --- /dev/null +++ b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/src/main/java/royer/homework2/Tester.java @@ -0,0 +1,57 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package royer.homework2; + +import java.io.*; + +/** + * + * @author nick + */ +public class Tester { + + private static class ServerThread extends Thread { + private TCPPeer server = null; + int port = 0; + public ServerThread(int port) { + super(); + this.port = port; + } + + @Override + public void run() { + try { + server = new TCPPeer(port); + server.close(); + Thread.currentThread().interrupt(); + } catch (Exception ioex) { + System.err.println(ioex.toString()); + } + } + } + + public static void main(String[] args) { + + int test_port = 6668; + + try { + System.out.println("Setting up"); + ServerThread st = new ServerThread(test_port); + st.start(); + TCPPeer client = new TCPPeer(test_port, "127.0.0.1"); + System.out.println("Setup complete"); + client.send("Test"); + + client.send("--quit"); + client.close(); + st.join(); + + System.out.println("Done"); + } catch (Exception ex) { + System.err.println(ex.toString()); + } + } +} diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/TCPPeer.class b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/TCPPeer.class new file mode 100644 index 0000000000000000000000000000000000000000..c2a2699cf29f7560a8cdc86cca629210e46a0329 GIT binary patch literal 3408 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 literal 0 HcmV?d00001 diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/Tester$ServerThread.class b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/Tester$ServerThread.class new file mode 100644 index 0000000000000000000000000000000000000000..29e799fc67d687b5068c5316558acf22a7d6bef4 GIT binary patch literal 1091 zcmZ`&YflqV5IwgoY+JTG3y3@{0@{aC#kWO#G#W_?X;RYYC$p3ry3+18w_Ak&;Q#P5 z28z+dAK;HNp1YI^Hh$>bduQj&oH;Z7_51rz0FRN6B7mTQkcmF@3k-j>_N{Eqa(1&@ zRVA$*f&Nw7vAs2cU@}#XAdHBCsEGlX0t?DLlqy?w>++MU_Exf6vgt{+SdwaAs&0m+ z{}h-i^u*_jMJZKI=N&XLgkgbD!&RPuST`^#F!>)y6eEah*5gDZ*HdNfm^5)kx6xOr zxlO5iyJ}(@GXk+nODXAi=bYlnRN>!Va~d#b;+jqou^o1zS`E*@yujGs;MWHg+3;-F ziC_VX29`|Rz|BkAl@2LGosuzw!1!4u+szggvz9yxTW7HZQYO;K2!uVCUfbCfxJ>NK z%h=mkHjp)O2Y1iOT+Sz8G<5cw!-B~Ry>(Kg%G4?E?nr^5g6+u7R(+czvbJmVj27IA zRV!P{*6)rp<W=paz*6tfdWW22`y0}$x;sTnS#?S22o0(h*@SFY9&}akcdIKQaj}wT zRrWTlMyG7F<hE2rzOgm2fwP5L*6LHHO;&#EHaU_P0uw!(;qwwO*BwWye9dY$C0Upk zw~?ZUIc4w{&^yc<^xF9zE)K@&U*YSW9|6SErx0mz0wWzfK`cE@bL2<gqn#jvF$i(_ zA{fOW@niJf_rK{naXi37p8BTi2t4Awk5k|w_!sP_)dfE@i3ViSKQQt>eT>*C#&p?Z z7;Q{^!&DoyUocqsitCv+l5N~NA{3b6!X^-e<}(L_cACj&$YPc@!LM_^O=G^xD}gAU n;Hi(#bQtD{G!Xb;AQ5G{RXziFhBg0uj+Z>61cdP%uMqtMk+<rs literal 0 HcmV?d00001 diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/Tester.class b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/classes/royer/homework2/Tester.class new file mode 100644 index 0000000000000000000000000000000000000000..04d5d5f7339a67bb6aa264e0e6284a78940ddf84 GIT binary patch literal 1386 zcmZ`(Yg1A|7=9MfgU2H#hL`N3X$BUeW@>3yyJ3J7Mp+-4Bkt%?IER*l=`ZTDebAYj z=?C<qs%N2^9EdZsyYKDU_wp>?e|-4{U=eRk1kh$6XrUb)0%vyZeLGpQ-R<Ps=B_OI z0v*ea>-cvC+G6oSCqn2nU|Q&cb;><|SoLL@US5qs(R3Zi@sc^^xPIPO(k?HB5Ed}= z()S&Ad!$w|aR$8xA{P2^R-ms%jDS(m2ql-Gu?A{AJwg&>DPAzpFEFOOL#dKGURi$h z)ZT1zT{0ato|kH0s`VXSzhxqdL0#vNKrohy7qnv7!g*bId)2p<Z{VW9KoizVE+?f5 zVML&FW_Dp}n%|6x3%IP|#svCfsaC0la77@@dTW)DqF1hzq%T9b%IkG{8X#_A64$7x zN_R_OqE&^>$RQ*+mqg-2&8ed#Elk&oD3-jc)Md?DxS=({UC(htxXIHa&y@xi{<OK? z#K#9kS@9ju)pNaN;kF)Xn^elgJeDoo0p}j_y+*SI&c@=+*%-Lb4m35bJ^<dk;%!NR zp0wl2Y^}V>Y1o@3Y9eW`XqO7Ma<u$g8T5CYs=#2nHQW;M%C<u;^vB*cXA&<61gfOp zmH)(_;se1tiX}(73>az-XbhcB0eSG3(5Jhm)3Mby6Ygt~4awrO3GXYO;te7t(4F_~ z;$FtC)T=eH#ut>4{*Jemvz1*YI~1|ZyjN32`NYv(>S_>qN<R%sSpsIH?jjwnl<P{h zQnIU6sl|WEj#1p>)7HNLNN;p-eLyM6U2t!oJb^f>n;&x3W+03eu2#bVkMNjMC!XLb zK^QCo2=W6qde2$QpJ7D0kJ0lL(T(8~3}mh!<J?zV*cgsnI>BgG+sA27L?(_Ad!2~T z&g~deJj`h89Ic-a&V0rqRZEnPcy$n~$dG?+(23ne57!B5<4kOl+`fh(T*o*PT&GC$ zY0`FvezWwSW9$N>Zz4;CH~fdw1<kSkD0R<}Vj<&1Tg7wYXJH~uZ{4R2N^9JMc!eBZ uFprm%dJ*`k9Sr2zHUsk})~Rk6^ac@LaSfn=*W81QiSkYmRiEw=)BFVp;W!uo literal 0 HcmV?d00001 diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000000..b8c08f64ab --- /dev/null +++ b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,2 @@ +royer/homework2/Tester.class +royer/homework2/TCPPeer.class diff --git a/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000000..a2b22bf32a --- /dev/null +++ b/assignments/src/MV3500Cohort2022MayJune/homework2/Royer/RoyerHomework2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,2 @@ +/home/nick/Documents/NPS/Quarter 4/MV3500/Homework 2/RoyerHomework2/src/main/java/royer/homework2/Tester.java +/home/nick/Documents/NPS/Quarter 4/MV3500/Homework 2/RoyerHomework2/src/main/java/royer/homework2/TCPPeer.java -- GitLab