From c31d03cbed42d7894d790f2e40ca036dd7a3b66d Mon Sep 17 00:00:00 2001 From: dibug Date: Mon, 27 May 2024 04:21:34 -0700 Subject: [PATCH 1/2] commit2 --- .idea/.gitignore | 3 + .../Seventh-Assignment-Socket-Programming.iml | 9 ++ .idea/gradle.xml | 19 +++ .idea/jarRepositories.xml | 20 +++ .idea/misc.xml | 7 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .../.gradle/8.7/checksums/checksums.lock | Bin 0 -> 17 bytes .../8.7/dependencies-accessors/gc.properties | 0 .../8.7/executionHistory/executionHistory.bin | Bin 0 -> 22303 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/8.7/fileChanges/last-build.bin | Bin 0 -> 1 bytes .../.gradle/8.7/fileHashes/fileHashes.bin | Bin 0 -> 18997 bytes .../.gradle/8.7/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../8.7/fileHashes/resourceHashesCache.bin | Bin 0 -> 19075 bytes seventh_assignment/.gradle/8.7/gc.properties | 0 .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../buildOutputCleanup/cache.properties | 4 +- .../buildOutputCleanup/outputFiles.bin | Bin 18749 -> 18893 bytes seventh_assignment/.gradle/file-system.probe | Bin 8 -> 8 bytes seventh_assignment/.gradle/workspace-id.txt | Bin 0 -> 28 bytes .../.gradle/workspace-id.txt.lock | Bin 0 -> 17 bytes .../java/main/sbu/cs/Client/Client.class | Bin 0 -> 1981 bytes .../main/sbu/cs/Client/ClientHandler.class | Bin 0 -> 5234 bytes .../sbu/cs/Client/HandleServerResponse.class | Bin 0 -> 1675 bytes .../java/main/sbu/cs/Server/Server.class | Bin 0 -> 1757 bytes .../stash-dir/Client.class.uniqueId1 | Bin 0 -> 1981 bytes .../stash-dir/ClientHandler.class.uniqueId2 | Bin 0 -> 3870 bytes .../HandleServerResponse.class.uniqueId3 | Bin 0 -> 1448 bytes .../stash-dir/Server.class.uniqueId0 | Bin 0 -> 1757 bytes .../compileJava/previous-compilation-data.bin | Bin 0 -> 292 bytes .../src/main/Client/Client.java | 10 -- .../src/main/Server/Server.java | 10 -- .../src/main/java/sbu/cs/Client/Client.java | 35 +++++ .../java/sbu/cs/Client/ClientHandler.java | 139 ++++++++++++++++++ .../sbu/cs/Client/HandleServerResponse.java | 62 ++++++++ .../src/main/java/sbu/cs/Server/Server.java | 51 +++++++ ...a-man-without-love-ngelbert-Hmperdinck.txt | 0 .../cs}/Server/data/all-of-me-john-legend.txt | 0 .../cs}/Server/data/birds-imagine-dragons.txt | 0 .../data/blinding-lights-the-weekend.txt | 0 .../Server/data/dont-matter-to-me-drake.txt | 0 .../Server/data/feeling-in-my-body-elvis.txt | 0 .../Server/data/out-of-time-the-weekend.txt | 0 .../data/something-in-the-way-nirvana.txt | 0 ...y-you-wanna-trip-on-me-michael-jackson.txt | 0 .../you-put-a-spell-on-me-austin-giorgio.txt | 0 47 files changed, 361 insertions(+), 22 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/Seventh-Assignment-Socket-Programming.iml create mode 100644 .idea/gradle.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 seventh_assignment/.gradle/8.7/checksums/checksums.lock create mode 100644 seventh_assignment/.gradle/8.7/dependencies-accessors/gc.properties create mode 100644 seventh_assignment/.gradle/8.7/executionHistory/executionHistory.bin create mode 100644 seventh_assignment/.gradle/8.7/executionHistory/executionHistory.lock create mode 100644 seventh_assignment/.gradle/8.7/fileChanges/last-build.bin create mode 100644 seventh_assignment/.gradle/8.7/fileHashes/fileHashes.bin create mode 100644 seventh_assignment/.gradle/8.7/fileHashes/fileHashes.lock create mode 100644 seventh_assignment/.gradle/8.7/fileHashes/resourceHashesCache.bin create mode 100644 seventh_assignment/.gradle/8.7/gc.properties create mode 100644 seventh_assignment/.gradle/workspace-id.txt create mode 100644 seventh_assignment/.gradle/workspace-id.txt.lock create mode 100644 seventh_assignment/build/classes/java/main/sbu/cs/Client/Client.class create mode 100644 seventh_assignment/build/classes/java/main/sbu/cs/Client/ClientHandler.class create mode 100644 seventh_assignment/build/classes/java/main/sbu/cs/Client/HandleServerResponse.class create mode 100644 seventh_assignment/build/classes/java/main/sbu/cs/Server/Server.class create mode 100644 seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/Client.class.uniqueId1 create mode 100644 seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/ClientHandler.class.uniqueId2 create mode 100644 seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/HandleServerResponse.class.uniqueId3 create mode 100644 seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/Server.class.uniqueId0 create mode 100644 seventh_assignment/build/tmp/compileJava/previous-compilation-data.bin delete mode 100644 seventh_assignment/src/main/Client/Client.java delete mode 100644 seventh_assignment/src/main/Server/Server.java create mode 100644 seventh_assignment/src/main/java/sbu/cs/Client/Client.java create mode 100644 seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java create mode 100644 seventh_assignment/src/main/java/sbu/cs/Client/HandleServerResponse.java create mode 100644 seventh_assignment/src/main/java/sbu/cs/Server/Server.java rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/a-man-without-love-ngelbert-Hmperdinck.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/all-of-me-john-legend.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/birds-imagine-dragons.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/blinding-lights-the-weekend.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/dont-matter-to-me-drake.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/feeling-in-my-body-elvis.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/out-of-time-the-weekend.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/something-in-the-way-nirvana.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/why-you-wanna-trip-on-me-michael-jackson.txt (100%) rename seventh_assignment/src/main/{ => java/sbu/cs}/Server/data/you-put-a-spell-on-me-austin-giorgio.txt (100%) diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/Seventh-Assignment-Socket-Programming.iml b/.idea/Seventh-Assignment-Socket-Programming.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/Seventh-Assignment-Socket-Programming.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..0af646f --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..fdc392f --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..726dafd --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..5d861a3 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/seventh_assignment/.gradle/8.7/checksums/checksums.lock b/seventh_assignment/.gradle/8.7/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..0a245ea0be0ebb0dce0989c6dbf3ec6eb3bcf3fb GIT binary patch literal 17 TcmZQ(mH1k=by{#60~7!NEJ6dY literal 0 HcmV?d00001 diff --git a/seventh_assignment/.gradle/8.7/dependencies-accessors/gc.properties b/seventh_assignment/.gradle/8.7/dependencies-accessors/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/seventh_assignment/.gradle/8.7/executionHistory/executionHistory.bin b/seventh_assignment/.gradle/8.7/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..4d0117a7ae8e745433b72ba8d2e5e3cc40e5e95c GIT binary patch literal 22303 zcmeI1Yitx%6oBvafeonL4Wbx{`pcm0PG6P{0>-9W`mnT3msiM|Iy-y2opyF+Gk3PM z`U}CdQd((Ro~_Ud0wF3OU13$#(9Z zd+xdCeD|C)GpP%qiMD^t4~l#yM20W|0zd!=00AHX1b_e#00KY&2mk>f00e*l5C8%| z00;m9AOHmZF9hb$K*k!uOiYc_2FVK%N`ICPn79uw-CEO-kZ4R7f00e*l5C8%|00;m9AOHk_01yBIKmZ5;0U!Vb zfB+Bx0zd!=00AHX1b_e#00KY&2mpbnfj|~Q&!3{-KJD94RU?pkXLTrB@~WaJ(lL>o zb=6tf*p@UN1+ISFcYE)tgG~G+p7g#HBSJf6#n1W`&L?7)3ks~tks8ACav&&BNfB4e z z-NQSk9dV%)45`G9c8|REkl^)oF@bC!X(Lt$1VtRclFF%+Mf~zwEcs-`L4ueUDg}PW zhz6cK%`GGPXap6%gp=x*Y0BowCv`+Y)@rOMGS@UWuiRZ&T2hhWYzoM}kjN>5T5m^t zqLzfyU8@2!5oU#T-4tO|Z3_J_Z@Az1T65hxdE5TNi{EubtkSxv#EQNWmvL$p(c*sB*N_cNEmk*QjBBxoS}g@E@v={l{AguZQm0}`t527p5Y%poD>*?dmGTrtR+#3n zP*!T$GqUF|`jM|ADQh2N-1ubT;Aku`5 zU!37=S2@Lx)fjo=QeNAGDp#Sfmz*TYMlUE+WF8YDD_TmT4r@2BEUQFSxS;N!zPQbr zGaS%mEktMI)?FeAN8)nd@ysE#33|#3-39qMvvNw(r)FeMNza^;nV#)&VN#>YK~GMZ z$4xUsQmY&}gb02~YfTQf%-3MmK|P{3#6W=NiH8_k6*K@-%R?026QJZg8Y>U+hCDp+ ze34?fEhF4|&@AJ)wjZK1@_W(w_lnzs0;N zEA{B!D0u1(38K%VHzG`o%GGKZEum?E7V`u(7)8l68&_6WMYh_lh12i2Y6jkN_I~-> z0e?wb=kF)}&e)&Kv>SR>`kU(SXZCJ$hbG&FmG3&XwH%i2uhZ0TO=dcVO)zs+-3O_= z98E87y7Skn+>^UAXS8%_tD2sRN4BdeU+np+_~-#!{<6H3Bb_Oz!8l{4**t601YbXW zLP_5*XU3kp{$A1w#?`BvIIo!)>^N3(;_$`NlgIqt8zt+5RJ6eBYHVuQO`>BR>(L7do2>@y#}d|G1&qF1 z8dB-gWaL0cqYoGd8g|5E+!Kgrm>WyvxM@(Or+QA$&uX)Onv}I8JFm4lVVxCJ73O?c zc{rA%qtMeH6^r3fRJso5|LUNEYXvz(jHfiCw&;rub9&S~R|7#0Z@eWIY4=3SBZnc> rU2cQ%djp1pRVTTAziaS054p*{OA4O;bc literal 0 HcmV?d00001 diff --git a/seventh_assignment/.gradle/8.7/executionHistory/executionHistory.lock b/seventh_assignment/.gradle/8.7/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..2a7345e4971f06dacff166956ab36b6b163c01c6 GIT binary patch literal 17 UcmZQ}?=rdddu{9r1_(F;05~-TQ~&?~ literal 0 HcmV?d00001 diff --git a/seventh_assignment/.gradle/8.7/fileChanges/last-build.bin b/seventh_assignment/.gradle/8.7/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/seventh_assignment/.gradle/8.7/fileHashes/fileHashes.bin b/seventh_assignment/.gradle/8.7/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..58ec4683184b2c29643fe320e13429dfde43aa32 GIT binary patch literal 18997 zcmeI(-%C?b00;21%$X9~%qb)Cp^&W58b(SrGj)XP!Ww9dpo}cG<|t}XDOLmnE0+1t zkL}4;RFd5oF5Oe=OGvq-l5qH=8ikc87_^l=)w!N?le&L_@jYcSKCT7USn{mvdY3E`OPJ z_AAfR|K!8DQO_Z}hF|BNoZFpU-wa}_nV)}4&gEZ1R4O)yJp>>C0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tZ(Q32dgz zT~D{w(x&Uk{o%1w1^S+iIptykF)ilU+FQ|mHaH+K|@#n?XAM=J)c6fu6bSVI literal 0 HcmV?d00001 diff --git a/seventh_assignment/.gradle/8.7/fileHashes/fileHashes.lock b/seventh_assignment/.gradle/8.7/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..d3faea88d2b833cb9030173e5d228acedd8f39e3 GIT binary patch literal 17 UcmZQ(p4y-HpF>BQ0RlDx046^Jm;e9( literal 0 HcmV?d00001 diff --git a/seventh_assignment/.gradle/8.7/fileHashes/resourceHashesCache.bin b/seventh_assignment/.gradle/8.7/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000000000000000000000000000000000000..7d472aa98efad36f94e904e0df4ed50e6450f1a2 GIT binary patch literal 19075 zcmeI(|1Z>W0LSsGq;}lyki+^ymT99o$91ePB6Ys>#mNn+iN2lLs-qz^Ic%}1B!$*e zGnAn(POV)hmz7&didkWb%Y3PvBrP+YeLnA5efkU9>$cB*K6~D4pY8LwA8+T+V%hR$ z=@)DMWj%k1D+oXU0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*#k7Xg{^LDr3~8q|ZwE z+C+gSgTBuL(iat#KHDLZy`uLz(oM6^^((%udr$SCm836aiw|7qJ(AKrhIF&c$5u8b zhvoErd`agDHyzamr>v!V;5*V?Lh9SBOxE-1o=AFdf@R65m%AI?rKE=`Pita_gicfs z@*!O|l>@`?VlQ z7ws5pjH~`!)U9Yph_vWz+9n_2@wu(j%*C*!dzMr1;IisY0YAG*6~kOKY?K^IYu9`{ zlRuPk?Ma6}b0L)pL`tjat%eqkb8X>;Zsx+y5E7|W?KJxt-Lb_^v3)gjQJyaOEU<2z zysx&L@Vr`)&s>a!=N+$#$dnlLpZtHRO?k}48~Y^3OCGuBolE0G!&O}h=0fK!vy+jrQNG)XYWeOqV#IJG{8E=ERqtiO?6!h2NcvIaiw5KhE}X`&5(ryqSxW<|(NY zJzjZHW$M8CVVi&4BlL1aLa3&9X3rESO<2dD`|rhH-`uf@^8Hrhg>hq^HPU9`#W3c= nmAyDwtkvHYI*4Za3U0VC7qUS~*0@J$iJK<3Hnn&8+quPW-b;HX literal 0 HcmV?d00001 diff --git a/seventh_assignment/.gradle/8.7/gc.properties b/seventh_assignment/.gradle/8.7/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/seventh_assignment/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/seventh_assignment/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 097dec8074e9570ad4c4867fd3e46047e0f01a40..f06079194d6fe6bc58ccc13154b0ec82afec7b75 100644 GIT binary patch literal 17 VcmZRM@O3-eU9rQR0Sp*t0RS$01X%z8 literal 17 TcmZRM@O3-eU9rQR0RjX8E${=+ diff --git a/seventh_assignment/.gradle/buildOutputCleanup/cache.properties b/seventh_assignment/.gradle/buildOutputCleanup/cache.properties index 118b363..0fbe978 100644 --- a/seventh_assignment/.gradle/buildOutputCleanup/cache.properties +++ b/seventh_assignment/.gradle/buildOutputCleanup/cache.properties @@ -1,2 +1,2 @@ -#Thu May 16 14:28:24 PDT 2024 -gradle.version=7.5.1 +#Sun May 26 10:25:22 PDT 2024 +gradle.version=8.7 diff --git a/seventh_assignment/.gradle/buildOutputCleanup/outputFiles.bin b/seventh_assignment/.gradle/buildOutputCleanup/outputFiles.bin index 8467ea5917169350c6fd6c4a66a26350e346e25d..2ea59da69e4fc44c4507540e4b9fdcfd4cee965d 100644 GIT binary patch literal 18893 zcmeI&O-K}B7{KvS(ELh6@bjX1Nv*?*;6)>|&<%-15ieba2>jR(71>kdK_Ne&i>8#I zSQrMIk|M2Ii=c$8pP&XsAS-P*y(nIS+GU$ZJOe?RD2*jR7%e{QwbgD1jHR8~|tv&Xo<7Z*mbGyt*(Vmjk`62D&l+3q3)}FrJ`K!6>eT2++ zYR{}4EH7;cGo`z^mU{igQ(s_v4d z6}MaZCGBNn>7$;RfpF>5+Ush}Cl4#)s--{B?%0~Ee3w}=DE+$jMsLLEm%W2DtK0Xr z>!)FaUbXIVMF0T=5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** s5I_I{1Q0*~0R#~E-vokx(vJ+BA;B|vi9J>V;oOz8dyCUeKJiok0QmPa>Hq)$ delta 383 zcmX>*nQ`wV#tkMC^?WNe<9^-axyr@>1|DnwL%}ZdLgiPjxh0y?yI-;Za$U> z74L+J-z}75Tl_R~Iz-%)9VY&5pJ?L$xOLm0>Vsk8oI5z4KPawG@`Or!g-NL1`NZFL zed9%_cq&X>TYNUp%U03bQ1Nn@xE@pF^im$~FHrHvFmZE^ZMS-MUNeMyNHl5EKx|TtHdx;Zh8EK{U2)V^TF~_n9k|ipsPF z8y4rRkB97#0|5L|Uc9Q`0rqD(+Fm?*h2#;}QI zMn<+R!y5bnK;tHMRGED0h_v8Q)d)bT&tMK7EIe#js|(h zz%*tAE?GLdg(hvccw)tI+|w0*p=r6$MfWR?2L`^xLxG^JPTXb7R#d|ojSVR^+p8%| z8F-`%3chkIS3TcYl%TY3bc*MhX>S)*RyoJY$*A&C$u6rf)%rxE`C4c9(40#!rHh^K zAbeww-QEsk4huSLQDC^8q)f%O&8?zhr1p7cAgu?$Uv^E0ivE`BI^%qr%eWWD64v#p-?4S))Oj9_6PJ)Ru+d;m!}M4SWfwBJh0M$JxwYzT;S7tnnw;F~XP)7q=Eu2v4Wl(V5r)k#YQvzRj- zORt-oK6lS5v)tv*CU}FKVzxt5i)3ix#fOk$IoeHUm+=D^n0b2?8utNZ_(97kf^<1; z&+nNWh=I1;XLBqt>g`@I#l$7co}633?Hbp(Z4MFFk3i zDf$F-&y>TtXaVdL34KD9vT_>oVBfN?SvXiRj~bLq6eNy2#Oh6mKzQM#ppIONZI*b= z%33;GYgy=(EmfR?TC{XeyS+wDX-`~7h!;BejN&gM_f+q5NbOBQ;!IeT!?6PpkN>j(Gkp5;fdS`l7xn?kD~6sK1J29kcn#8XhMDbn*i~BxioyP&m_A~EY<~t;B8@#`5#!IgIaD-pUVwtQt^b7GHFb?sK#*hTB8!6E* dF(eU}s7TC8%t_`4Uh(k}!3m$=`2P}q{~tS);FSOX literal 0 HcmV?d00001 diff --git a/seventh_assignment/build/classes/java/main/sbu/cs/Client/ClientHandler.class b/seventh_assignment/build/classes/java/main/sbu/cs/Client/ClientHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..c94a89e734c9f17a0122db767e29c23e2f71f1d1 GIT binary patch literal 5234 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 literal 0 HcmV?d00001 diff --git a/seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/Client.class.uniqueId1 b/seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/Client.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..b55aff5135fe45edd8fb5c434b8a8012d8241e0f GIT binary patch literal 1981 zcmZuxZC4sc7`+pL0bHwMe8HrqNo*>yNHl5EKx|TtHdx;Zh8EK{U2)V^TF~_n9k|ipsPF z8y4rRkB97#0|5L|Uc9Q`0rqD(+Fm?*h2#;}QI zMn<+R!y5bnK;tHMRGED0h_v8Q)d)bT&tMK7EIe#js|(h zz%*tAE?GLdg(hvccw)tI+|w0*p=r6$MfWR?2L`^xLxG^JPTXb7R#d|ojSVR^+p8%| z8F-`%3chkIS3TcYl%TY3bc*MhX>S)*RyoJY$*A&C$u6rf)%rxE`C4c9(40#!rHh^K zAbeww-QEsk4huSLQDC^8q)f%O&8?zhr1p7cAgu?$Uv^E0ivE`BI^%qr%eWWD64v#p-?4S))Oj9_6PJ)Ru+d;m!}M4SWfwBJh0M$JxwYzT;S7tnnw;F~XP)7q=Eu2v4Wl(V5r)k#YQvzRj- zORt-oK6lS5v)tv*CU}FKVzxt5i)3ix#fOk$IoeHUm+=D^n0b2?8utNZ_(97kf^<1; z&+nNWh=I1;XLBqt>g`@I#l$7co}633?Hbp(Z4MFFk3i zDf$F-&y>TtXaVdL34KD9vT_>oVBfN?SvXiRj~bLq6eNy2#Oh6mKzQM#ppIONZI*b= z%33;GYgy=(EmfR?TC{XeyS+wDX-`~7h!;BejN&gM_f+q5NbOBQ;!IeT!?6PpkN>j(Gkp5;fdS`l7xn?kD~6sK1J29kcn#8XhMDbn*i~BxioyP&m_A~EY<~t;B8@#`5#!IgIaD-pUVwtQt^b7GHFb?sK#*hTB8!6E* dF(eU}s7TC8%t_`4Uh(k}!3m$=`2P}q{~tS);FSOX literal 0 HcmV?d00001 diff --git a/seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/ClientHandler.class.uniqueId2 b/seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/ClientHandler.class.uniqueId2 new file mode 100644 index 0000000000000000000000000000000000000000..73a1fdd05e937134971f22c7390bd5f05a3e5b19 GIT binary patch literal 3870 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 literal 0 HcmV?d00001 diff --git a/seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/Server.class.uniqueId0 b/seventh_assignment/build/tmp/compileJava/compileTransaction/stash-dir/Server.class.uniqueId0 new file mode 100644 index 0000000000000000000000000000000000000000..1c5dc48aa07eee421c62c21c40b803614017616d GIT binary patch literal 1757 zcma)7+fo}x5Iut=R;-pFz&0knLTpDu2-!~JBnXq(1Oh}{j4%Y7O4YEMg0+`jYPB-t z3-T#E+paP=R5@>X$Y10y@{o#iW>?svLQ>IXM?F1#y8CqZ=(oRqegohx)=jh_VIXNC zg?54L6ZuS*TrL?HB4F6A zqr9+A|1m-%bllRtAdo*+oO)O`(TDQ}`Yn8j3v?8DIeCUT$Xbm6xfr1(&vO2eflC4x zn$9O8XQgF_?a@R{C8*S8vB z&EF+N9}*_Mz?TL_EtD}PaQQz2XYG1CwL9hPsoL^Zpk!?^A}P;y`F}i-*TsdUWdSiG z&^h6I^-y}@igX()0b~vZI;zg5C&NZSR+^-oY=W`aQ%m8-%Y>cqYqaR9IG&nsY;UMw zSyRY>E50q=6&W~MZf+*SEr-dRtDM%V8f{xT9`(7$Esa(UN%JO)!f}XuS)ltL!3bEf zGA2mi(y^1%T9Up5gKSR3$r9^0WU$FNdrt|2g>*SK%2NT`rzMP*ktRZC)E0AcC(7Ia zgO4XGnjOaI?`mEQJPB%fA%08{vu zQU|6nLkBb#KhbSF_qLBkLIJbI)i)+INxIF&?1I5?4-iH0R zzt2%sEc}Wt9=*AbbR_e@YkVTGkHOI-mEEz@98LA7c>Gx1pZw*yz93QLyMQ|wW!44C zw=u^+s#wJ%%5zwV_PEA>tJy#BmJc zK5k+bw}_M@@({6$5&AlHk~)VvmzJ8OX-<5WHJHVBBxis$RcMzWb`tZ9rj4~Z{MX`rycZ*tba!?!F&%D^i3!OueoYTEx`WxuCQ xlC}k;vG%UEBlN0YJxAzUJHVZn$QpS{|%>LkO%+( literal 0 HcmV?d00001 diff --git a/seventh_assignment/build/tmp/compileJava/previous-compilation-data.bin b/seventh_assignment/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000000000000000000000000000000000000..5b3f5734fa617ddd040e9161d3ed74bc79914bce GIT binary patch literal 292 zcmZQ!2x1Io@?h3uac0$H(_?37DNZWoU}#P*=45E(Vra|BOwB9d2>zC=ySGF42@;Nhe36!n!wE60ieOt@?^r8p* z(*5{7_yic*!A2AbcpIHwA6%*-m^sZ(cYWW9Ji%ZgJ>g(h9!?&CT%6oIyfO@}S&3zdKqZU}vU+mP5?nGMHlMtnf`^;{n9Z-KrxdKLuM#W;bPHHS I5M(3+0MLIwV*mgE literal 0 HcmV?d00001 diff --git a/seventh_assignment/src/main/Client/Client.java b/seventh_assignment/src/main/Client/Client.java deleted file mode 100644 index 9eebafe..0000000 --- a/seventh_assignment/src/main/Client/Client.java +++ /dev/null @@ -1,10 +0,0 @@ -// Client Class -public class Client { - // TODO: Implement the client-side operations - - // TODO: Add constructor and necessary methods - - public static void main(String[] args) { - // TODO: Implement the main method to start the client - } -} \ No newline at end of file diff --git a/seventh_assignment/src/main/Server/Server.java b/seventh_assignment/src/main/Server/Server.java deleted file mode 100644 index 37537d0..0000000 --- a/seventh_assignment/src/main/Server/Server.java +++ /dev/null @@ -1,10 +0,0 @@ -// Server Class -public class Server { - // TODO: Implement the server-side operations - - // TODO: Add constructor and necessary methods - - public static void main(String[] args) { - // TODO: Implement the main method to start the server - } -} \ No newline at end of file diff --git a/seventh_assignment/src/main/java/sbu/cs/Client/Client.java b/seventh_assignment/src/main/java/sbu/cs/Client/Client.java new file mode 100644 index 0000000..b62d39f --- /dev/null +++ b/seventh_assignment/src/main/java/sbu/cs/Client/Client.java @@ -0,0 +1,35 @@ +package sbu.cs.Client; + +import java.io.*; +import java.net.Socket; +import java.util.Scanner; + +// Client Class +public class Client { + // TODO: Implement the client-side operations + + // TODO: Add constructor and necessary methods + private static final String SERVER_IP = "127.0.0.1"; + private static final int SERVER_PORT = 3000; + + public static void main(String[] args) throws IOException { + // TODO: Implement the main method to start the client + Socket client = new Socket(SERVER_IP, SERVER_PORT); + Boolean IsInChat = false; + DataOutputStream out = new DataOutputStream(client.getOutputStream()); + //DataInputStream in = new DataInputStream(.getInputStream()); + System.out.println("Name:"); + Scanner scanner = new Scanner(System.in); + String name = scanner.nextLine(); + out.writeUTF(name); + HandleServerResponse Handle = new HandleServerResponse(client); + Thread Handlethread = new Thread(Handle); + Handlethread.start(); + BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); + String userInput; + while (true) { + userInput = reader.readLine(); + out.writeUTF(userInput); + } + } +} \ No newline at end of file diff --git a/seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java b/seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java new file mode 100644 index 0000000..b37e01a --- /dev/null +++ b/seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java @@ -0,0 +1,139 @@ +package sbu.cs.Client; + +import sbu.cs.Server.Server; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.IOException; +import java.net.Socket; +import java.util.ArrayList; + +public class ClientHandler implements Runnable { + private Socket client; + private static ArrayList clients; + String name; + static ArrayList chat = new ArrayList<>(); + private static DataOutputStream out; + private DataInputStream in; + int n; + public ClientHandler(Socket client) throws IOException { + this.client = client; + this.clients = Server.clients; + this.in = new DataInputStream(client.getInputStream()); + this.out = new DataOutputStream(client.getOutputStream()); + } +// File directory = File.mkdirs(); + + File a_man_without_love = new File("src//main//java//sbu.cs//Server//data//a-man-without-love-ngelbert-Hmperdinck"); + File all_of_me = new File("src//main//java//sbu.cs//Server//data//all-of-me-john-legend"); + File birds_imagine = new File("src//main//java//sbu.cs//Server//data//birds-imagine-dragons"); + File blinding_lights = new File("src//main//java//sbu.cs//Server//data//blinding-lights-the-weekend"); + File dont_matter_to_me = new File("src//main//java//sbu.cs//Server//data//dont-matter-to-me-drake"); + File feeling_in_my_body = new File("src//main//java//sbu.cs//Server//data//feeling-in-my-body-elvis"); + File out_of_time = new File("src//main//java//sbu.cs//Server//data//out-of-time-the-weekend"); + File something_in_the_way = new File("src//main//java//sbu.cs//Server//data//something-in-the-way-nirvana"); + File why_you_wanna_trip_on_me = new File("src//main//java//sbu.cs//Server//data//why-you-wanna-trip-on-me-michael-jackson"); + File you_put_a_spell_on_me = new File("src//main//java//sbu.cs//Server//data//you-put-a-spell-on-me-austin-giorgio"); + @Override + public void run() { + try { + name = in.readUTF(); + } + catch (IOException e) { + throw new RuntimeException(e); + } + try { + //menu(); + this.out.writeUTF("1-Join the chat"); + this.out.writeUTF("2-Downloads"); + this.out.writeUTF("3-Download new file"); + this.out.writeUTF("Enter (E) whenever you want to return to the menu"); + } + catch (IOException e) { + throw new RuntimeException(e); + } + String request; + try { + while (true) { + request = this.in.readUTF(); + if (request != null) { + if (request.equals("1")) { + if (chat.size() <= 20) { + n = 0; + } else { + n = (chat.size())-20; + } + out.writeUTF("inChat"); + Chat(); + } else if (request.equals("2")) { + + } else if (request.equals("3")) { + + } + } + } + } catch (IOException e) { + // Handle any I/O exceptions that occur during communication with the client + System.err.println("IO Exception in client handler!!!!!!"); + e.printStackTrace(); + } + } + public void menu() throws IOException { + out.writeUTF("1-Join the chat"); + out.writeUTF("2-Downloads"); + out.writeUTF("3-Download new file"); + String request; + try { + while (true) { + request = this.in.readUTF(); + if (request != null) { + if (request.equals("1")) { + Chat(); + break; + } else if (request.equals("2")) { + + } else if (request.equals("3")) { + + } + } + } + } catch (IOException e) { + // Handle any I/O exceptions that occur during communication with the client + System.err.println("IO Exception in client handler!!!!!!"); + e.printStackTrace(); + } + } + public void Chat() throws IOException { + System.out.println(name + this.in.readUTF()); + out.writeUTF(" "); + out.writeUTF("Chat: "); + out.writeUTF(" "); + if (chat.size() != 0) { + for (int i = n; i < chat.size(); i++) { + out.writeUTF(chat.get(i)); + } + } + String msg; + while (true) { + msg = this.in.readUTF(); + if (msg != null) { + if (msg.equals("E")) { + out.writeUTF("E"); + menu(); + break; + } else { + String msgg = name + ": " + msg; + chat.add(msgg); + SendToAll(msgg); + } + } + } + } + private void SendToAll(String msgg) throws IOException { + for (Socket aclient : clients) { + DataOutputStream outs = new DataOutputStream(aclient.getOutputStream()); + outs.writeUTF(msgg); + } + } +} \ No newline at end of file diff --git a/seventh_assignment/src/main/java/sbu/cs/Client/HandleServerResponse.java b/seventh_assignment/src/main/java/sbu/cs/Client/HandleServerResponse.java new file mode 100644 index 0000000..8970f58 --- /dev/null +++ b/seventh_assignment/src/main/java/sbu/cs/Client/HandleServerResponse.java @@ -0,0 +1,62 @@ +package sbu.cs.Client; + +import java.io.Console; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.Socket; + + +public class HandleServerResponse implements Runnable{ + private DataInputStream in; + private DataOutputStream out; + private Socket client; + + public HandleServerResponse(Socket client) throws IOException { + this.client = client; + this.in = new DataInputStream(client.getInputStream()); + this.out = new DataOutputStream(client.getOutputStream()); + } + + @Override + public void run() { + for (int i=0; i<4; i++) { + try { + System.out.println(this.in.readUTF()); + } + catch (IOException e) { + throw new RuntimeException(e); + } + } + try { + while (true) { + String Activity = this.in.readUTF(); + if (Activity.equals("inChat")) { + out.writeUTF("is in chat"); + while (true) { + String msg = this.in.readUTF(); + if (msg.equals("E")) { +// Console console = System.console(); +// if (console != null) { +// console.clear(); +// } + for (int i=0; i<50; i++) { + System.out.println(" "); + } + for (int i=0; i<3; i++) { + System.out.println(this.in.readUTF()); + } + break; + } else { + System.out.println(msg); + } + } + continue; + } + } + } + catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/seventh_assignment/src/main/java/sbu/cs/Server/Server.java b/seventh_assignment/src/main/java/sbu/cs/Server/Server.java new file mode 100644 index 0000000..0025242 --- /dev/null +++ b/seventh_assignment/src/main/java/sbu/cs/Server/Server.java @@ -0,0 +1,51 @@ +package sbu.cs.Server; + +import sbu.cs.Client.ClientHandler; + +import java.io.DataInput; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.ArrayList; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +// Server Class +public class Server { + // TODO: Implement the server-side operations + + // TODO: Add constructor and necessary methods + + private static final int PORT = 3000; + //private static ArrayList clients = new ArrayList<>(); + public static ArrayList clients = new ArrayList<>(); + private static ExecutorService pool = Executors.newFixedThreadPool(4); + + public static void main(String[] args) throws IOException { + // TODO: Implement the main method to start the server + ServerSocket listener = new ServerSocket(3000); + try { + while (true) { + Socket client = listener.accept(); + clients.add(client); + ClientHandler clientThread = new ClientHandler(client); + pool.execute(clientThread); + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + // Close the server socket when the server is shutting down + if (listener != null) { + try { + listener.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + // Shutdown the thread pool to release resources + pool.shutdown(); + } + } +} \ No newline at end of file diff --git a/seventh_assignment/src/main/Server/data/a-man-without-love-ngelbert-Hmperdinck.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/a-man-without-love-ngelbert-Hmperdinck.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/a-man-without-love-ngelbert-Hmperdinck.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/a-man-without-love-ngelbert-Hmperdinck.txt diff --git a/seventh_assignment/src/main/Server/data/all-of-me-john-legend.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/all-of-me-john-legend.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/all-of-me-john-legend.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/all-of-me-john-legend.txt diff --git a/seventh_assignment/src/main/Server/data/birds-imagine-dragons.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/birds-imagine-dragons.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/birds-imagine-dragons.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/birds-imagine-dragons.txt diff --git a/seventh_assignment/src/main/Server/data/blinding-lights-the-weekend.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/blinding-lights-the-weekend.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/blinding-lights-the-weekend.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/blinding-lights-the-weekend.txt diff --git a/seventh_assignment/src/main/Server/data/dont-matter-to-me-drake.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/dont-matter-to-me-drake.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/dont-matter-to-me-drake.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/dont-matter-to-me-drake.txt diff --git a/seventh_assignment/src/main/Server/data/feeling-in-my-body-elvis.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/feeling-in-my-body-elvis.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/feeling-in-my-body-elvis.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/feeling-in-my-body-elvis.txt diff --git a/seventh_assignment/src/main/Server/data/out-of-time-the-weekend.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/out-of-time-the-weekend.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/out-of-time-the-weekend.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/out-of-time-the-weekend.txt diff --git a/seventh_assignment/src/main/Server/data/something-in-the-way-nirvana.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/something-in-the-way-nirvana.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/something-in-the-way-nirvana.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/something-in-the-way-nirvana.txt diff --git a/seventh_assignment/src/main/Server/data/why-you-wanna-trip-on-me-michael-jackson.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/why-you-wanna-trip-on-me-michael-jackson.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/why-you-wanna-trip-on-me-michael-jackson.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/why-you-wanna-trip-on-me-michael-jackson.txt diff --git a/seventh_assignment/src/main/Server/data/you-put-a-spell-on-me-austin-giorgio.txt b/seventh_assignment/src/main/java/sbu/cs/Server/data/you-put-a-spell-on-me-austin-giorgio.txt similarity index 100% rename from seventh_assignment/src/main/Server/data/you-put-a-spell-on-me-austin-giorgio.txt rename to seventh_assignment/src/main/java/sbu/cs/Server/data/you-put-a-spell-on-me-austin-giorgio.txt From 47c818eb4d9cef51f20e29dea933a52b92f2dadf Mon Sep 17 00:00:00 2001 From: dibug Date: Thu, 30 May 2024 11:14:44 -0700 Subject: [PATCH 2/2] commit2 --- .../src/main/java/sbu/cs/Client/ClientHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java b/seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java index b37e01a..ccee868 100644 --- a/seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java +++ b/seventh_assignment/src/main/java/sbu/cs/Client/ClientHandler.java @@ -43,6 +43,7 @@ public void run() { catch (IOException e) { throw new RuntimeException(e); } + System.out.println(name + "connected"); try { //menu(); this.out.writeUTF("1-Join the chat");