From ead552b6127487a7ecd9d8c947a999e42fffb2a3 Mon Sep 17 00:00:00 2001 From: george_IVabil <45440666+aion1@users.noreply.github.com> Date: Tue, 5 Mar 2019 00:22:48 +0200 Subject: [PATCH 1/2] Add files via upload this is an easy example for 1 to 1 client-server connection --- java-socket/README.md | 1 + java-socket/build.xml | 73 + .../java_socket/Java_socket_server.class | Bin 0 -> 1596 bytes .../java_socket/java_socket_client.class | Bin 0 -> 1424 bytes java-socket/manifest.mf | 3 + java-socket/nbproject/build-impl.xml | 1420 +++++++++++++++++ java-socket/nbproject/genfiles.properties | 8 + .../nbproject/private/private.properties | 2 + java-socket/nbproject/project.properties | 74 + java-socket/nbproject/project.xml | 15 + .../src/java_socket/Java_socket_server.java | 36 + .../src/java_socket/java_socket_client.java | 27 + 12 files changed, 1659 insertions(+) create mode 100644 java-socket/README.md create mode 100644 java-socket/build.xml create mode 100644 java-socket/build/classes/java_socket/Java_socket_server.class create mode 100644 java-socket/build/classes/java_socket/java_socket_client.class create mode 100644 java-socket/manifest.mf create mode 100644 java-socket/nbproject/build-impl.xml create mode 100644 java-socket/nbproject/genfiles.properties create mode 100644 java-socket/nbproject/private/private.properties create mode 100644 java-socket/nbproject/project.properties create mode 100644 java-socket/nbproject/project.xml create mode 100644 java-socket/src/java_socket/Java_socket_server.java create mode 100644 java-socket/src/java_socket/java_socket_client.java diff --git a/java-socket/README.md b/java-socket/README.md new file mode 100644 index 0000000..f1c3a11 --- /dev/null +++ b/java-socket/README.md @@ -0,0 +1 @@ +# java-socket diff --git a/java-socket/build.xml b/java-socket/build.xml new file mode 100644 index 0000000..a621987 --- /dev/null +++ b/java-socket/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project java_socket. + + + diff --git a/java-socket/build/classes/java_socket/Java_socket_server.class b/java-socket/build/classes/java_socket/Java_socket_server.class new file mode 100644 index 0000000000000000000000000000000000000000..5f3b50a04773ff41a06d42e96fe3c2cb9e24d059 GIT binary patch literal 1596 zcmZ`(+j1L45IwV&H1c|F%NI!&F~I~9WIKrn#9ZW%fOBya>DK)9_wRoIxQQQ4EMi0A3lj!5)bgdo zS0s4VH;H>{dv$?S_J#J%)$DpTR|8??BbO)Uqw!x1m;E@ z`X-}rAaG%TU8pz19`=E2S9EE{7G0JGE?eR8vFp2)fnDynt(INY8Y-Q}Y8RL;1-5gt zV>h*?5|1RlXQib^=sWHMPidciThi+a$wCq-fs5+=|LR-#NO>i7?*CS=Ac_`tuq%+! z9#rtHDlP0`U%CFk7WTcy3su$w3ne_3cw*rYmn}TSGq$wvKhhTqWjt3AF9eo*@~rr- z~yxErY&YO zMN>g#SKra}nW`I%Xut;a-Nwb?=qzOijUS27BfT&*^=3h(j&m+6>fa@>*hd}xGmO)I z-3r`O&UqswS=m&RUE{ql#azKr$b-ka}jwZ_KiKh!6R`Eb`p} zCctb+aZU4<<1V;I*V+)j@?cwx!gfwxI4<9&Lm-~xAp`*a6Jxs8e9 zdK-};$P9AaYEO*29xJSzN$%*OtH2!uF!IgWH)%rljt_7?vj|&;vwm5^Y<|>QzH`VsWOFo zjQfNIBya~=tg?V*e2z7&Gt(8`uM#uD-z8k9=uv#iXcqntp<@z;L{#F2L|kG@;xihD LiURXqzx;>gccd7y3YF z?C1yhQI6}RrA-H3&d%9uXRUop{{H**2f!obboAq%hWk1KxTlT>8XiXQNJj_@8XhbA zL`MXR5j<6PNyD;ouIT8(GYzXcdhlEwFQRyfH4W#xL zlG~Nik#s&7M@4!PSvzkO_YKEX_l7g*o|je zX$cHYe)M9~MZ+qjbFO1rg=J6Ia0+DVy8>p8>mH4OzVS6L&s@{C${JoVXQx8aV2;89 zy>(`bDJX|jvVq;4z(5@^?es47T&hZ=q`=Icz-SZ9SZ9?6xF?Nc>8Ox3h731D)+#3_ z(vinaT-%c6vQhB*qv~#}i}~j4ij$YGP1V7n%Z-^=t{4U|C@|)OujpY6w^UTzQ)$&G z5G|^~oZ4kq5pA%CUPybjF}%hbg>MRsY|3KMPPulfES)dXNu4-$DaA=yWXRyHK=Oj& zQcGfZhpgh+;w&$s+Pk9A?HG2jtKoeNdzcXD@j|_s?;L%SdG{hq&($2N+K+m#{p*oY z`w=flccw@)gM~e4LllvArgosnwHdfVOGR{3%2zlC=Tq_l6dG;` z`2oe!*Mb_`qP!8V-m&_&1o|&n{k68WD)+7I$`ZHSuDH0#55Av20-yuT9fLfFcuUg? z+R$_r;s+lB80H!FoM9yS9IFRl1f#q~aShiQrC!d^257r#2pm+=k)5d`*dpnsmUNG5I?oZSp-XwXtB7yc&~q?XMekBD89YZ~DfAP4$q<8DiH%bji1WAB%cK%ar5`hF z$^u1KSpO^5sw!Wti#ICo!Xj?t4wFn`7I!hhBxi_CVv2<>@V_|CdyouK;&UvmRg}Oy I`2tA)2k>r1PXGV_ literal 0 HcmV?d00001 diff --git a/java-socket/manifest.mf b/java-socket/manifest.mf new file mode 100644 index 0000000..1574df4 --- /dev/null +++ b/java-socket/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/java-socket/nbproject/build-impl.xml b/java-socket/nbproject/build-impl.xml new file mode 100644 index 0000000..11ddfd0 --- /dev/null +++ b/java-socket/nbproject/build-impl.xml @@ -0,0 +1,1420 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/java-socket/nbproject/genfiles.properties b/java-socket/nbproject/genfiles.properties new file mode 100644 index 0000000..b6bb08c --- /dev/null +++ b/java-socket/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=5c527137 +build.xml.script.CRC32=deb15b5d +build.xml.stylesheet.CRC32=8064a381@1.80.1.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=5c527137 +nbproject/build-impl.xml.script.CRC32=45b1e0bf +nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 diff --git a/java-socket/nbproject/private/private.properties b/java-socket/nbproject/private/private.properties new file mode 100644 index 0000000..6fb1f4b --- /dev/null +++ b/java-socket/nbproject/private/private.properties @@ -0,0 +1,2 @@ +compile.on.save=true +user.properties.file=C:\\Users\\gogoh\\AppData\\Roaming\\NetBeans\\8.2\\build.properties diff --git a/java-socket/nbproject/project.properties b/java-socket/nbproject/project.properties new file mode 100644 index 0000000..e317904 --- /dev/null +++ b/java-socket/nbproject/project.properties @@ -0,0 +1,74 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/java_socket.jar +dist.javadoc.dir=${dist.dir}/javadoc +excludes= +includes=** +jar.compress=false +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=java_socket.Java_socket_server +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/java-socket/nbproject/project.xml b/java-socket/nbproject/project.xml new file mode 100644 index 0000000..4ad9bdf --- /dev/null +++ b/java-socket/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + java_socket + + + + + + + + + diff --git a/java-socket/src/java_socket/Java_socket_server.java b/java-socket/src/java_socket/Java_socket_server.java new file mode 100644 index 0000000..dd1dbf3 --- /dev/null +++ b/java-socket/src/java_socket/Java_socket_server.java @@ -0,0 +1,36 @@ + +package java_socket; +import java.io.*; +import java.net.*; +/** + * + * @author gogoh + */ +public class Java_socket_server { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) throws Exception { + Java_socket_server Server=new Java_socket_server(); + Server.run(); + } + + private void run() throws Exception { + ServerSocket Servskt=new ServerSocket(666); + Socket Sock=Servskt.accept(); + InputStreamReader IR=new InputStreamReader(Sock.getInputStream()); //listen from the clint then put it in a bufferreader + BufferedReader BR=new BufferedReader(IR); + String Message=BR.readLine(); + System.out.println(Message); //print the clint message + + + if(Message !=null) + { + PrintStream PS= new PrintStream(Sock.getOutputStream()); + PS.println("Message recived successfully"); + + } + } + +} diff --git a/java-socket/src/java_socket/java_socket_client.java b/java-socket/src/java_socket/java_socket_client.java new file mode 100644 index 0000000..3e2f5e5 --- /dev/null +++ b/java-socket/src/java_socket/java_socket_client.java @@ -0,0 +1,27 @@ +package java_socket; + +import java.io.*; +import java.net.*; + +public class java_socket_client { + + public static void main(String[] args) throws Exception { + java_socket_client Client = new java_socket_client(); + Client.run(); + } + + private void run() throws Exception { + + Socket Sock = new Socket("localhost", 666); //the client should be having the port and the host address + //the socket is acting as the real socket or a connector each client is having his own socket + PrintStream PS = new PrintStream(Sock.getOutputStream()); //it is now sending to the server + PS.println("Hello to server from clint"); + + InputStreamReader IR = new InputStreamReader(Sock.getInputStream()); + BufferedReader BR = new BufferedReader(IR); + + String Message = BR.readLine(); + System.out.println(Message); + + } +} From 400e00aba23695b4529f01e9f336349a31def512 Mon Sep 17 00:00:00 2001 From: george_IVabil <45440666+aion1@users.noreply.github.com> Date: Thu, 7 Mar 2019 01:08:09 +0200 Subject: [PATCH 2/2] full client-server broadcasted chat room this is a client server chat room with GUI but it is not the final version as it have a small bug in GUI --- Client_Server_Chat_Room/build.xml | 73 + .../client_server_chat_room/Chat_Server.class | Bin 0 -> 2851 bytes .../client_server_chat_room/Chat_client.class | Bin 0 -> 3172 bytes .../chat_Client_GUI$1.class | Bin 0 -> 2065 bytes .../chat_Client_GUI$2.class | Bin 0 -> 1238 bytes .../chat_Client_GUI$3.class | Bin 0 -> 1094 bytes .../chat_Client_GUI$4.class | Bin 0 -> 922 bytes .../chat_Client_GUI$5.class | Bin 0 -> 920 bytes .../chat_Client_GUI$6.class | Bin 0 -> 956 bytes .../chat_Client_GUI.class | Bin 0 -> 7592 bytes .../chat_server_return.class | Bin 0 -> 2660 bytes Client_Server_Chat_Room/manifest.mf | 3 + .../nbproject/build-impl.xml | 1420 +++++++++++++++++ .../nbproject/genfiles.properties | 8 + .../nbproject/private/private.properties | 2 + .../nbproject/private/private.xml | 12 + .../nbproject/project.properties | 74 + Client_Server_Chat_Room/nbproject/project.xml | 15 + .../client_server_chat_room/Chat_Server.java | 54 + .../client_server_chat_room/Chat_client.java | 91 ++ .../chat_Client_GUI.java | 301 ++++ .../chat_server_return.java | 85 + 22 files changed, 2138 insertions(+) create mode 100644 Client_Server_Chat_Room/build.xml create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/Chat_Server.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/Chat_client.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$1.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$2.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$3.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$4.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$5.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$6.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI.class create mode 100644 Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_server_return.class create mode 100644 Client_Server_Chat_Room/manifest.mf create mode 100644 Client_Server_Chat_Room/nbproject/build-impl.xml create mode 100644 Client_Server_Chat_Room/nbproject/genfiles.properties create mode 100644 Client_Server_Chat_Room/nbproject/private/private.properties create mode 100644 Client_Server_Chat_Room/nbproject/private/private.xml create mode 100644 Client_Server_Chat_Room/nbproject/project.properties create mode 100644 Client_Server_Chat_Room/nbproject/project.xml create mode 100644 Client_Server_Chat_Room/src/client_server_chat_room/Chat_Server.java create mode 100644 Client_Server_Chat_Room/src/client_server_chat_room/Chat_client.java create mode 100644 Client_Server_Chat_Room/src/client_server_chat_room/chat_Client_GUI.java create mode 100644 Client_Server_Chat_Room/src/client_server_chat_room/chat_server_return.java diff --git a/Client_Server_Chat_Room/build.xml b/Client_Server_Chat_Room/build.xml new file mode 100644 index 0000000..08129fb --- /dev/null +++ b/Client_Server_Chat_Room/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project Client_Server_Chat_Room. + + + diff --git a/Client_Server_Chat_Room/build/classes/client_server_chat_room/Chat_Server.class b/Client_Server_Chat_Room/build/classes/client_server_chat_room/Chat_Server.class new file mode 100644 index 0000000000000000000000000000000000000000..d42728f449f28a30d189fb4c5199ae3fa1d3f89a GIT binary patch literal 2851 zcmaJ@`BxKX6ulDyL&i~d0Tl(23Mf*SZa}e$T4)iMC={{9AsJvanWU46qTO4&?|WjGvd`f{JHUJS#HKX=uUo<#<6%zbFf$X~9b>UKUB> zeMQAZ1uF(pwr$2-D`jUC)D53D&KliW*GhEnaUA3Pu$6Ip6-1)ejBU7C$5haMCz(Ef z(>C4iXexHbbbI@$wsIirIHv7RW;3Qk^Bs3lO&In}chq$(d&bi(>$7aj?N?CJ-Z82m zJdldhdBw10nh=jAU=WMvTw+pCbz6{vid6r!Nhh`WqzCdVyhL0xnV!seRJ=-&KBm(z3N4z- zIx+KrB_&W9$mTX7RmTqOBp8oi4|9MwIebmU>pBkM4YGUAuv`{h^K{B-7W-~yoBUL~ zspBoYt>YcMt79v=bi9Z6sZdOt4{mSPO2kcvCw{dx$NVd0#+#>|RI;a8#|QXO$4B^B z#V0yG#b-J`mthzO6?86FqqkR%K&M7!5rJPgvj2sSFD2-j;^AUObzH(%tY7aa$h(fO z@r`JItK&OCbgzW@J$}&fBQEp0c^bv67tAlsua2Mavsn3sx3zV5i^O|H$FD^=OB;%U z*5zUjWO7NIho(-mNiEs($!DRr4@oTsNQs`$urO~cMk<&_lBMQTREWXfR-mS(ViW8G zb@^()wGEURF}Ytf(4OyPMP_KW#E8dlQTAc?cAVgKHqvR+ra;%7tOt6*lA@y7iW$@O zdK~YhV`g|e8-nhKh#`MM;o8N71@_tHX=5;zaSOLO4?h?nua}!Da9SV4crs-50mc zvN0CA0^7>A3>OX>%V5FsZd42Rt-M`WPgJA^xvM=s(meDnd8e zZ25dlhI%~CGvU6TA4hD$K85%QVtvE(JDL@=-ot8shvZcN9{er;O2`Z%9WefCBr^xorD1vjn1;E zV#zeJVA@zJJF%Ui?!W|Rr?@vwilqwrndzM@q!E%7ro;xm$_|s7wG8YCsVSk%j7OnV z%mj`i%3!N7iescK?5IVs23Voh$RxcurC(9U}4_#NeovnGi^ U@zO3|x?r+2dQtEM=OK*$537^MPyhe` literal 0 HcmV?d00001 diff --git a/Client_Server_Chat_Room/build/classes/client_server_chat_room/Chat_client.class b/Client_Server_Chat_Room/build/classes/client_server_chat_room/Chat_client.class new file mode 100644 index 0000000000000000000000000000000000000000..8741da80d8ba4f2cc3f0e67676aba7f646f47e87 GIT binary patch literal 3172 zcma)8`F9jm7XGT!q&k(tghn>OF##Ep4$!EBOX8@I7(|-{=nx19u~I3Mf=*RiRZW6A z<39W9&g|-pQDXarwb>{2Tl~JRWDhTUB(b37#`>^6I|#?z{K9-@Wg?{^HyB zJ_PUse6HbI98xjTgu^(ZA%(k}a1D;ia7@D}?h(mQF(wmJLleej#S-aWjnaf{OscTO z!f_2JP?F^-vE|6%W>D5Ji2G#lGVn79M66_RGJ|OmXPR&d_iK0n4~q076+hOn9*1Oj zD1(RP`-p}|@tABsp1~91{wFf|sfM57=NbGWgI{X+6@IM|#&1;oR>kjB{9Zx2=$a=K zEGry0P8xZ~3i7gG1w9HTtS0d2^6e|RBSiD*R!4A zpl1i6Qsd3GV+Xe=xV&SL_0C}$>2=2~1uX^Ju?8wrW0p5$jFq^OEx4vp8a6yz=J8@W zn6!Nb8w+O1wwz$px4e^8A!KmlDQ~6$zqD>-f@G3;#&>@Z#+KfS#3}+&L`;2Lo z1KV||x3m}-=7~KTt%aCp6lmkNZ@Q%1B+FV2wXfo7 z&WmovGp&AG7;8-gzg5ub=s_>j8X`?5PsKAjuE(>Y@SKhtaf8k}->%|$9jEaJ*}H-G z!*lf+)$vFCNsj$l$4%(g@fY;!xI>1&im&KQJ;9>+Hx)1Fco8q@*e%L`$3Jwuj9F%9 z!>#Q)Ucsw6Uc*0`ry~lW<6n54@=+Gx<~AK~;7t{8={SQq6>sZ!2WNFuF|T0N#c9}C zu}kBYr{f&nr3FpLdze*mUKaN0cprDsW;boVDANz{p^A@me2jf0s%_Hn+ZOn?Slz9s z+)CY&iht|)4?fZHDLzxM;s2;aT3J9jICeZtWp-g{f5ma4qEFB_H0in1(Q4v!RB9J^ zW^Q&5)=HwzP4Se^O0AW=XgcLe!1F9NKhmDenQsM`?~OYSXI{7HVzlIt(r-3#Sd3#7hEqh(&$vUH&m zZ-3q0ipcK~`zmuiV9oGSu|FJEka0MXE+nlgMx4Bl)ZjG?4BKG?TARGEymnsEy02n6 zrqv^+n*7R`ANB-szx$HLRL?4x43pmazSCBseboC%Y%t)c_blOfgLO+kjYhc~w#+S;3Ud)JaWmk-OyEXj zFeOsoi;Po6+O}g%F(=wk|7hH&S-^|Y^xIZxoK{yZG8OKyx){5_jvG|X+hF+Q>@}p! zmid$J^q%N7=(CNIJE5R64$GJh^1bd<*>(7w^d#a+5SO-QB;jdR*f84pd*WIsxDM&? zN6U7OkUk!M+2O-4TQno%4xD7ivqa}GvXkEch^u}JkjJ*to9&+!Xu?jWxlHp3z zNVKBOqxmd!PV_3463}JQddn=97GkmMqggZ;=CG`*itL%tb)GMb{Od(OTG0@K-HK+e ztS8V7xSIdFun~FWNJ$s9bJWdKdkc19D+aKw7RWBB=)>)V4gTtiLh7fiBYjH6uBM$T zT2*@Gn-_=H&97*y#Jha)q6H)*JQ7#Vl9Pr7lbRT_};)AuG&&X+bq`2q5VA8kIZ8O zX}UVQkwX>VuVRy=Gs)0R&{zyvmcv@|)=scFg1nBXy2-;1GSSCakD?HUkt4!(wBb(N zMeN<=s(?MTm*sqbe-iMqM3Bu$eSqD{WbP2%jWFeh6G`75Lm8rOnr;v9Z Ca|O`= literal 0 HcmV?d00001 diff --git a/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$1.class b/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$1.class new file mode 100644 index 0000000000000000000000000000000000000000..8e376e95aae2c9333399afc32d1582739bfdaa41 GIT binary patch literal 2065 zcma)7ZBr9h6n-`YHY_V*M6gyg7Ft0I0km(Twh%$FL2N;+_9ea9T*Kn#ZrI%r(E8H) z(thal2lNm0bLmWE+L``#r&bjxT`<&PPis^a6>e&TJ zm^z~eb5l8bQFrgJnkwU#7xHq&6s!DJ4qsOiITi6OZvk!_Z6TTSM0l+WGv7v;qx%|C;Tr z?FW*|O2hG&G*5--xJ6s#qKeYcQK1TCu;e>A66Sh6?N=#A>C209J(#hjQ=okJFoG9P zH0VVc@I^}U;80VoM1dyFCU+tkb(CDK2!|4LpkBvOb%oAO3{lI)DN7{{i3U1uuAQiC zn>K`HN#7qB9UUcv_2;)iW<_2)1R%K!dMG8>egpO{40Y4oLH+*~(+oH3LfE)e_L++3 zQQ~t9l|71ZRs!2ePkNr%;3N@<{UQ9_VwxzTK;3N230qOf3vRX1Z`)4Hc$6H{ZxiLR zRCIZ`Ib;pEF9fGv;G~!c+(y`U2O_jg=Nt$-;4bY5Yoh_gpo1mbx5L>MAH2yiX#{+X z1K#_5z^5uf;HrkR+b%?6ZZjE7E1r$)b3JwAY^lMVVn(-Inw4DjVcTw-nJgE;Pn2701P zbpv!ACvcKf-y~IjXqfgG4?m*W?4N{@F|BT*rG|L2wT8AIk&Cz*^k0zJLi;8XH5i-d z2nqB0CieV>&Ku9LHxzUw_tnr) ghS*FC2p083ai(SwU7OiXoS0@EgDaH$Kk zCNjus%bbaMT-N3*266^$0}BkD%dT|QDnl}p-C{@;{F-3sFS$}YZZ@hS*yL4@Ea{T( zaBqtTuGU+|l-hPf25VhP5fnTghJw`jlH<8Ts!Aw=T@h5AZLTVT?>Fp7D#R}zK3kt& z%u_1vDA$)yMex!O8luK9o+<6{U2gL|Ws6-3WUob#2U^Z+mW&9E{tv`3dIs z$1A$JGlPFrmDA*@t_RZb{Lq#44WYLEnt`hp7SU&+S3l0{$2BY&xNhMFZZg2YEep4C z$3h;<239Pr;;w~z=wry9xTOpOQTO7Ssyo6_3}gRnXvqzgpvf`Jo-jP^L4&)pvggX0 zzgLMz$6#(2D-98byiWZXiF&$khXktIk2b}=D!Rg}QD28OjlbV87D$Zx06DvKKxG;v9W0$g^*E5DuqN(FL(FUVy5=MLR zTjmy5y`NS<+(f8~zS9h`KzFhSWTktWq(9A{w0@FoI%)9en0pWQj)VjT=-C+=KjRe1 zRt!KIgQQWh7$%fh4&jSqNK>!~Q>$s0c0cJ7hV?MwD9{X7E zvFKxoq4r8DY2PqZ7nk-Jyq4|=hDI!v*gER9h1uopj664Eo$_pt8|m!6)3aTfGlUyT z3De4Wo(nQp;xv;&*(4X{SePX3a+?^fdr_ga%7^biZp^({B`Tg;snrKzK55ev9fq03 z_<$eth@aR<91~EqR)nlOebrUTsGzC;1u@KOv)@$0wgp#tb4MSURK$dqttq7~ca&7> zcnOkmwI6L$twweP)ihQTCU29D%u`L>rIumhQt z&29Xzo|~>U>Uv$Jna-u!-xRj1J3f{}tY9ca;Evnwc!H-snjs<#QAx!}ibBu1Lp*bj zmaaW+hS3X{?e;;@*7QGz9n0Jb+A71sHR0)w^te>XiBuhZl9X#@2;2Zl2!{D9uSUyV zk}`}&I(rr8r7(iNyq(6Ok;)dU*fl&AG#j5@0fsug4^{fnV95$ei%2q(1IypRPD!a? zn9iDW(szXPuna&0H^`#aFh)@>`88P;k}kP&ksLTDtHNVm0Wetx^#Ldx(mUzG5(5IYaG~+%BO`0M(+(Nz%XuQDZ}>vpND6V1$L|qyapl nx>Mve`t)}R!$)Pq$ACvL_X_SQOq2BJ&tV3mqy?1Xlcdida4rAi literal 0 HcmV?d00001 diff --git a/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$4.class b/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$4.class new file mode 100644 index 0000000000000000000000000000000000000000..250abdb8360cd4b8890376ca7ad47c62e9bea9de GIT binary patch literal 922 zcma)4-)j>=5dJnvbM=h<5tI6>wb53aDkMJStt!+Ir4XA!ZNaBwbGIg2F1ulGljxu2 zQ$a!B{iDR$yI@2_dT=*0d*6KX&CLGz`Q;mc7V17cZ22hSzK88))O_Uez{5iiJ05l! ziqEBz_9a8UzJJb8XzNHYtaham$CFWCn0LG%(@D9jLmr=VBV9Z{EZCt;7)nP<3Db^w zk_ZZ)cEeZ-WrIYRsW3q}P$?c-snv-vAG8^Xh+(_lz2H;c z)4j~o zOCzD^I(bd9jO@~rOR&%6o+1{)s(%Rc=e&8` WPEmJomuvy|u!&X2LR>|%^!x&q2iR)> literal 0 HcmV?d00001 diff --git a/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$5.class b/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$5.class new file mode 100644 index 0000000000000000000000000000000000000000..0088f94e4a930f2098b59eece1fbc2a5abe7c2d7 GIT binary patch literal 920 zcma)4QEL-H5dJnvbM=gEjcKhmHPKd^DkMJCr>am(ltOF@wFRG!&E1-8x$K6$O`<=` zr-FjM`=i9!yI@2_dT=*0d*6KX&CLGz`Q;mcJv4lH*z{4vJrA`-)P3Y}-@^kBTOPI< ziqEBz_9a8Uv3t%?IMk6~SnfzAj>p5EFz{iYJOC%8(Qr+REc(IK|@Kq+mxD@jr-8A;4l zztttJMn-}(EoB9RR{`(ov1RZxg4fcGqViW8O{bO`X{#{SiB$c!!VYxg;b94n;FoaC zeQv{N*hw2p%blrYJQ`_ZMbsS$lPYR|48_Pvqj?`|TmOxye-gIoh;|ruuRL9bm3h5x z??Qys%H}_3+mVSCv_z74MS7Arnh_8jw@{(fRZ4Y**2w1EhRAocd!*56^1mYgzFfG(!uJ$07gqa2m_Osq XV?9OP!CkTiY@mu|$3k31vh@4{1#j2H literal 0 HcmV?d00001 diff --git a/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$6.class b/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_Client_GUI$6.class new file mode 100644 index 0000000000000000000000000000000000000000..339f2f4666159fb64fc7313474132a7950afff01 GIT binary patch literal 956 zcma)4+iuf95IvilTjNq1Ld&I>&}&jeTo53k0#XSD6}c1%=&QAH7H2DaH?rM?-{J|x z10TRgA!hAJL={4{WY5fc=Iq&X_Sf$pKLI>K+eQt`HmX>e!K#flG%eheXtXuqi^XX{w$v$nxgG_4mUL>D&5{o{=TFX1*BkuBX z=86#kxd(a6p~?3ROGbp2|JTH@p_8zqMAj2rrJWD@JPCwHXwiXEI^$+bqS`1xBCbOB zgt#WMFNo7zv7!IcABbqkU>EbRrBR}B;S?Q1mdF#VU@_I}<_1u<}p+Jeg*K zjAGciBs|$3bE*8XRDC`63#S;C4Ez^2rRC6ldos-Zols!v9QEL zGA4pLysq;aZN_pc<8(A$n+Xa%PVpv&WKsmnmDPEzhvkego>QW;!ZKU?IboTr{h48z7r`+CvpHQ?=0|W`2_2UO+Hm8z zw^0|8g$lJOEQ=LzNd&jb(vU0*%UKcZle2ZcTpMEFD(7gkLYtKey()s+=*vjQ&<%NFgYN2F1<>S$X?wnuOT zuZLtu1XpN(K?GN6zcYfXwQq{x8oVBs=8){7!gOgj^`iZruw1BAT0*jyCsh?6)AfB6 zT>FbCvGx~J7Tr89mxQHNmD&=POG9FZq)lLLN~fL7x|E&GI$3&4;((n?q>@fLCpf*) z8?|Pg%poV!s(Y;&*X^uZrz3B3r68OqK-%tf1o6g$_9442Wv4spnsS+Bx`X?Xt#&fq zolLj8-GUkeakwtag^s$-4H@DQCRE>Qx4C(89a|1ipU>soG$E?%TN5sYO%P^ueQSF% z>razzT2NKry3t8>nL*Y`w-Y|qy4A^M?GB1{64OSz%}J?X%?+)cMVJZYe4CxaxrU^Z zYA4*NMrBPEWbK^c7HwW@geh4XKOB8+#<3NM9aHNqZ`(YOiWlGM&t=76fO{*)6D8=e84VbR&h|mhWtHGR<~diYxI( zH({rC+nJ=!{l$vhfh7HH&fjz~<814UC$^ryYZLiZbkdCk<7V$O$|!R(BY>UhAjvVO z*yd>leW#+!&CrEp6Db~Wvm915xrxgJF^_E8$<^tCqZ$sDxMW?@t=mDD&h5!0sWa{h zRbA@w%?D_4br|8XJwNuO+;BMIbgA*VH?k>bCobD+clnx#s1}oUDtVMhvHE;6)!wQn zZ7rHC?yVU!4lY{W)J}LV73cBxCp*d!!#Vn}e=kcYwib~hb|OLVpSf`1LRIUWlYFdr zNqne93N`*@sKM)5B(_+=ijyTe39n+L@H{2bCoSBM2k2vlX}LdGa!@W)pp=D=;Xz9}Rn+KEJoLOnA<~w( zy6KTI!E(?;RH81y1TW^+CbQ{WZN|xVx#@NW%moWVa=9fL$y$<=yd{UE+rr2337Tez zlNWi7+c+7EUV4PLHCwCtw&bW>Vab(pz>=%v{gzy<%?Fgqzo>qH!bYyqX+ep`x`{&} zYN^Idt?x_9XfS}AXkg*X7_jgq+DfjK>n!x)vljZ*em~NK&iPyVJ;?=TF0$l$xq&g$ z9LDa>)va?=Zbp@Mqa`=VF-vZi4~FEpCAY|jEV)&V>HXcXZM`KQ)-&BEAEEmVB?k+i z#zT73nH(&9Qpc4h(O5WvM;JK$9I;{nKNkLha?9)b=MN7@=Q(g9gdsPR99uE+cORmZDpH%C`H3p zc539c@Hl!bc~CxX;Yl(=ukx6nJeUEjq ziT?DInrmDc)xpAoDPq`$mJI$?9^^PwAMiewVQ3kkJm_wfejbmSzP6a9UAjZw6MY&d?%W#N0tcZ8s@i10oHTJ>Yixv1L88yW2sp^!a#Ut&<_0##&jT-xA6d z&f%n%CbNyQBUvZ6!HC7ewqo{PmA=aE>N17y{8I6~c(BsT<)tN(pAD#zaL)ChRKvpo z6@u)VlQ~V&Ar6~NX;L|RlaXZvSG1z@3J;63olZ7+)T{MW(A~*w(iDC{yPe|BJ>{u= zzU8W*+K95&)HLeb4!@cRrk4VBZ5ga>~xjKk*VVb;U?$Y{`S}$=Iwp6nLlGO@g|b*`n_V~6ob2+B>9NS>*4sHow({b=#NQ{D2DW-P)9z#%SmL=EX0T|2fh6bX z7YlDkQ1p3E09FXT#~1Hno1swWfzzYaU`5=io+eHWI%hW@M(*X?4ET;xt<@e!)mqS* zo|P8+h!zs2XR&H})~lvxv0-|auBK;=!Meuv4*=CT^pa&!3RskaiFsfxTntf-h+QNY9#7`uh&a|@U(@hSayU$7rjA2$+j$4*S5czV`)MA@#P z5Ni?QtOn~a1?w>j4OoKnd5n!%jm`Yog6+6~m|M|=ZP?4%rPzUX&b~$pt9jH4!aR>} za~2}j3v>*|Q7Yj@{3A8Hgmk}yeRrrH;v@*{BJ$H}dIRY3u@Q>_P1S zrnU58y3yZ^_{;)k6mWV0XK*Vf&&1^I0%qwLuf*^~0kb(K&pG{=+mACjA?JBRoTnp9 z&U-N#`>42!c+`ujxK^A?6|F%V)!5Dx{cuo{6TT#g9?Xv~Fl^_?B~R|MLmEqNa8dc z#2L5@3z4F*owRwHc6F(=%Xy3p#m-TE{F36UZ>}%&s2(gEz;a4-P5~>1ln^my>c&Vu zu0`}KlZRLFu6Lh;{Z!ikR<^|OSMRqEs|q+*wJdMPWR0is0#-`_=h4)|Vb}Pp!5|43 z?6q8p*B7vkREWu00qdz70=yfY9lanrv49Qqms8R*t7WtT@rDvw0gqN78X>84l(&qe zL`e-HQ6#fcekh71@$*Ya@klC`#Bgm1t&PKInU!I*HpVxV(AwzH+8C3ENvpw^Yx6K# zW@Q+y&G9WIv^IORHkZ?CjBhPqTT!Kr9!w+E5Q(meGT?0Q!H#lv7jUJ3ootnSQxTPG zdh8w1hEPl@qEicK?!hkFh>N@87nU&DwnrOcxFs4jTw0Xd-X63JU|&o8qF~hO z!^H($VpdAc(8?8h`=#u{1=#G!q^$?MU@Zl-7v)KKToOFU-k5AQSKH~qeovzP@eU)= z{`i3cl0_W<4EtkpiHdfu5iRsI4z>j2mo>Fi#8XWzmGRD|ma2HVi4oT=*Gv~z7=thG zL58CeSu&n18Kt|Ibc@1d%g>tYK{lQ*(NxyMqdXVU%WsK}HkzvNj!-cSnJebX1%u|o z9O{8tDSB`}x(hg5JS$bG_Ns_Ub2Jvi-Nx91iA|<5kO6mM9PYw&+>LoG2kKc6G~+%7 zz55wc9>8Hn{af|fg+Gt57{ znLrJm4NSu~0t@l2z;Zkn*o@}`7vbB11YQUn#EXH;@!h~td@pblz8|;;KL|XCmja)` z%YjGnL&kw01zyCD1FzvHfj{A=fj{GC!798O9D|<+XX2N^v+!DQHGUP`f?o&s;`N}7 z-vqOGBX|Se4Bm&|22bF3)b1aOiJo*`!jDa&kLatBA3xK6{H!-o>>9wW9DTS~W6NzEeWVwO!QK4>xSeZv^y+Q)F?cWi5igLBkr|Y5zVe9H^x@84 zELADuclF`!Ud@!0;~pc&;-Ne~WWl|>O~6!EM70>r0(&BF)(rm4$4s1!(^-|B!HR1Z z%bD4*F^BnjF7h~&{{x$cn+bIX7O(`bCYP`RTgv;kjQRK%q#eL7c|XCu ZDqO=}KUaGl|D)!8uJHRKe!tx7{~yQ1|BnCw literal 0 HcmV?d00001 diff --git a/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_server_return.class b/Client_Server_Chat_Room/build/classes/client_server_chat_room/chat_server_return.class new file mode 100644 index 0000000000000000000000000000000000000000..0d137f12ebbfcc2a373da7bb3b289bc42856e649 GIT binary patch literal 2660 zcma)8ZF3V<6n?fzyJ@;mNLy$DZ4rbv&{hyZ(~6W@pfqif)FSv&w#m{iO?Kn%rWEi6 z6;XUa#TTTXe3_AtP8pldfTMnb89&G`@Q*Nz_}txXx-IJXA@|-r=iGD8d7g9b&F_ER z_yxcYOh>U92P5dK#3m%g&>uw<1C=IC{1{l~xTyv#1K0 z1@5i$bh_Do$kGkxh^0HOR?ca*t&V9DVxC1-HOAUg4vogRxuR1ybZ57O+U5sNZ5d`r z-DZY+tCPB+4HR;tnl+@3W?gS)TFnltmM*@1Vb~ehZ3$bG>8!39&WNp9lbSV>9#@?a z%QSQC?#h>1np3b0#vn~esO%os(i7dL!8Ak7;$%tZua_D}%jHLG7nz8=cJp19a@6!h zznb@tj`mEYwY;O72C*#AiB+I0iIMuqxOtb1I%G^r*kD>?ZNzz0Qw_Tm}@ycUQ8QS_N<89pU{v4|nweV)qvGY(}#byo(Dm-c#^C zE-Lr{A4*U%x}7G>TH4Vv3O*8wk8w%CCrHTnR6#2~lX00<=sFG7nu5>qg*fs{1zWIH zn6@c+3JC>YVM@UjvHBVpd5Fhv5@oN z=t*Y70$&gvE*OSarzPxq2TSBHiehNoGEaH7Rk|%I(1pe=!(%Lwe+#Nx6m`lia0ylZ zK2d(9igU5+vMlvH@bpc)? zXY%xMz_gtKHOJ6u=K~4UqX=Ei=QSfEq1BHjs17FUT}^%kb7RCYJ&^=CFRr#M`?~I* zoG_j86WM}2zNk7T~Y0*JIK?n5<@CFqE zU3px!2ec_NTAt3DHqnU~{1lhzk{rAm?r0fC6JLzYkkE`U-!Wbo9Lq$%xiediGsJDe zF~r|CY^U|(Tpgla8Rr%8IY{wX*(^fwEwc#EP*%nl5s0}y>p8CCYt(>hticnMuk!X` zCwB3R9`Gd3<@G7Ln>u=z5r^lkhngo`Mj#??^g+Uuw&LjE3&T&yi3B9uR%%KNH3 za$b_I-TyPZV5bR9I77?d5beK-s-vDeWe&>*T5n?c(K%FaEn-CxD~pK5YB&^8TSQ%J z5v#6a^?#VuyQf_d>4w~NcVZdW4>Q$9rnnv(v4Jo)60l9!O@R9d?=dENitwJLW}5PE z2(5r*2g-SAZ$bw;2}2+MG(1hqGTQIq-ZuAytgj^~K6KA;=Sq~{gCaHF6|*GW#RRv2 z*h%Q(Z*K|F?;)=?5fW)=^{i+Gq&tt+B&8dV->O*3&%w4PKi zU=w?UpivQ;$F4p=K>q^-5N!{AZ_5&(V;ksYfe@Dq59lAS-OnY$ek2XyUz3brOA(LG zxMi{(H<(%iKf5znNVkZ8f}@x{eg;rOo1HAnU6gf@kxp{cPutzJ+=CthrV_9mp5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Client_Server_Chat_Room/nbproject/genfiles.properties b/Client_Server_Chat_Room/nbproject/genfiles.properties new file mode 100644 index 0000000..ff32b0e --- /dev/null +++ b/Client_Server_Chat_Room/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=d351abdd +build.xml.script.CRC32=4ac8f005 +build.xml.stylesheet.CRC32=8064a381@1.80.1.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=d351abdd +nbproject/build-impl.xml.script.CRC32=9dcc86d0 +nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 diff --git a/Client_Server_Chat_Room/nbproject/private/private.properties b/Client_Server_Chat_Room/nbproject/private/private.properties new file mode 100644 index 0000000..6fb1f4b --- /dev/null +++ b/Client_Server_Chat_Room/nbproject/private/private.properties @@ -0,0 +1,2 @@ +compile.on.save=true +user.properties.file=C:\\Users\\gogoh\\AppData\\Roaming\\NetBeans\\8.2\\build.properties diff --git a/Client_Server_Chat_Room/nbproject/private/private.xml b/Client_Server_Chat_Room/nbproject/private/private.xml new file mode 100644 index 0000000..64192cb --- /dev/null +++ b/Client_Server_Chat_Room/nbproject/private/private.xml @@ -0,0 +1,12 @@ + + + + + + file:/E:/project/git_hub/Client_Server_Chat_Room/src/client_server_chat_room/Chat_Server.java + file:/E:/project/git_hub/Client_Server_Chat_Room/src/client_server_chat_room/chat_server_return.java + file:/E:/project/git_hub/Client_Server_Chat_Room/src/client_server_chat_room/chat_Client_GUI.java + file:/E:/project/git_hub/Client_Server_Chat_Room/src/client_server_chat_room/Chat_client.java + + + diff --git a/Client_Server_Chat_Room/nbproject/project.properties b/Client_Server_Chat_Room/nbproject/project.properties new file mode 100644 index 0000000..4377ca5 --- /dev/null +++ b/Client_Server_Chat_Room/nbproject/project.properties @@ -0,0 +1,74 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/Client_Server_Chat_Room.jar +dist.javadoc.dir=${dist.dir}/javadoc +excludes= +includes=** +jar.compress=false +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=client_server_chat_room.Client_Server_Chat_Room +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/Client_Server_Chat_Room/nbproject/project.xml b/Client_Server_Chat_Room/nbproject/project.xml new file mode 100644 index 0000000..5da3311 --- /dev/null +++ b/Client_Server_Chat_Room/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + Client_Server_Chat_Room + + + + + + + + + diff --git a/Client_Server_Chat_Room/src/client_server_chat_room/Chat_Server.java b/Client_Server_Chat_Room/src/client_server_chat_room/Chat_Server.java new file mode 100644 index 0000000..5bfa98c --- /dev/null +++ b/Client_Server_Chat_Room/src/client_server_chat_room/Chat_Server.java @@ -0,0 +1,54 @@ +/* + * 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 client_server_chat_room; +import java.io.*; +import java.net.*; +import java.util.ArrayList; +import java.util.Scanner; +/** + * + * @author gogoh + */ +public class Chat_Server { + public static ArrayListConnections=new ArrayList(); + public static ArrayList Current_users=new ArrayList(); + + + + public static void main(String[] args) throws Exception + { + try { + final int port=666; + ServerSocket Server=new ServerSocket(port); + System.out.println("waiting for clints....."); + while(true){ + Socket Sock= Server.accept(); + Connections.add(Sock); + System.out.println("client connected from: "+Sock.getLocalAddress().getHostName()); + Add_User_Name(Sock); + chat_server_return Chat= new chat_server_return(Sock); + Thread x=new Thread(Chat); + x.start(); + } + } catch (Exception e) { + System.out.print(e); + } + } + + private static void Add_User_Name(Socket Sock) throws Exception { + Scanner Input=new Scanner(Sock.getInputStream()); + String Username=Input.nextLine(); + Current_users.add(Username); + + for(int i=1;i<=Chat_Server.Connections.size();i++) + { + Socket temp_sock=(Socket)Chat_Server.Connections.get(i-1); + PrintWriter out =new PrintWriter(temp_sock.getOutputStream()); + out.println("#?!"+Current_users); + out.flush(); + } + } +} diff --git a/Client_Server_Chat_Room/src/client_server_chat_room/Chat_client.java b/Client_Server_Chat_Room/src/client_server_chat_room/Chat_client.java new file mode 100644 index 0000000..8454c2b --- /dev/null +++ b/Client_Server_Chat_Room/src/client_server_chat_room/Chat_client.java @@ -0,0 +1,91 @@ +/* + * 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 client_server_chat_room; +import java.io.*; +import java.net.*; +import java.util.ArrayList; +import java.util.Scanner; +import javax.swing.JOptionPane; +/** + * + * @author gogoh + */ +public class Chat_client implements Runnable{ + Socket Sock; + Scanner in; + Scanner Send=new Scanner(System.in); + PrintWriter out; + + + public Chat_client(Socket Sock) { + this.Sock=Sock; + } + + + + + public void run(){ + + try { + try { + in=new Scanner(Sock.getInputStream()); + out=new PrintWriter(Sock.getOutputStream()); + out.flush(); + checkstream(); + + } + + finally { + Sock.close(); + } + + } catch (Exception e) { + System.out.println(e); + } + } + + private void checkstream() { + while (true) { + Receive(); + } + } + + private void Receive() { + if(in.hasNext()) + { + String message=in.nextLine(); + if(message.contains("#?!")) + { + String temp1=message.substring(3); + temp1=temp1.replace("[",""); + temp1=temp1.replace("]",""); + + String [] currentuser; + currentuser = temp1.split(", "); + chat_Client_GUI.jL_online.setListData(currentuser); +} + +else{ + chat_Client_GUI.TA_connversation.append(message+"\n"); + } + + } + } + public void send(String x) + { + out.println(chat_Client_GUI.username+": "+x); + out.flush(); + chat_Client_GUI.TF_message.setText(""); + } + public void disconnect() throws IOException + { + out.println(chat_Client_GUI.username+" has disconnected"); + out.flush(); + Sock.close(); + JOptionPane.showMessageDialog(null,"you disconnected"); + System.exit(0); + } +} diff --git a/Client_Server_Chat_Room/src/client_server_chat_room/chat_Client_GUI.java b/Client_Server_Chat_Room/src/client_server_chat_room/chat_Client_GUI.java new file mode 100644 index 0000000..2c5ec36 --- /dev/null +++ b/Client_Server_Chat_Room/src/client_server_chat_room/chat_Client_GUI.java @@ -0,0 +1,301 @@ +/* + * 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 client_server_chat_room; + +import java.awt.event.ActionEvent; +import java.io.PrintWriter; +import java.net.Socket; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.ScrollPaneConstants; +import javax.swing.SwingConstants; + +/** + * + * @author gogoh + */ +public class chat_Client_GUI { + public static Chat_client chatclient; + public static String username="Anonymous"; + + public static JFrame Mainwindow=new JFrame(); + private static JButton B_about=new JButton(); + private static JButton B_connect=new JButton(); + private static JButton B_disconnection=new JButton(); + private static JButton B_Help=new JButton(); + private static JButton B_send=new JButton(); + private static JLabel l_Message=new JLabel("Messasge:....."); + public static JTextField TF_message=new JTextField(); + private static JLabel L_conversation=new JLabel(); + public static JTextArea TA_connversation=new JTextArea(); + private static JScrollPane SP_converstion=new JScrollPane(); + private static JLabel L_online=new JLabel(); + public static JList jL_online=new JList(); + private static JLabel L_login=new JLabel(); + private static JLabel L_loginasbox=new JLabel(); + private static JScrollPane SP_online=new JScrollPane(); + + public static JFrame loginwindow=new JFrame(); + public static JTextField usernamebox=new JTextField(20); + private static JButton B_enter=new JButton("enter"); + private static JLabel L_enterusernmae=new JLabel("enter username: "); + private static JPanel p_login=new JPanel(); + + + public static void main(String args[]) + { + Build_main_window(); + initialize(); + } + public static void connect() + { + try { + final int port=666; + final String host="Galactica"; + Socket Sock=new Socket(host, port); + System.out.println("you connected to: " +host); + chatclient =new Chat_client(Sock); + + PrintWriter out=new PrintWriter(Sock.getOutputStream()); + out.println(username); + out.flush(); + + Thread x=new Thread(chatclient); + x.start(); + + } catch (Exception e) { + System.out.println(e); + JOptionPane.showMessageDialog(null,"server isnt responding.."); + System.exit(0); + } + + } + public static void initialize(){ + B_send.setEnabled(true); + B_disconnection.setEnabled(false); + B_connect.setEnabled(true); + } + private static void Build_main_window() { + Mainwindow.setTitle(username+"s chat"); + Mainwindow.setSize(450,500); + Mainwindow.setLocation(220,180); + Mainwindow.setResizable(false); + + config_main_window(); + main_window_action(); + + Mainwindow.setVisible(true); + + } + public static void Build_login_window() + { + loginwindow.setTitle("what is your name"); + loginwindow.setSize(400,100); + loginwindow.setLocation(250,200); + loginwindow.setResizable(false); + p_login=new JPanel(); + p_login.add(L_enterusernmae); + p_login.add(usernamebox); + p_login.add(B_enter); + loginwindow.add(p_login); + + login_action(); + loginwindow.setVisible(true); + + } + + private static void login_action() { + B_enter.addActionListener(new java.awt.event.ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Action_B_enter(); + } + + private void Action_B_enter() { + if(!usernamebox.getText().equals("")) + { + username =usernamebox.getText().trim(); + L_loginasbox.setText(username); + Chat_Server.Current_users.add(username); + Mainwindow.setTitle(username +"s chat box"); + loginwindow.setVisible(false); + B_send.setEnabled(true); + B_disconnection.setEnabled(true); + B_connect.setEnabled(false); + connect(); + } + else + { + JOptionPane.showMessageDialog(null,"please enter your name: "); + } + } + }); + } + + + private static void config_main_window() { + Mainwindow.setBackground(new java.awt.Color(255,255,255)); + Mainwindow.setSize(500,320); + Mainwindow.getContentPane().setLayout(null); + + B_send.setForeground(new java.awt.Color(255,255,255)); + B_send.setBackground(new java.awt.Color(0,0,255)); + B_send.setText("SEND"); + Mainwindow.getContentPane().add(B_send); + B_send.setBounds(250,40,81,25); + + B_disconnection.setForeground(new java.awt.Color(255,255,255)); + B_disconnection.setBackground(new java.awt.Color(0,0,255)); + B_disconnection.setText("disconnect"); + Mainwindow.getContentPane().add(B_disconnection); + B_disconnection.setBounds(10,40,110,45); + + B_connect.setForeground(new java.awt.Color(0,0,255)); + B_connect.setBackground(new java.awt.Color(255,255,255)); + B_connect.setText("connect"); + Mainwindow.getContentPane().add(B_connect); + B_connect.setBounds(130,40,110,45); + + + B_Help.setForeground(new java.awt.Color(0,0,255)); + B_Help.setBackground(new java.awt.Color(255,255,255)); + B_Help.setText("help"); + Mainwindow.getContentPane().add(B_Help); + B_Help.setBounds(420,40,70,45); + + B_about.setForeground(new java.awt.Color(0,0,255)); + B_about.setBackground(new java.awt.Color(255,255,255)); + B_about.setText("about"); + Mainwindow.getContentPane().add(B_about); + B_about.setBounds(420,40,70,45); + + l_Message.setText("Message:...."); + Mainwindow.getContentPane().add(l_Message); + l_Message.setBounds(10,10,60,20); + + TF_message.setForeground(new java.awt.Color(0,0,255)); + TF_message.requestFocus(); + TF_message.setText("about"); + Mainwindow.getContentPane().add(TF_message); + TF_message.setBounds(70,4,260,30); + + L_conversation.setHorizontalAlignment(SwingConstants.CENTER); + L_conversation.setText("conversation"); + Mainwindow.getContentPane().add(L_conversation); + L_conversation.setBounds(100, 70, 140, 16); + + TA_connversation.setColumns(20); + TA_connversation.setFont(new java.awt.Font("Tahoma", 0, 12)); + TA_connversation.setForeground(new java.awt.Color(0,0,255)); + TA_connversation.setLineWrap(true); + TA_connversation.setRows(5); + TA_connversation.setEditable(false); + + //SP_converstion.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); + //SP_converstion.setHorizontalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + SP_converstion.setViewportView(TA_connversation); + Mainwindow.getContentPane().add(SP_converstion); + SP_converstion.setBounds(10, 90, 330, 180); + + L_online.setHorizontalAlignment(SwingConstants.CENTER); + L_online.setText("curruntly online"); + L_online.setToolTipText(""); + Mainwindow.getContentPane().add(TF_message); + L_online.setBounds(350,70,130,16); + + String [] textname={"george","andrew","bavly","maria"}; + jL_online.setForeground(new java.awt.Color(0,0,255)); + jL_online.setListData(textname); + + //SP_online.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + //SP_online.setHorizontalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + SP_online.setViewportView(jL_online); + Mainwindow.getContentPane().add(SP_online); + SP_online.setBounds(350,90,130,180); + + L_login.setFont(new java.awt.Font("Tahoma", 0, 12)); + L_login.setText("currently logged in as: "); + Mainwindow.getContentPane().add(L_login); + L_online.setBounds(348,0,140,15); + + L_loginasbox.setHorizontalAlignment(SwingConstants.CENTER); + L_loginasbox.setFont(new java.awt.Font("Tahoma", 0, 12)); + L_loginasbox.setForeground(new java.awt.Color(255,0,0)); + L_loginasbox.setBorder(BorderFactory.createLineBorder(new java.awt.Color(0,0,255))); + Mainwindow.getContentPane().add(L_loginasbox); + L_loginasbox.setBounds(340,17,150,20); + + } + + private static void main_window_action() { + B_send.addActionListener(new java.awt.event.ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Action_B_Send(); + } + + private void Action_B_Send() { + if(!TF_message.getText().equals("")) + { + chatclient.send(TF_message.getText()); + TF_message.requestFocus(); + } + } + }); + B_disconnection.addActionListener(new java.awt.event.ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Action_B_disconnect(); + } + + private void Action_B_disconnect() { + try { + chatclient.disconnect(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + B_connect.addActionListener(new java .awt.event.ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Action_B_connect(); + } + + private void Action_B_connect() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + }); + B_about.addActionListener(new java .awt.event.ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Action_B_about(); + } + + private void Action_B_about() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } + }); + B_Help.addActionListener(new java .awt.event.ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Action_B_help(); + } + + private void Action_B_help() { + JOptionPane.showMessageDialog(null,"multi-client chat george 2019 "); + } + }); + } +} \ No newline at end of file diff --git a/Client_Server_Chat_Room/src/client_server_chat_room/chat_server_return.java b/Client_Server_Chat_Room/src/client_server_chat_room/chat_server_return.java new file mode 100644 index 0000000..37ca131 --- /dev/null +++ b/Client_Server_Chat_Room/src/client_server_chat_room/chat_server_return.java @@ -0,0 +1,85 @@ +/* + * 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 client_server_chat_room; +import com.sun.security.ntlm.Client; +import java.io.*; +import java.net.*; + +import java.net.Socket; +import java.util.Scanner; + +/** + * + * @author gogoh + */ +class chat_server_return implements Runnable{ + Socket Sock; + private Scanner in; + private PrintWriter out; + String message=""; + + chat_server_return(Socket x) { + this.Sock=x; + } + + public void CheckConn()throws IOException + { + if(!Sock.isConnected()){ + for(int i=0;i<=Chat_Server.Connections.size();i++) + { + if(Chat_Server.Connections.get(i)==Sock) + { + Chat_Server.Connections.remove(i); + } + } + for(int i=1;i<=Chat_Server.Connections.size();i++) + { + Socket temp_sock=(Socket)Chat_Server.Connections.get(i-1); + PrintWriter temp_out=new PrintWriter(Sock.getOutputStream()); + temp_out.println(temp_sock.getLocalAddress().getHostName()+"disconnected"); + temp_out.flush(); + System.out.println(temp_sock.getLocalAddress().getHostName()+"disconnected"); + } + } + } + + + @Override + public void run() { + try { + try { + in=new Scanner(Sock.getInputStream()); + out=new PrintWriter(Sock.getOutputStream()); + + while(true) + { + CheckConn(); + if(!in.hasNext()) + { + return; + } + message=in.nextLine(); + System.out.println("client said:" +message); + for(int i=1;i<=Chat_Server.Connections.size();i++) + { + Socket temp_sock=(Socket) Chat_Server.Connections.get(i-1); + PrintWriter temp_out=new PrintWriter(temp_sock.getOutputStream()); + temp_out.println(message); + temp_out.flush(); + System.out.println("sent to: "+temp_sock.getLocalAddress().getHostName()); + } + } + } + finally{ + Sock.close(); + } + } catch (Exception e) { + + System.out.println(e); + } + } + +}