From e0da59591f8a160d4b02e9516f7756c6fab35b1f Mon Sep 17 00:00:00 2001 From: KonakovAlexei <46484735+KonakovAlexei@users.noreply.github.com> Date: Sun, 20 Jan 2019 23:17:43 +0300 Subject: [PATCH] Add files via upload --- homework6/homework6.iml | 11 +++ .../out/production/homework6/ChatClient.class | Bin 0 -> 1032 bytes .../out/production/homework6/ChatServer.class | Bin 0 -> 1555 bytes .../out/production/homework6/Client$1.class | Bin 0 -> 1580 bytes .../out/production/homework6/Client$2.class | Bin 0 -> 1120 bytes .../out/production/homework6/Client.class | Bin 0 -> 2217 bytes homework6/src/ChatClient.java | 28 ++++++++ homework6/src/ChatServer.java | 39 +++++++++++ homework6/src/Client.java | 63 ++++++++++++++++++ 9 files changed, 141 insertions(+) create mode 100644 homework6/homework6.iml create mode 100644 homework6/out/production/homework6/ChatClient.class create mode 100644 homework6/out/production/homework6/ChatServer.class create mode 100644 homework6/out/production/homework6/Client$1.class create mode 100644 homework6/out/production/homework6/Client$2.class create mode 100644 homework6/out/production/homework6/Client.class create mode 100644 homework6/src/ChatClient.java create mode 100644 homework6/src/ChatServer.java create mode 100644 homework6/src/Client.java diff --git a/homework6/homework6.iml b/homework6/homework6.iml new file mode 100644 index 0000000..9465dd8 --- /dev/null +++ b/homework6/homework6.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/homework6/out/production/homework6/ChatClient.class b/homework6/out/production/homework6/ChatClient.class new file mode 100644 index 0000000000000000000000000000000000000000..15f6c643096eb891a82fe497a0f215eeb10c18d0 GIT binary patch literal 1032 zcmZuw+fEZv6kVqsI@4iFX%)N|@q%qpiXc`ga!J92q>5=t3Ho4$GJ%0IL)yXMtAC+C zz%vh6Vxu46Q+@GkL|kV;8-fo#Gkfo~_gZVu>G$7Xz5y7+jE-)kG^E1_VNf3TRXk8J zq@x2F6~h`H>d-JE<53-tFs9b}QDl zXS)t-inngp1&l&|-SqNR+j3+_q~w{E%@^kO-{D)P?FjTH-<-GSOEqh2oO0nmWdXh9 z?$j#Qb6aYUwt0r+rVL!dWr1*2T3UDOo`D$R1}>t9V1JiwFPznGmz__!v=h;^(E8MB zwhmhdt*<{m$l|zx941seGcbuMs`ICv-GG5hNE&s&|BUI$JKZCSbV zND0*JdcNw`tyTYnzCOcJdSCafEw10%wMnKV{n62FUKr2c{bJ3mSm@_1>*iGrATHMe zn(!kTb3^~)ULu6tB+n~E{Di^`Fr98dq~n1D1kH1;O@x*kh%W6j8Sq8we1ag2kt8>KqA>1afRVsGADR3Eh(OjK literal 0 HcmV?d00001 diff --git a/homework6/out/production/homework6/ChatServer.class b/homework6/out/production/homework6/ChatServer.class new file mode 100644 index 0000000000000000000000000000000000000000..c29c3cbda433d76f977273781141163c277595e0 GIT binary patch literal 1555 zcmZux+jA3D9R4=9-7H(urZiYCZ4ks1N}?h~Tc|<|P)$;pM40OEuuXT`g*53TTUs4Q zi_Um?k!O5x#;3lv3{5gb>AO!Sul^^_sP#LWKsrnw_FTT-?fYHM{`udt=KwC?mX1R> zt72S-2j_x_Bcb6f9dF|uiJaH)u8Ip9CUgXGQO8NVC-L`nYEG({(hj+Cv zA1DZ1vP-rzt-u=_yRE>NEH79JLTS5XWmlKytxDdUFA@o-%LTJ|+pO5~-T@T~hSK-U z2WG-9CuU|->ji7YvCE|?dUBTRssbaOTr!=URe4}lBwFQ3!Qr-1$#N2HQLbFLZ#k|4 zPYMS1DZCK%qU8ZrFlYt>bn4p{At5l`%s*0q6kC0N362FO^)`oZ@*QltAEwS7B zuJx1H5r2$F#dA>;4e^xdj`%$)b_qNc&qTBJbL$7GA{wnn@pxRtH3Qdi!@vwaR&Y}M zBAT?LLhIXCts1m`*m}ecCX2RJa#-s993;O_45X1UkVVA6EUvN&J$hx}rc84}{M!1F z!M4e3E6Rf;^*#43mjg3$Z;fc{VK-B;#Ts_Yrl8*q;Pzm4{+?AJtx&gqZYN)`aFy~) zmGWA9!hEqA*{^*ba$i&(Ynh{2UZtPzpxtD19k$pqmpL&nbJ_pd6& zvmmFH4q{_HrtNgc%x!#o1bh3@>}s-Du38K38~RLvzaX!iOl#ei`MXTq+09qXf`t=& ze24g=!N*B@h;Tg&D1X6+0MU&zbtp<&$u!}a8yNk!4sZGid|`hLfwMKJ8F|roX(Bi` z9@gtPaA&**ovUP1+{#EU%1yBDu<{TicORpz5HqafD<7=(eN z=tC3-5u?R<3}BL#xXcP%VGUB0&R~R5k0FEOxJ4g%*5y-ryi1u$*#c!2Wj19+9AV6( zj6XsK$FN5HE1th$eTNzS2IFVQ;0SfR^rCf6)=O*+ei!podxIX1a}VH4`WR(LG^~^B z3HIo9;?oH3k+N4sScOOBzZJo(iqLg_v+e!V9&P+x1r?{DP!#x^K7x1yr`vtTMYr#C n&_sByj=?+I4B&AKC;!)=okn$;gh3N3;!T!}6M`|W9-R3ftgw(p literal 0 HcmV?d00001 diff --git a/homework6/out/production/homework6/Client$1.class b/homework6/out/production/homework6/Client$1.class new file mode 100644 index 0000000000000000000000000000000000000000..4741b53332d5ca419b589ebba49507192392b326 GIT binary patch literal 1580 zcmaJ>ZC4XV6n-WN*|@F>6!8_s8Z`+@z}iZUwXHz}4fqm@J?*DqnFDKGX{eZd#bJ@U4Yg0;O%~m$lqf0>iE6a$DAYsn_f6 zIP~;-Bi)Yzw<9o=>}wU*+f=BS+r@api^@~9Yc+jO>7MSkr@i=&z+~m4vOjWPtm=wD zp&6_Z$g!5E)lzqJRfWrP)$c(ITYo1fA}dz;D^~sZ(;2=A~ZqRa8za8~rtAG@m#wzuHmhH++tY&L( zA$BqF4#n3W{@oL-mRa)4O}s}5*u|lVVf!5pzee#7{y+Sa?&o*m7!-LJ6z5=ZJjEJM z6Z;udah7lJ7-pEai3@w^PEt3{+70H}6z2u52N>suDfdeXIb1}UbAd1TWd;Ii$}x2E Sdy1dXW~w^H5(7=~oBkgt?1f?g literal 0 HcmV?d00001 diff --git a/homework6/out/production/homework6/Client$2.class b/homework6/out/production/homework6/Client$2.class new file mode 100644 index 0000000000000000000000000000000000000000..28d4e64a7c138e728433458763861be280e6396e GIT binary patch literal 1120 zcmZWp%T^OX5WSs*3=D$_Pfz2 zK)-Uyv85Z@=4{sv<^_h+$HsG!nN@*U$y=8KiL&j=mHPIYti3hY99nwHo@F|#X3bW5 z(->1o0>+Z-%38@WeP2@5n+T~Q$wX^)molxAiw`PKNZ2vmjeI4j+3p6Nx+;NbZ7rKS z&AfWWtJf^KXe;E-MiG-Lj?5NZ%kg~1Ez6+lt!ubvpcnTIbfd>W0!gI~8+d>j4YLO3 z@X)|K9%*=N;0c~;C>eN$1%Wn|NNQL#@Ek7;ETNA*YoMiy0?AXRuhurD6_EX@=}p~r z8?A{qLIlRs=X!d+TGa^Mv@GfSsi^{|G;%VLOvAe#*iOD;nX0L5PIrjeY823_roSRT zk`X)mj;viOYGwj`>1LXJp?H-tTFCh(4O zayZidX0fd>sRb?FarC2CnjQ67p0v8ZT zCe>U4t{gJ&P=rq}`uJ}@cO~jku8C}JA0j)kk4W|hqF+PD0m?WXffO!M4uru84B|31 z28AhkHZg?ZX2Q?(Q4llP?+}NG9iVOR=_(TrT zsj#EO0F|!y&j^7Dh?@1of{0XN)7BoU{#dN00Zj}2r=E?uQy2)7I5TOf{-A!f zE`hb|TK)ikl)BGMAj9KBS&Mt;p2t4t>~rqTKmY#qH-LBWTQ5dX)wz5r%U5!&>39`O z3d=ffV?{?A_j>U)?km(qvZ_PJ12J4vc&H?{wtxy(oW>uOAhD(ow|E zA~D5rLl#SPn*wGlJW|+F*w$cFUDx&&8m8~tzJ`S3Y8a^Pn2*g$J8&A6x@C&NoQ9O+ zw%UP)o~Eork&V-=-18hac<4DnXq5@JJ=@%@5~dKDG)#A^vKmT>(i`bl1S37~xK40K z!}YPq)U|_3y=m>*!CcI@9x%ez-1wS?iXi&cGZZ7#-OrTR++)GN)o{&g!Maz$Q-Y4s_v(l4C$##8|}PSj4!7#+SPxPiZ7(t|f0kco9}T)8ar(o|&Zh z^j|nzrT8_u-*#QO$Kjn%`GM(?NficZ@L@?kYP5a6UA+uydtSR0aBxQWegY{ZWc>J* zkhu$Y&P%wntKrVRb63#V>@wF0K+7P5B&DtL5mMzBNUu*ELLDJ<04+TJf!^?xvFA#>5c{M;JK3VEIoB9%87YE3TKRDut?Hs)nh0&iF}8 z;TB)?9^7CCGcdRslx8u29IMGwKR}Cq%%XtzFoY%6w#s|3jcGLLag!cpdd%{F5)~q` z5_(N@m#-OmYvI={e|{2pm)}Js{-d}@VMO7!BCe*8O;XEC8?k~KPYK%QnQb3yzAXD8 zUU^PgBFt8@2IFRknv;x3-0h=(iO$kY|axcUsqC7~tD zVux_8LramZ1(Q@vFH67z!HT#O3s^b{Sn3okWhx{dD5B&uH2$a)y~17iNHJ{kcYZ|0 zq(fmk#55uUd@Ll=`4fCf2}gzGM5Lspn>}4B;@%Mj>ByTtX)Fi@#Q6-17vUsc9*362Z*? literal 0 HcmV?d00001 diff --git a/homework6/src/ChatClient.java b/homework6/src/ChatClient.java new file mode 100644 index 0000000..4fe7b57 --- /dev/null +++ b/homework6/src/ChatClient.java @@ -0,0 +1,28 @@ +import java.io.IOException; +import java.net.Socket; + + public class ChatClient { + + private final String SERVER_ADDR = "localhost"; + private final int SERVER_PORT = 8189; + + public ChatClient() { + try { + Socket sock = new Socket(SERVER_ADDR, SERVER_PORT); + new Client(sock, "Клиент"); + while(true){ + if(sock.isClosed()){ + break; + } + } + System.exit(0); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + new ChatClient(); + } + } + diff --git a/homework6/src/ChatServer.java b/homework6/src/ChatServer.java new file mode 100644 index 0000000..984c5ed --- /dev/null +++ b/homework6/src/ChatServer.java @@ -0,0 +1,39 @@ +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; + + public class ChatServer { + + public ChatServer(){ + ServerSocket serv = null; + Socket sock = null; + try { + serv = new ServerSocket(8189); + System.out.println("Сервер запущен, ожидаем подключения..."); + sock = serv.accept(); + System.out.println("Клиент подключился"); + new Client(sock, "Сервер"); + while(true){ + if(sock.isClosed()){ + break; + } + } + serv.close(); + System.exit(0); + } catch (IOException e) { + System.out.println("Ошибка инициализации сервера"); + } finally { + try { + serv.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + } + + public static void main(String[] args) { + new ChatServer(); + } + } + diff --git a/homework6/src/Client.java b/homework6/src/Client.java new file mode 100644 index 0000000..1f5f1b0 --- /dev/null +++ b/homework6/src/Client.java @@ -0,0 +1,63 @@ +import java.io.IOException; +import java.io.PrintWriter; +import java.net.Socket; +import java.util.Scanner; + +public class Client { + private Scanner in; + private Scanner input; + private PrintWriter out; + private Thread threadIn; + private Thread threadOut; + public Client(Socket sock, String name) { + try { + in = new Scanner(sock.getInputStream()); + input = new Scanner(System.in); + out = new PrintWriter(sock.getOutputStream()); + } catch (IOException e) { + e.printStackTrace(); + } + + threadOut = new Thread(new Runnable() { + @Override + public void run() { + while (true) { + if (input.hasNext()) { + String q = input.next(); + sendMsg(name+": "+q); + if (q.equalsIgnoreCase("close")) break; + } + } + close(sock); + + } + }); + threadOut.start(); + threadIn = new Thread(new Runnable() { + @Override + public void run() { + while (true) { + if (in.hasNext()) { + String w = in.nextLine(); + System.out.println(w); + if (w.contains("close")) break; + } + } + close(sock); + } + }); + threadIn.start(); + } + private void sendMsg(String w) { + out.println(w); + out.flush(); + } + private void close(Socket sock){ + threadIn.interrupt(); + threadOut.interrupt(); + try { + sock.close(); + } catch (Exception e) {} + + } +} \ No newline at end of file