From 7ad01ea31273d83f81c25e0996447f31ce5e8a59 Mon Sep 17 00:00:00 2001 From: Sebastian Rieger Date: Wed, 1 Nov 2017 11:06:52 +0100 Subject: [PATCH] included build files, mandelbrot example --- .../build/TCPPerfServer.jar | Bin 0 -> 22055 bytes VerteilteSysteme-Examples/build/TCPServer.jar | Bin 0 -> 22053 bytes .../build/TCPServerMulti.jar | Bin 0 -> 22062 bytes VerteilteSysteme-Examples/build/UDPServer.jar | Bin 0 -> 22054 bytes .../build/UDPTimeCounterServer.jar | Bin 0 -> 22064 bytes .../build/build-servers.xml | 63 ++++ .../src/verteiltesysteme/mandelbrot/MGui.java | 345 ++++++++++++++++++ 7 files changed, 408 insertions(+) create mode 100644 VerteilteSysteme-Examples/build/TCPPerfServer.jar create mode 100644 VerteilteSysteme-Examples/build/TCPServer.jar create mode 100644 VerteilteSysteme-Examples/build/TCPServerMulti.jar create mode 100644 VerteilteSysteme-Examples/build/UDPServer.jar create mode 100644 VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar create mode 100644 VerteilteSysteme-Examples/build/build-servers.xml create mode 100644 VerteilteSysteme-Examples/src/verteiltesysteme/mandelbrot/MGui.java diff --git a/VerteilteSysteme-Examples/build/TCPPerfServer.jar b/VerteilteSysteme-Examples/build/TCPPerfServer.jar new file mode 100644 index 0000000000000000000000000000000000000000..cf29236866d46e8a3060f303678dfd634df1a141 GIT binary patch literal 22055 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 literal 0 HcmV?d00001 diff --git a/VerteilteSysteme-Examples/build/TCPServer.jar b/VerteilteSysteme-Examples/build/TCPServer.jar new file mode 100644 index 0000000000000000000000000000000000000000..45eda28b6d04ffb967dbf74a0bf0163134fa867e GIT binary patch literal 22053 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 literal 0 HcmV?d00001 diff --git a/VerteilteSysteme-Examples/build/UDPServer.jar b/VerteilteSysteme-Examples/build/UDPServer.jar new file mode 100644 index 0000000000000000000000000000000000000000..2d232f28c633396e194c0d9d054ee09218d3431c GIT binary patch literal 22054 zcmbq)W00j?mTp$1S!q_ z_I}p0BqI(81OWg51_0ous4EWe4T6z7LqtT?IVMWbjG@@0iW@}&6P-Q=L%6dynq7h|H2+KW4wRc< z!x!JY-1WzQECm37{9jfL_q`M+LpujUQws+}dsll0LrX*I{}RuY{pXkb{ojdO>RK5X zTIktXJN$#@zZydQ?=3?Vb zANHEx`mZIpQ0ZIf+S^CSSz6D^AbMVsAXZO@u+4W24<3r41hF7+n@BhmtM=aeK|*3% zk3l=sJ3JcN-Uy>1L=67=1n`Q#S)Zk4psyTZ<>c%*a?QM}=l1gW`k@2rtT;|PFD(EI zJ`^F~f-cmHAQ=_)*4yxt+wAgnvxa=LOa}EZ>KWX+)t$qnvnJ9XleXGBS8|7DKa)kD z_|IrGExIO%;nGzY9^Evy{exz@^Py75nm7jawlVGXVG^vpD#(OBa(F>#)-APvLOj$g+3<T>%#G89tN@HrR*Z(TfTqkjy1|h-1xy zeEB6!MSL)#h36Eh9SR|o&X)yd=iE-z#M4hQy-d6e2(1Al&+%5Y1#t^qq9Anyevl$q zup=-r9PhtI;4K+(T@zO|6E0JX6Gu^3wyJM!#b{U`O%8>N3%kQR3pg5XF#h9W|Lw3r zy|09lLIVIieBVu?|KYGn3Okzq?W83rgKKCU*?#?Ms~)@c*MXx0i#B}m6+~vLCBQdO zg~#!Sg8zZ$hq&~ILb`eu%i)O^pq$v?cOGmNy`0z`-(GBkWY^MX3e_uH7^X141o&0VSyz% za#O{)#9$-5l6bE~r0UI#!>HBC+2r8QYe=%lWO*a;b&1HPa|}*B!3zK}AZVDy_6e(+ z!t(r$T70u1xsgrO7lH~00Nz^V*ptL@OIj_*5;mgYLA7iM@Y5-s`J_=J2ok8C)dG@N zxqw@sfuK2~Uik83%J^2}B)v6P4pX9vXVsyP&;#3&gx_l^4HpV>G9AhNf^kF)W_!}H4m5_sAff^l1G}j2N7tNqXmPFy*2Bv_QFbB8Kk5?aV@UFAyOkb|-4j}uJ~g3y zquWja$fhIP415d37I5KGtaMeqhS&O>K_;Y{?wDaZK+`>)m5C_WrPPGRDIY$rgaEL% z!<5tj)PgB`0?=Pu^=&PY1w{U_|9n=iEui z!B$^ddM-M1!$1e@-Z9vized7>VN%~~&!;d4;5c~flUf(4pO;sao74TxUv$<1tnV_- zYoc4Q7<_v=MagcD*#|_>I^K-F}@k5$jQ?n@?%GE*q&BmkvIt z7Fs?O$_dxSVSxsE&h=n@L3d1Xq4Z{Ld;Dlm(jpaUbRo0c{&)s}+`8<^a5BqwD-t@Y z)ND(wS0S2ft3y`2UI`K9o#EXL&7+q!qzqTs5>Uc5daC738|avF00zC*eYoB?a5su! zD~JGfyYG@e9F$m_9~fPhD0ac!u$u$F^d$FSNsv-0$3V%#|7Xk_=~NOIlAvRcIN2nonag{{l+b5F_d`{-cQjr{%UiizLbotrYhjZxNPzPd7azD1GRk#cun%;!Ph@L64Dc zZi;LpvBs?%#CvUkFOuftajP17j4*bjbMxmv0AKaXR4@TP*4t_Bi}8(39zhL94on#v zj(jdy7{1RaAd+FdTeR1j@8kT5^c`7CH&*Y{-BH)rRtRWzMv*-F#9u7|S6xu=%vwam=u;<0kq>V7yV6kah}?NT zdXwwA7r{es^7jsdB`;KfJzwb0`0H2vH*1Y&1=^_3gj$Y(_T8ffdyPt}M3u9hR@+lI zHUQShQh#dvS*;q*$FaC93My)_HUh3egkJCk1E2l%jlmtAXImuFpzEaArFdBWD4{(5 zII@#wNPrTp0b0q*kB?E0wu13dcP|)+PnRc1>h5%XEyUL* z>9sn_!cdlUDfH4xIAN#Avj}cBC2BPMCxVGPPhaJvifKR9wLdu3&JTBKRA_0BU49O| zoHMfN#eu8#k^_DGY^_ATiV-=MvX&9&;!d*HRV~X@8r81j*grLxu*0WRn9!Qp02G~+ z#!}KOtEk&Q@@~|wJ5=3B$dySv3AatbFyi_hg{RkYOx~=J&UkL%XED2SQDuHbW%8C& zKdTmt`fFd~`iLO~H##Nb5`~H@b(`P$U1#g0=qT!Zq0J32>g+wZJakR%&9+=zL!l*o z$oM@AV5J#2x|$uw7zn!E+jM2}9A-m8m9p9-WWG1{0L5?t2|w^$kY8(@&{zhhL#NXs znYHFlMLJPNLS1p4-LB0dn{~z0B8au-Ma6rsjnX99WQBOhk%UAuSdzWhK<)=!0 zJBN#K+Jfc-r>x0!sCO(8uIY%K1Afi|b}Z$)9Su|JL(Nz-4S4bVazDgG-OQEHqIFi) zz2qmZVLn>$8lB z^{4L^jTKb`OXpx@4dMj(@jpX>eoX11OYdd;2HK36OW);+irRtvEt82mQ1|WuquqmY zBk2xKy**}OqOEKF2diqgY`1SIA4)q3!kxc#rTOfJvITL=DCZ^8!hrk3!%VjsYXE!u zS4OkWkX?sl%D_Eyb;G3BafpnzA?%ua+WSz=YVjkp1Qz?O4TY=bO{>|L;K0rkD)IHu z+vUA@L)T>wv$o0+IsGVN-6h=S6RWjW7>-w$aO9RS7&Tq1S2wChNX-LYWzVmdOKjFx z3wy)Ehn3J@Y;dZ+lFzVQ5|Dw@q1=R%L&xn_++xd*j@?g7V}3JY z$KORnR*xURxVG6*Y^zAL{Ma`2Zo_Exp<4VkCMD0PpR)_S%F;#jt_KeGFkS^d&osSR z{ltB1b}T#WKEzRD#O-mJL9&&^8yu`uS9jGOzs5R3J7Sg*T*U6qG+EsnC$4^GS(DrP zbXh~TcB8EEG4`N;xunS=l#-%ZlULm=p>q5g(iB$S9xE|P>nhAIOb=#1gd?1M$#6co zB&j;tp|w6*k8A{fkgBH?kd)eei9!DYcXx!@g7~tB*{UQR*#Sm@IK(xYgJgBj63e1D zF1Cy~g;&`1TB=BE`x=2t&35=axZV@_K^OG3A_w>Rf{;U*aH+0cQc+&P;)3;iB7bWy!=1$V^*Fm z=2QyRn9^fvd{tyIMksEShZD{XtO}o%6uZc-d_?jXTwngMBUA^Q zo9D9HB&%KFs(GYsiYGh+8z!eJ;*;v8JH*Htko}c1ioK$jqEJ7 zEZZ%9+fHD;y@6sh|0NsS5I75 zQ+J)(T`gZHC;(2o{yxY)n0HDm4HiQUWMN24WGW@Ts^jXD7A^aQgBZKPC;O$5C#wZ| z1Kz?o4y)mwB)>y%!SS6AuO zq!uaGZZ(wutS?=Jc30MXO^xIDEmtZsX`1JnU{bCK*2aW?6&1zE?Ud_NLKz7mpaF{d zM3hxO;`?xkF3$bjd_Fe8BWEnZY1~6IgHSY1W*AaNX#v?p>!$)=9Cz2seDiZbb^}tI zSP@%vC`~*?UL&>pnWlW8l3k%gWq^nqi>1ek>UlaS{!%KR5NiK!;R%c`-C}e(-t5}A z87z}A3K*GJoZo^qHLUl5JOBA^ag~G9h(onao@j0~gdJlH6s}RCmQQ@!D=~#tb=7V< z5-}U1njEC<`*vpcQ@Yu@`?xJ)t{AsjaH>?aYnmg3Hq#zP~}9O|X7@Gp*f^QM4x9 z#*Pw8UC3Ykh)!?4HF0L*BE;~1J>L+L$?igjLnr!->ko(bL_9O;)F{SO2N{uTx$tY| z%E&Tc7B21FrYER6XuDchr@thv^|%|xn%-tbQw@J;+nmt6NV^;KAAv4USrj;rkGEf* z8eSPDl7d%?nL?^Fy#BUevcCsG3{W3j?{|Rni?{sn$@2R4{bVuFpm8RoNlangRHNb_ zV=y8<<(8-7lF*26ep@^4zN79|^pFt-t#bN969_Z`!RY5JWxAvhVa{ua4(4UjU%6ir zCs0tkhV5_g8Bl47VIcl_9yrX+lv^b(aNs$!R_}!~jkQ{Oum4XcIG;_x;Q9qdmvu+{du-DZMwI#vLPvL=v!Ave#z5RnGm8VI+` zHn3lmVvelo5;Aqe5|+_pm5u{Vth!DL|41j%?#rPyfOdN5+RBqQHcU!3Rnt*k&3k|( zm@PA_ySSB`4@LNEFWs1)z(E<8CpK;-@uy|C{eNBf4pXe zZ%HiWZu_;Zq*xnGIZwWHrd)A%c>>ae1+efzA*}U21em_`u06QRBE66`Ed?k#VRCoX zwpm=)R__MW+;i`)wP!v#Nx0!}tr{Oc_?z365ok;~oHrDxLs_KYsybLq9W`q2DoF}- zIdpg&zi_{z>KPVw8qI?@+`H9`!RBo9nz!<=-4$BCLPG6GGzzo{8fy~34tfV--P7Hp z7E)d=mKyGC9vO;9Gxn84gG(uyU|I;hOU~&h(|s28{_N8kj7B=7lzOOmrAkm8PRzfK zM&#nnWf@bukLbv?xJ<+Czswj-4@uRwGZHjB!S0aGh|X_uxuvzg}hv9G{k-_>JxCU$H+25S*-*4 zRIc|P_g->{Lx_UGgTz3dp}c|xJR&>Ixw&&tV8~#kHME>fQE@?NnX;4i1JPzVt5CF1 z`T{kPdKBBG2t;HxuQmup_c27XuOF$(CH^i0n3 z71)zQ4fy%UVkyDPM3@Nqs5ip8fr&vv#KuBvTc(CDcJ!pIqw_#4nTDkS_(6Mri-@(KeltqEh=l)`b5rPyhF-$3NCD6!>N2 z4eh=QF_M23HU94D6*ZMH6cIO)pd`>hNOIzTDw^gn_{^GEngf@Ar*8~?ipVi6R_Qi( zcN-8%UGkK8@p=howJAwz)FxVYKGVD3p*-&owK)IufydTRjaz3m-tu^4eaej6`uu!B z0kGa<$FziMdUPRaJ_Fa{EQZiJOflO&w~HYa&a@eD8or2-ply=d#>KsxE#}u}>C(Si zL7RGPq8mG7Ux#C3LyeU@GuwZAY#jnW1?rRrW4?wAP0N{*q{h-saji%aSaB`ogxEvs;R36+I%9md3G z3b4*adg!;Nzw)TwF4v~<@yhOQKb5MF5U}*z1bTDOFT;dds3bW`+*%3e8y;V*(L5HA z0kz?(J^WP<15X`DH&*x|Ah~njkf<6FJJBW4ET~mPr&<2d!JzE+6|MdxW;7xxtvVNl@y2Q0Z0{;Vqb(Wbe6@!}f$}t)YTPt$-`D!)^wA7L^J3-n zG@?cYOaWMSLvT$5cDm>q>{egnUnW4P*E~&C?(;Rb?MYGWivl=nIZb>}e41-|ChQ7x zSVQ)#DaSjVc|uZQFelFEq2v}*9)rxOGII|{ec9>qP!7jRXXesxZN4Iie)!wf586$k z+2O&U<;bMbQzSsL$JegPPU>GLGfwhWJtUH$K%5u%JW`6Ug{FkUpsKAVj8ROl0D}gY zhx_wU#~!@amdANlnIKB|4#YWe_fE7zdDtib4YB3n?|`GsB1{pR)TEEtB(*|a2qQZ! z{NeFJr!JIUd4V$p{NYJ3Jz{f?67w;ox~DJPUL=klWMXdkp72DpPceq!cw)eDwD?wd zdDr?b2-dO!2z||hUw(3KawTHhjk8mqz9SB)El|$E3{vmT5V(GbFt$nY>*SK10@l#< zj_xwTk@pkK6j7(uM)fD?i52{aV)Bd}pWxrw!3EbmkT#G^>{*h6iz6DNdfbY@4V2Q= zsA>^sn#rTm(svR=+kp5e-B2StlDbF~OYuHl=Fgw+8N7zXBOMZaoP5@(mcyJ%4cZ3gQ(7SDs({#ju~z0q zf?0^bWFVPfKS9t1LId2 zy?nu8?w8bFH2)0QZy6`6Ex*NVa*@dk!R(4pLOO7<(!rscZYpiS3(<)K__5d01Z{!5 z41Y@EDq2u0)gl)=WI;&G(PdEv24b2ggPM|xuDUzK=1QkYRpf^g2-JA$-2{G5tgcII z!)_b+b4WZw@#v_48j^mNN@UBMkY+hvvNfS}m(?^0W0&Nzp9+wDsel{9XsBPfT0L8m zIEQ<#x3>q?38y3m8XSs1y%Z`VLYFuRujwd>`Sc6ibDTdm}qZ)WiMtA(9Tk1iaMMd5S=0JUjv~D2o%rp8aFjG}c zN2kSQe|ZRKH__>YvPaej(^>pMygb^?G3H-1Q0k7VP=2D8Rr zjCwkqqUMUMgcE?q3H`oOxqY^LK;uh-@zC)q8f9@hjv&c4J8%!~&G5^PfIXo-$e+K= zhNDui`%V?L^p#QO^Jo=rl6?jqCNM`OHG1LMb!Mm(576+oI+&IR-z^U)e5b&JlPe>s zlb>@hbC>ly^Y)XeuA!Tur#J5XLx^t>{T4U+*NLVgen|>lGwi{b+F!i;I<{-16q(*4 z_t5uyN+g~a*gPmA|2R43`13$=PwZO-cLs$38(KA6&6o(`@Zd4m-*m4y9YgKvlljo7 zZP4vO8OWqb;o@U=Vdo-SAB{n#o$}~zq$Oc@i3WuAHjO*f0cj@mOsTbTA$fD zf9BBl7V_I*@rlFGh^yTKJ!8^nczym|;bd1N{Q(_6@=5rxZ&gFx9LMa`iTqI^``nJO z?3|`hUVt8DSKsDnFa_v?8UJopHJ*SxRlE8_hlpTOqsCUlSvFth!P29OR?%nN z&C2J3ERq(@tmmn8ARshz3*&^^%XYNVf2qpn2wEdgY_aUsm37B|>ArQ$NdOcWl5Z>i zz5ZtGEyLXJOYR-%kFhjn%o3k%_|&8geJB;zMBq;^=0LZN;~ZpjxQqCEGkVLfZF_ng zT;ou5mL3iamvWiU?juy}$-d1g;=Wdc3_A(zL-K^}=k3|IzJ~t0zs*dqHUWe<-$U2mn zc0!%Asdcr`j_+XZnG>?|Zh5{GD?T0;M3RH7O*WbQ+cgI-+?{LtKA2*Iiu~>~SKGY1@K+4#s&6QN71~eFd~#TN4bx zbVi&HV$lZb+Hz~N)h-j0p~5L5$5tk6&HgF_*c!Y;j|02LbWc*86|K110oG*J!=m1O z6KIYr^76*64V4N;^z_HB8#L;tdIzG0dvlHHmcF4oD&lI?!t;RWI@J1ABPIU{@h8M7`B+O3yW?{IL^&m33t z1Nxn}jm~DK+X+w@DjYp|`^yQi>IOJf6tNkLX&Czp^q>8pi+dgC&u`w21Ny)BgMTCK zfA@n5>VNU|Pnec;0?btg4Kb6N1}!i!$quA|da@c78V!Q@P#s6Q-?KgjL>UsrcVzkxwR28sv;dOoXJ6%nT$P48sD-$0R4j={W8};9w zfcR2EBzD$Y3p1=6nt&>IPE)n(kK8^tw$MHHBIUa&ca#CLb2oz5ft?0nPI6VV~LW}{f7 zl7S*4rU@oj8wWcxL?&ix(4FsA)X4iYH*1>AN-xU-`RnHqffimu@5jh$lv~#xR#Qx({4}A0cfP%PVEn%~Go5pWWR-&muU3 z25o;NfI-+DCZ*+mvhF*^M6u$hXvGzpQlLHq{Q|<9anmcf2+!pF1%HpMv5s$ELz$-ZMdPqmtX3mVeB|Ax^p61HI_@YhxDJ z2GE^#+RNkp`gE^uzluUShcb?`-xFdT+*24(9}(r*vi=9ho9m!0TvG7vHlD_ z|3(u}D)1G9m7maru=$~(s66Neogiunh_ISq zMDghA+KCgA%?@=K&epjf=izzupDB<0yTcM)4`JM+H|x+o(?Ubz1kO(!Qy!CJ9Y_0B zU0?1H+eAO1`Jqyfp9oPR_j~eqZrP?lGC!inEO1VtgN%ROzPSq9D4PY-g=eWylAozq zQL3}B?KBz$S3oKcuR+C(@8a?^Tq!n3g296X!s(;Z2aG+XKHy(ss|dpwi=<{+vIZqm z&%dS6l0^x2R~vk8xh$GUZ@^RWli6>z2bU3e>?|%SP`n;WGg*u5w8Wdo>hAhFM)uoA z;O-O$M|SWCd2eNzCgUwcQ?#E8)u|nDRUx)0?sNt+@V5qCG)EK?M6H)P?*M7_Izrba zi77(R(_YhQ>7vTvN~Z!ME;>l;DJnKDp%&5ul7%$}Ms3pl{~q1{o!d zDnXPL>Hi2bn~Nn|3R_r}ecQyV;%s40tcQ?vy;K2Tr->d|BhcEb#g^}($^@N_k`WqH zQS`Kyo1yb#B`W}KH{SMe@1_yk^#G@rcrewbQi8xn8}^~%OQ%3`oI>{qE$O zN@Gs#%}G6ZM$IyN-oK3rfC9uArZ=G+Gri?Y(9P*`+JI5P*p?n*V^UmIcbEqpt&r0i zG6r$FW_65SFtKUsrAZs9@@Ukg> zG5p2)BX7P{%T1$WpV1@D8l3S%XliH`y1<)tx`)>z@L1eFev|Rf=kK?at^tP^a3i+lv+alV zYf|LVu{ulxyBc|lq`4XIi8y+0UhmhLly zT5M7#RIfnVWE`$Z(+>3!Zn&=v@UNG635pQEWxR0k;}=n95nnlC4YInKh)zC>x@m!f zj1H#!KSNV!E5{#);_f82o>S6aT_G?B|qVKVdpa zNW^F+7k)qlFeS+Qs#8gtgR1F)NtS7ZN~-ajy5VK{1J>@xMDd?kAAcR&7tu4xPu)kL zcp^GP`R~E5rS`AxxXyn7wr^HC-FQkd0+~cPt!(%M0!BQ$q|~-MGkDnESh^cFNz}(Xm&E>3A6^@ zS?4pdvU^b%(0&;6;1#^e)9j^U_(vNF3Coe*qi0`Te*?!2 zNvJrFsvxhHAEzNHdAkXX_qnlJLrEZ3?F)Uhy}in-AH@)tjA?ijcZt)-NRWo>dNhwM zOUP+$P z{1!wSoAIG;x6HEGJVTifQ_$#mR+6P1^bY>RTzep$(g(RdXMWP1^fXY3_sV_QvXLaR zS1f%+LD6}<>WY3`Hj^(^hXlteg0@d1Y}P_)gFFGDir}j`s z9+-J)PN*Ij_e$AurXzeP_+CP0ahWF~EWWaT)M&jYY1yLme-ncxEqbs9Y1K7&b*NUvG$ImE8|$^{4s-sG48xaXUMEdf{4k{{Mb7f&w0n#u`f zT^DA`^1Tb)Sf%tzHa=CyJ$f1HgTX$uGW*>xnlG zPql6Q&IfLP8xQOz2|^0Uu7K@FQ4C{~2fz3Q{9kO~ug?Boq31Fp-_gbJ|BekP3j7Nj zP_W1QQ*SJ9ESaMq1J9=j$%sW=1qt3jKBXAgCK|MYvhvPVVUCnjrHlQIj>B<1 zj!zHu4*9A>pFDy={Z0~SUqCS-kkLcGm@svlahGxMn&tJy0c3-~ErO~ea%DTT7kFap zy!GG`W~|wE(_Xpu37D!|8!NE;|l*tct*v54%9Wu{JKERt{@Xtc;M1ltwm4`)4OgJvZD#hk_Q zQqRz*hbn2ED0Nr*CsLR34iClkz|^mav#(JDoHTGpz6?R~w=ybx;jqb&QwQ&MQ5Ru2 zT&eXpMdveiOJmolvXMNB1WMrLTtupH8p;dSFb6*UW(E2FA@l{MuM&vu;mW8W0;Bi^ zu>S4gwi*bAZV9>^m}aphBd7ysy~oga4rYk{#2x-MQ1S1n!xtSMX3xe%FEhwYV+wU4kA9{x|6Oko9YmogV2F21?6Fn z^7#&j9RA_zF2cRND|#<%z*oDReAjW=s@X-ZW;>TG=it@l4wx(>rs;D^T;u70w5t0>xN^N7G$+vrC@*5&#}2^_*3 zQrQ3v#oBmu!xAn@NQMu$`qFXbWYn;4-p$DnT@F_T>u=)$l5+SCn%n z=SC!#Rw|g0C!~i%a3S?@;ZIj*F8B}N1E)QwC!1U}PI+7oTySEuQsZHk>Y3Kqs-+3m05-5>XfIXcP1pP0M9rd-DhuhUmSRxF73*VUv%_NyOR| z5N=V>5JU~)!Gc!|Re;z=2k6php?K+!Djt>$7+aKlWfNWaWY#Z>Vt6xz&Db}*h{Tn-0Hd*ioUcJkn*uE^*Rb0IX1{uH)J zXLXKeQG2oj+MsNuCd&ad1jgo0kLGIoppJDKMA-5+hKfpB(4 zAz7(f*a5I!ea*HhL*ubAdr6DXnOOD-Dj>?&{t~4(BntjW32D8D`P0#X#HyEciz1B7 zS{JwpX;wk8VF^4-P_o3p2Em-~1ZKluu76~(4SBQgjRN5UyJ4*pX4(5d<1<}(0K;5t z*LJEG6rR_2>CKa57+dZ6`(BOve{A&dykSUnpC4-Xymt`mY1LL!z03QPa2qE9KlxO< z729YoOTuuM?%_ikmgK>iR836WuoG}H>jDhl7IVTTLX_s}0M9JGej^&fz?B1P=U@)8G%@#-1s26uAF+3oU6p}yK9-t5tPkL8WiYEtdh1R8*vjQ?Z zv|dKFZlLZN`|prT)kQ?hO`r)>jrA9X5HpzGN4+O*+8y+0qITu8!zb;HnEJREJ|E2; ztmG?fSMD1b2G3W;u=O#bX{ILcm<@oe8@CkM{y;Hx45{UvF!YgSzlUAhJ70e#J$$Ny zsZnXO*nXOKsz;8HUw$(;H~vn~N>#1S5xZOQ;}hd;3f3Y-g4fnOPsG+qRyGaaF-iYo zHBeXKffirxp-Y{Av;qEM5C7@M0%@T`-wSn}{P>&t_b$ErWP6=So-gtI$}^0%3|(+% z1Q{*sL9_4+X<1DGQYegcfN9<&{q!1EjVWoevoN2&-ZzLpTL3JQU z<-?bw0ZCCAU`IL)5-p)HUO`#Tbv+75T|V$L^98V*3x6aM^8mP_Acgga-Pr5xZSr%H zwd&*O5Z(Ljh8TJcNQzQ)DXH*4+NE5{$i0r_PHN?`fZgF_eO{1hYB9~2 zQhv2FkjbZV?0cxm0PV4N8s9$2a1+JEYr0Pcm+WoZ13)5im^G(zSEATvZ@B5qmGW1t4Vg`uW1z40|W=nmi zlJmJ3hEPX)psGGDXg6j<3Jjq9y@zG$YDwCQk$N7~$Xsktg+~~O?^+%VT5@DAO3-{Z zGfiX!uj5m_d9!*p^>JfLhkc+mMY9ks1_6C&U$6-aUNtf5&Y1b9%pyf1#fXpHylq$@ z_8_M}6(R^R5lGUDxJGj{8M1sP$^ZaJ!Wphmv_*m$(x(Soy85ZeIl1Wm6? z9uJ-6Yo`RoFsmtXZJ`9>^ORT;AB$7rw%Al0xan$%03z`X5p+>1WD}Z%uo&E|Sm{`; zq9@k8ExLkH@}qBT4v(|lwo|WcJFqFVv5A)SGAgz)gpV7hv8@zNEzZaNZN4nQc#M*+ zv6`e&c;3&qromxv1HD0&`qLcKW}Iq!K)StUNZItE>^~gk_z3MQ-ecTnZrtbaRbd}4{%CMVU~*BdVjqGXCD=Tlzod4;ul)GdXNw6C8AIX z!G&-4=Kk|V*|fKQCktLY$)6`6usgF`-|iZA<96U+kh+wqT5C12&-Hj@Tfvbxj)e-Nzg$36)ya#vu;leNFeqI7Y2oM_f zhFYoObm38!KT$~&5797w^gaU#I!dVx+D*R_1oRNfHA|m9*T<#{jgX3orAw1)XC2VZ zCha~jAlVh3Q=;0(;*m0yvLg+m015C-JjX^-?~$kPBv8bSbha(nH7zeHdbleNEycUz zBbOPiR*%y8zgnxKZsj{D2#AxReTwNFl%5=*C?bLUhBqWC_VgyW9n|4(+)~PYixhi0 z&R{I0doGW>D&eP!Z~85rp%>WJox8H(OM2II?9z#Oj$NbVRG~p4$x4-nqR&w-;WqCW zn#3Ur_gH0}l@^6NIeYix?R9XH{=~^=UNY1hKIZh`hCU5>c}C?)NLe>?NV8Cp)W*ud zq7--HfmfYS+;XLdb;^UZ&XqdPvWTslbBiRgwi6DBbrJ_Duhm;!&e|j`ZE?^7WX#F$ zk9}pQ6}GG+JQ+zzENn;u%O4VY9`Tp`Ptv>7YeXuZn9%0FhWM}1Y89|EUsFhY^ z>S-ptwc``2LVt|63<_ug`={%RuKL~*>=xg{?-IOsJ)Owg6)cC-WjGGMAMVcAm_1Ss zb_yt6YbGlNI*n7;XrTSv`fcqSw%`YyQ%PjJ)sqVVpTQ5R!tUVBUZ*P@NT#E{lU-1s1(#Y5@j^{)tjL;2rc}-QE z?R&z_h5!n_D@@mca=7jDGp4E|eJq3LR43M;{ZB6)B)PQRn zS@`bAIK4a|VzG4eJ2i3UTcR>eM`uH@>07g$AFtcc&{N1_>e-Y~_yvq{x`AlPJ6p#N zfs^;tCdS@ZmFEPRB=5dLZLLr3m#*$d8XhkX+|q!}AlPQdaLcsR9Xx7II3IhSIA^un zZ3+5xBtS}E!i4+E$f6031NdT zs(+I=%Vslkvk=0r94Hk;Y7syQz#$w{t46Lbl~0LXWwV-#`zVZ5BtOQVsG4<&gag?p zQrqaCygfH(IGq+AfEnD<7u0no0!rH^c)eb}k=4SfRPLFJfR}TSI|d>Mt9j#YpG+~9 z7uLuO+Ck<`;0xyymx1Q1CS(Sd^EibtUoxcr_!Vo^(I=%txoED^L}7kFLjstj!4T?7I49~sFOFkUGUTVR#On9$icv-1^)HN9t-(AYo*b249{-Gdm@=mRdr4MJ~gW8a;k|Md{bh zanUi-LkEiiCTL}9L+2J+KbLkT9&?h|3cBbkB{HP-2av!Uejk>HQV8LnC-2)YvuvTu zIX(x{Ss_m8RWWAAi9Q)PJP3?v;aFS7i>5~6P4wa$@n~-oKbIWBJo;O<((6RqpX#K4 zchLz`93nz}NTD-?LzJ_)NsKs}u?f)>iv6EX&O98-^^M~UCUj&QO!l&qZJaEVj(r&> zj$=Peb`i1+axB%PM)qGAJ6V(6iL%pVJ4o45A!dlOPm#!J`i;{vn$Wqt*ZbbjeSZVXe_t{w6=1E|WZ)pscQV1RP#-wgCBY}MI8=3B<(g(PYD^9`ASZb@ z8ls@AP=Z&l%`;BV%3JBu2zYfw@!SPhe_Osr&IqQz!9xHV%*~g7rkEj@?s(b+2#*D8 z7WawYIYB!jb!Rz^vE1uE0=V3H(!VRk$lM;$;!o{;_xy`9OlC<KUxwVECHKV<^$ufuD`nG{~0vjzNv0qgH2!yY_4ypG~+RND+bWw zLThue8z5Dq2t!+#xIe~=@DnaBP~{?f4_uw3?{ICQ=PhnEdz=Pl@yaPxcv_%o=W7Lk zOWB{0amlT}DA4zeF#3E)BI%TypXpj^Qd>thhi1`pIDlXuAOaf?~!T4 zn5Q8>++!G%dK_DMyfhZ}Wcq)s)4c7;)m_Mih|oFTc1%OO)!D-spQiI@&X-G@_VZOq zG>kq`Jp<6Ti3J;4vxp?{4O?1CvEcJmrnfZg+Cr`t9+O@{+;%bwx-LHyee;C+^8Cor z&cn5&>cZnUb>M_QtvmwKHc{5zNi?P++Lqa}&ma$d&PxgFl`<}>X2>Xdy-74H;T`i( zykBbCroe49sQpaj(hGjW=QkH*{k2XPj%y#%M0o$bM!+BMYwk2hwQ8E&tzrEr=e!Ww zrRfL=3+3UXCW>l}GOn4po@V^`SCPH`Q8~Ady0TN zvrCT;-Y2zH0M?DqI6Zqhr`V%&Qhq!IY}69nDFJ7C7t!RV7z`~f_n2OvQddmibHhKJ zfeOz{ry2-hU@q@xe4s-qu#C1ae@E)abHmpaXCZT(WoFHEwRG`uh4>qq3W>vgcxTbH z*jk^Dt75HxoQ2I485FK)>#N~w2>mK0Nh(+M+HeL#^NV(*Y9U8I*jtGbbf{8>s+|~* zJKnNHyV)T!yS*^N!b)rBG#b{4J&r4OI>y6 z6B`Uxjbh^ERB3|uDY>oC*v7@H&=OI78%fD6_XLSor8k&eK6YLFDaBsjQ&+<_qI`mJ;rGlaW0iC-g%wyKhy-Yfejs_e72h@oI7hn5QO#cvc8&5d3rLRHztF!z7Y> zB;O$s-HM*fLtiH}sCT)|migxz znk#TH&`m3s)*!>67$!|yKFG}?-9Kty=O&&$<&}_$Ms*7tiPHaGKGHa{P+f@#LrTj^ z%|Vi95}AqO3loV{02y$aEWHCYv2?1Q2rbo?k9kN0SP`2Z;%YyI->8ljwF3~hVa zCGVqN+{t)2BV^z1O;g-!+X~}e5f7$5J zMbI^@pIb6WM`c`;c*U-~Xdn$anSUa9WCY2O5*bAmC$~U-8ys~tg@c#<71H~J-%zA* zj4d{)Kv;HmDRX(lC)3jfB7{T=*{mHr-2m#F$?M3A$_G0aumhgw>Sl6edTKkHRI(n{ zy!N;aG|=AzGI2N;@2(u{(32%SH25^fN1)hgCBo;FHZ64BvuoAD0z1u|q!r6Nb|N1S zQ`Ny)&&h!z1e+iodDYwx@$M)KwvIwffW>o2WHGoyc_>rx_|3UDyjVfC?8gM&hlvR= z*OY*2VML)dFmpsM{9uwIK=nrV)7$!VgFK8YD(uyPBGYBBo6v@E)HCT>FFov{(Z=$s zQ;BoxVfX6II<(3IQ)?05IUTlxR^`B;5 zG;c-o-jZmxe4ceLvLU7M5_7Z_3c1Rei{?*=&jUty4Cp<}9?e5xMXIpF6P#e2frqWc z+h3jy5)QqKEPAConLlP-Qdt444u50O1FFjr7ni3le`S<8s?0*axKfdR4Ky}?%4z{~ z6C;t=yFS156Nia$lgU&4+U5!ykH_f1c?2APXFS(17GyKNgvstCvP1fOC1b8+Rj3p~ z3i%Y47$Pi?!C1Z##tMl#4NJDogsfyPrtC?SE=|yt*dzLOH0il(W}AuXrLG$}{c67X z&soy%wI+|)~3v-PN7$>oP1OKw#}Su|b>Ck!=mAe6Oh z8{C(Uz?j>v*|cANOI&+rWX7t$ZrQJPzCTDzfad8{MNM`9Cc1AIxenc3fSvi#my72_ zOGt^e`P;9 zMra4^%2axE2-gZeEGi8>>BA@RE9k=pgTNH98&DS;?>2MfpxTsEs3xmG$CC}v4HLy= zdmJ)Y%31cREI~x)q|QPmy|GBf>G6UPFMok6!pp4JEU`+O8tT~E<;ip#<;i*pB9YWD zL=6DZ>}?}Qx?>;>7OEwU?c-OcxKE~XU#9MEE4MvidlaCgNY7uV?l76#DNbq9w(SP@ zX>5z%CB59m8}3U0RR1`ZeVMR*+;)fiG`6SDkY0W_eTRS9et~Se#eEvvBmwGONMF6< z_KrvR3*?`*G~b7^vlnZ>xVGKoK8@|TQuZN!_Lkc_xNUbiGHP%i)K{;$yB8Z=KzCrtu49x;%657( zQ;O{e%zc{cDOD)DRLLq(t{{u p|456RE2Gq-yhS1F(ZK$T-nZ*WN6Pb2QE`zTy`;@K9i#1c{|99Ty1D=W literal 0 HcmV?d00001 diff --git a/VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar b/VerteilteSysteme-Examples/build/UDPTimeCounterServer.jar new file mode 100644 index 0000000000000000000000000000000000000000..b7c10b52cca09a632d500ab13a136fb09c7e7b64 GIT binary patch literal 22064 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 yjAZLLF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/mandelbrot/MGui.java b/VerteilteSysteme-Examples/src/verteiltesysteme/mandelbrot/MGui.java new file mode 100644 index 0000000..84aae5d --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/mandelbrot/MGui.java @@ -0,0 +1,345 @@ +package verteiltesysteme.mandelbrot; + +//Mandelbot Example A. Gepperth + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.MouseMotionListener; + +import java.awt.image.BufferedImage; + +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JSlider; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + +class Complex { + double r; + double i; + + Complex() { + r = 0.0; + i = 0.0; + } + + Complex(double r, double i) { + this.r = r; + this.i = i; + } + + void mulBy(Complex other) { + double rTmp = this.r * other.r - this.i * other.i; + this.i = this.r * other.i + this.i * other.r; + this.r = rTmp; + } + + void add(Complex other) { + this.r += other.r; + this.i += other.i; + } + + void sub(Complex other) { + this.r -= other.r; + this.i -= other.i; + } + + double absValue() { + return Math.sqrt(this.r * this.r + this.i * this.i); + } +} + +class MandelbrotCalculations { + // hier wird das Ergebnis von iterateAll() gespeichert + protected int[] result = null; + + // der augenblicklich gewaehlte Ausschnitt + //double ULx = -2, ULy = -2, LRx = 2, LRy = 2; + double ULx = -0.16099999999999995, ULy = -0.9365333333333333, LRx = -0.03533333333333327, LRy = -0.8108666666666666; + + int iterateOnePoint(Complex c, int maxIterations, double maxModulus) { + Complex z = new Complex(0., 0.); + + for (int i = 0; i < maxIterations; i++) { + z.mulBy(z); + z.add(c); + double m = z.absValue(); + if (m > maxModulus) { + return i; + } + } + return maxIterations; + } + + void iterateAllPoints(int maxIterations, double nrPointsX, double nrPointsY) { + + this.result = new int[(int) (nrPointsX * nrPointsY)]; + + int counter = 0; + double stepX = (this.LRx - this.ULx) / nrPointsX; + double stepY = (this.LRy - this.ULy) / nrPointsY; + double i = this.ULy; + for (int cy = 0; cy < nrPointsY; cy++) { + double r = this.ULx; + for (int cx = 0; cx < nrPointsX; cx++) { + Complex c = new Complex(r, i); + this.result[counter] = maxIterations - this.iterateOnePoint(c, maxIterations, 2.0); + counter += 1; + r += stepX; + } + i += stepY; + } + } + + public int[] getResult() { + return this.result; + } + + public double getULx() { + return this.ULx; + } + + public double getLRx() { + return this.LRx; + } + + public double getULy() { + return this.ULy; + } + + public double getLRy() { + return this.LRy; + } + + public void setView(double ULx, double ULy, double LRx, double LRy) { + this.ULx = ULx; + this.ULy = ULy; + this.LRx = LRx; + this.LRy = LRy; + } + +} + +class MyJLabel extends JLabel { + + /** + * + */ + private static final long serialVersionUID = -5184881932223853807L; + int boxULx, boxULy, boxW, boxH; + + MyJLabel() { + super(); + } + + MyJLabel(String s) { + super(s); + } + + void setBox(int boxULx, int boxULy, int boxW, int boxH) { + this.boxULx = boxULx; + this.boxULy = boxULy; + this.boxW = boxW; + this.boxH = boxH; + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + g.setColor(Color.black); + g.drawRect(this.boxULx, this.boxULy, this.boxW, this.boxH); + } + +} + +public class MGui implements ActionListener, ChangeListener, MouseListener, MouseMotionListener { + + // GUI elements + JFrame frame; + JPanel panel; + JButton endButton; + JButton backButton; + JButton calcButton; + JSlider maxIterations; + MyJLabel view; + int nrIterations; + + // box management + int boxULx, boxULy, boxW, boxH; + boolean dragging = false; + + // this one does all the calculating work + MandelbrotCalculations calcObj; + + // how many points in the image? + // change if you want a higher resolution + public static final int RESX = 600; + public static final int RESY = 600; + + MGui() { + // set up GUI + this.frame = new JFrame("Mandelbrotmenge"); + this.panel = new JPanel(); + this.endButton = new JButton("Ende"); + this.panel.add(this.endButton); + this.backButton = new JButton("Zurueck"); + this.panel.add(this.backButton); + this.calcButton = new JButton("Rechnen"); + this.panel.add(this.calcButton); + this.frame.add(this.panel); + this.frame.setSize(500, 500); + this.frame.setVisible(true); + this.view = new MyJLabel("Platzhalter"); + this.maxIterations = new JSlider(0, 50, 30); + this.panel.add(this.maxIterations); + this.panel.add(this.view); + + this.endButton.addActionListener(this); + this.backButton.addActionListener(this); + this.calcButton.addActionListener(this); + this.maxIterations.addChangeListener(this); + + this.maxIterations.setMajorTickSpacing(10); + this.maxIterations.setPaintTicks(true); + this.maxIterations.setPaintLabels(true); + + this.view.addMouseListener(this); + this.view.addMouseMotionListener(this); + + this.boxULx = 0; + this.boxULy = 0; + this.boxW = MGui.RESX; + this.boxH = MGui.RESY; + + // Non-Gui stuff + this.calcObj = new MandelbrotCalculations(); + this.nrIterations = 1000; + } + + // visualization related stuff, do not touch! + int[] generateLookupTable(int nrHues) { + int[] tmp = new int[nrHues + 1]; + int cycle = 2048; + for (int i = 0; i < nrHues; i++) { + float hue = 1 * ((float) (i % cycle)) / cycle/* ((float)nrHues) */ ; + tmp[i] = Color.HSBtoRGB(hue, 0.8f, 1.0f); + } + tmp[0] = Color.HSBtoRGB(0f, 1.0f, 0.0f); + return tmp; + } + + // visualization + static void applyLookupTable(int[] data, int[] dest, int[] lookupTable) { + for (int i = 0; i < data.length; i++) { + dest[i] = lookupTable[data[i]]; + } + } + + // here we check what the buttons do + public void actionPerformed(ActionEvent ae) { + if (ae.getSource() == this.endButton) { + System.out.println("Ende"); + System.exit(0); + } else + + if (ae.getSource() == this.backButton) { + System.out.println("Zurueck"); + } else + + if (ae.getSource() == this.calcButton) { + System.out.println("Rechnen"); + long timestampStart = System.currentTimeMillis(); + + double ULx = this.calcObj.getULx(); + double ULy = this.calcObj.getULy(); + double LRx = this.calcObj.getLRx(); + double LRy = this.calcObj.getLRy(); + double w = LRx - ULx; + double h = LRy - ULy; + ULx = ULx + w * this.boxULx / (double) MGui.RESX; + ULy = ULy + h * this.boxULy / (double) MGui.RESY; + w *= this.boxW / (double) (RESX); + h *= this.boxH / (double) (RESX); + LRx = ULx + w; + LRy = ULy + h; + System.out.println(ULx + "/" + ULy + "/" + LRx + "/" + LRy); + this.boxULx = 0; + this.boxULy = 0; + this.boxW = MGui.RESX; + this.boxH = MGui.RESY; + this.calcObj.setView(ULx, ULy, LRx, LRy); + this.calcObj.iterateAllPoints(this.maxIterations.getValue() * 1000, MGui.RESX, MGui.RESY); + int[] lookupTable = generateLookupTable(this.maxIterations.getValue() * 1000); + int[] colors = new int[MGui.RESX * MGui.RESY]; + MGui.applyLookupTable(calcObj.getResult(), colors, lookupTable); + + BufferedImage colorImage = new BufferedImage(MGui.RESX, MGui.RESY, BufferedImage.TYPE_INT_ARGB); + colorImage.setRGB(0, 0, MGui.RESX, MGui.RESY, colors, 0, MGui.RESX); + this.view.setIcon(new ImageIcon(colorImage)); + + long timestampEnd = System.currentTimeMillis(); + + String timeElapsed = "Zeit: " + ((timestampEnd - timestampStart) / 1000.0) + " sec"; + System.out.println(timeElapsed); + this.view.setText(timeElapsed); + } + } + + public void mousePressed(MouseEvent e) { + this.boxULx = e.getX(); + this.boxULy = e.getY(); + this.boxW = 1; + this.boxH = 1; + this.view.setBox(this.boxULx, this.boxULy, this.boxW, this.boxH); + } + + public void mouseDragged(MouseEvent e) { + this.boxW = e.getX() - this.boxULx + 1; + this.boxH = e.getY() - this.boxULy + 1; + int m = Math.min(boxW, boxH); + this.boxW = m; + this.boxH = m; + this.view.setBox(this.boxULx, this.boxULy, this.boxW, this.boxH); + this.view.repaint(); + } + + public void mouseReleased(MouseEvent e) { + + if (e.getButton() == MouseEvent.BUTTON1) { + this.view.repaint(); + } + } + + public void mouseMoved(MouseEvent e) { + } + + public void mouseExited(MouseEvent e) { + } + + public void mouseEntered(MouseEvent e) { + } + + public void mouseClicked(MouseEvent e) { + } + + // process a new slider value + public void stateChanged(ChangeEvent ce) { + if (ce.getSource() == this.maxIterations) { + //System.out.println("Neuer Wert"); + this.nrIterations = this.maxIterations.getValue() * 1000; + } + } + + // main, just instantiate an MGui object, gives control to the Gui + public static void main(String[] args) { + @SuppressWarnings("unused") + MGui gui = new MGui(); + } +}