From 7518dad22a4941547b8dc95dc05b4ff693a4b327 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Fri, 2 Oct 2015 13:39:32 +0200 Subject: [PATCH] Fixed server communication --- .../ErgometerApplication/Ergometer.cs | 38 +++++------------- .../ServerCommunicator.cs | 2 - .../bin/Debug/ErgometerApplication.exe | Bin 16896 -> 18432 bytes .../bin/Debug/ErgometerLibrary.dll | Bin 8704 -> 16384 bytes .../obj/Debug/ErgometerApplication.exe | Bin 16896 -> 18432 bytes 5 files changed, 10 insertions(+), 30 deletions(-) diff --git a/ErgometerApplication/ErgometerApplication/Ergometer.cs b/ErgometerApplication/ErgometerApplication/Ergometer.cs index ce10b12..0afecb6 100644 --- a/ErgometerApplication/ErgometerApplication/Ergometer.cs +++ b/ErgometerApplication/ErgometerApplication/Ergometer.cs @@ -15,8 +15,6 @@ using ErgometerLibrary; using System.Net.Sockets; using System.Net; using System.Timers; -using ErgometerLibrary; -using Timer = System.Timers.Timer; namespace ErgometerApplication { @@ -90,14 +88,8 @@ namespace ErgometerApplication } } - IPAddress ipAddress; //= IPAddress.Parse("127.0.0.1"); - - bool ipIsOk = IPAddress.TryParse("127.0.0.1", out ipAddress); //GetIp() - if (!ipIsOk) { Console.WriteLine("ip adres kan niet geparsed worden."); Environment.Exit(1); } communicator.client = new TcpClient(); communicator.client.Connect("127.0.0.1", 8888); - communicator.reader = new StreamReader(communicator.client.GetStream(), Encoding.Unicode); - communicator.writer = new StreamWriter(communicator.client.GetStream(), Encoding.Unicode); Thread thread = new Thread(ServerCommunication); thread.Start(communicator); } @@ -112,7 +104,7 @@ namespace ErgometerApplication SaveData(m); communicator.data.Add(m); command = new NetCommand(m, communicator.sessionId); - communicator.writer.WriteLine(command.ToString()); + NetHelper.SendNetCommand(communicator.client, command); richTextBox1.Text = m.ToString(); WriteFile(); } @@ -120,22 +112,13 @@ namespace ErgometerApplication static void ServerCommunication(object obj) { ServerCommunicator communicator = obj as ServerCommunicator; - communicator.reader = new StreamReader(communicator.client.GetStream(), Encoding.Unicode); - communicator.writer = new StreamWriter(communicator.client.GetStream(), Encoding.Unicode); - int sessionId = 0; - communicator.writer.WriteLine("5»ses?"); - communicator.writer.Flush(); - string session = communicator.reader.ReadLine(); - if (session != null) - { - session = session.Remove(0, 5); - sessionId = int.Parse(session); - communicator.sessionId = sessionId; - } - NetCommand command = new NetCommand("name", false, sessionId); - communicator.writer.WriteLine(command.ToString()); - communicator.writer.Flush(); - communicator.reader.ReadLine(); + + NetCommand net = NetHelper.ReadNetCommand(communicator.client); + if (net.Type == NetCommand.CommandType.SESSION) + communicator.sessionId = net.Session; + + NetCommand command = new NetCommand("name", false, "pass", communicator.sessionId); + NetHelper.SendNetCommand(communicator.client, command); } private void resetButton_Click(object sender, EventArgs e) @@ -158,11 +141,10 @@ namespace ErgometerApplication SaveData(m); communicator.data.Add(m); command = new NetCommand(m, communicator.sessionId); - communicator.writer.WriteLine(command.ToString()); + NetHelper.SendNetCommand(communicator.client, command); richTextBox1.Text = m.ToString(); command = new NetCommand(communicator.data[0], communicator.sessionId); - communicator.writer.WriteLine(command.ToString()); - communicator.writer.Flush(); + NetHelper.SendNetCommand(communicator.client, command); } } diff --git a/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs b/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs index d8428fc..a7bb350 100644 --- a/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs +++ b/ErgometerApplication/ErgometerApplication/ServerCommunicator.cs @@ -12,8 +12,6 @@ namespace ErgometerApplication class ServerCommunicator { public TcpClient client { get; set; } - public StreamWriter writer { get; set; } - public StreamReader reader { get; set; } public int sessionId { get; set; } public List data { get; set; } } diff --git a/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerApplication.exe b/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerApplication.exe index 8edb3fc37beb8c4c0e3d5c910035d7ae8f2958b0..a7fe05f6bc4056eb26d54c608374ee0d619b3a0c 100644 GIT binary patch literal 18432 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 literal 16896 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 YJ^5X<05*C4{i6KE(C?xFez*JlpAbOkY5)KL diff --git a/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerLibrary.dll b/ErgometerApplication/ErgometerApplication/bin/Debug/ErgometerLibrary.dll index ce20e918b2da885194e31e953f6447cfbe447793..728e1976bb0b721061bcba5eefc7587f420813b8 100644 GIT binary patch literal 16384 zcmeHOeRLefk*}Fu&Cc#hEA7gbY)h8cV28D33t6_o;Zw3C+cN$TmTU}|SgX}oTG-uL z&#o|na}eZ%m$9d&s=B(my1Kf$dv>(_ntLcfL_ypqPZE6=PrkYZzCM^nacs%s zG5U1)YfC?CZ2Q{M;fZW1S@hg-FP%?j(uIOsPL4WBZ?cfg7Lt8Chmv`B%;~7Bi!9Ts z2m6V(83Edmi|z4Sdy&pbMvYFQ3&61z_g{A7nZ!MUo2Wr>Q`yZ7iveE`;Rc_t0FAtj zMfv~CQ_@>@Qk)o2o@Hf2`zVgqyasY7 zf{megX!Z9)jdt8_zPcZAAXBOiPuNE1;_krRet{iMfv_6G?VEri{usR&D7wXHC(xuq zm)j{c&de6?7)%S@iJFG@ZMG5-t*wlQF#$N1>!BY38K*^N3B9!9=^NMVEAZY6UVvQ{Nny||R{~ON zV_UXC7iJi2X+FZvjYQDlg`yLkiFzNX=xkCtqan+cfD5s45`v+?f+Ma3Ur6^cNCm_n zCMt4EU4V)RI1H>64aqq3SbMnt0rxAoTOqrl6JSaBE+|B-T1S^Rd-bSzbol}^h1qM# zNFH6j&}$LyA~S{2gIJ4Zw92HhY7^#(rZ+%`i;<5UUA|Zsx0#%;tfQ%A+{F!FN2@K> zZ7q5IwlHZdcWae`yG~Wm{`v}#9sS1JhZj}1eBo&;_A*x)+rG^5hCo*NL4rBb9`*Kv zucw}Peq$wd%sY(K7F0Pq4`Y!dkqb)8(S0c~Z{hNQ3tvS@5p6CO1fOVfQ!_-fyJCh& zPD6={SoB5R_9}c8aJ5>fIhL%nEe*P>Pm#sM5^;ZRiHMydJMTmwVy%iP<6Kr8Z4Wl7 zDJt_9DM|M$1!FONSJmsT1YG0}sN((`gfSaGJ(+uleaRy$qA zBP(I1)}xfy+xEKf>hIZ&!FGzn3bjrj#8WOag%&LakvAyZdkPVdx{xbxsN#P2wA|mF z%7v9yzzYYV0y#jf`Vw2IH$s`-Czu4+t9?QsbrJZO%;=b9DIu>8)fFdoG20<4%gPqy zmK#tH-t=<-1>8#@5N&Tw7^zEv)skh)JXI!es*DiIu&s)${_YF)3FAZ)_8KiN5?+M9 zXQtr7O0#RFS>{wXO9m1MXZ95vB)v8eWo+t6Ih&p4?`s0G_k{cP_-PsC-ELoy z^CgU&tIHFApM{)^Kt=AFmQ)XPdsp%RusPEbd)T;Od!lwSf`EZ!rx=2Ofo>{>AYjCO zh9F=dNh=9Kz(4|23_-v^%2o_Pz(AH#3_-xa+N0;f9`u{9N`eV+z{&OlF(KOz3@)D7 zt6=;XsY!J!#7b>cNGR2(5IeO=A>qTS35-*ac%zCA`|&a>O*-(AEC%q?%woWytJCBx z>BGJ>;`q$c@ARb+ziJZjLi1X>-{VUogwHJf311p9d}d3&;7cPe&Mf_$FWq}K(l7hc z{jVXdcRy;6@jS-5YAkRrs5oAhRJ8=gun_cn3Y<8u)v)Pq? z&1P@r?(%ttqcAeF$1}NqoFuR=ED5K!K};`Pjh$gS53z`;RkeQ(=)E&GuPIo7-Sgeq zwvJjry$5SIni`|==&CTyYpmVy6Da5XHE)@t*ek2Ov$fy|&w&VbCwwjIzP8R2Flj0H`c}LR@GWiiV9+HHP^425%{(s3ussoMTrp8D- zjIH_!qcIkbt!kxsSR1g8N1P9L=-k#2^8Iu-{VHjy)XVUs!`gM2o-jjhs#dj%d*uMSOws+v&MdB1@(3nBHPF3znO ze_pFk7})mK(7d|#pe0)>$ZQE*>ix*Mn|BW&5a^#k_XSb5G3Sng<_l|{an<6Z z;V^bE^s2FzkR!QuBwXI_$QrZ@Pq)}3mB7ynd|qH&;E#hJM%`lq`-QWrW`kwX zRDqqjsV0v$!lq7Yg+`DQl+f zWMUZ4!O-reW*VZUw9xpSv6OZK8uS(8Rlpw!{G{lkm_^Gq)et<#v}m=a z76#7)b%Cb7468$QnWml(G=SQyslMQmFgwl09LbOP^H~-EQYV{YX>q3KcGztt zGx9d`Jepp?lK0X>_C4kb`kVM%s##IDnp*kjM)xkb zG@LV6(^{e4ZXbxWfx1{zL zvIASO1{O3mKTvOW(jiU#%x=SczExAdwhg>_dWWXo9c?qa=pIcSi6Rrwdo*=ZxXoNk z4{PeJh^)2rQBC~`I@i&sG*ySPb@YU$c;2q3XB35z{#$ds9EXWi6kJB1Ud4WSJ3WdS za2Y+YnkkODqbABK)JM$A=_ehk?Ca(y%pUr^rmnL-WA@U9^Htdw%+H(sv`Gl(yt)& z2jsn7kj{bkYUo__&Y};&o)EnsxJ`=z!_;lh*vZzK^kw1vQuHVfoQfO79D{DL!o>M3 z4rtLrzzD4XY(V@ne51e~fdc}s6nM43G~j&73Vu-Fl)!faTJ#>kMRc3sf1r=zcQV7c zBZ~QETov2^`1hg9>0!Djyp{eyKZv}E;>L-9gSGXl;Pv2q+;RaAT4lifkttegusw`V z(+Z7$E&6xh423>KYf$S^w8g6w%Y2EBOS{MEapd*m)PW3eoW2|VCg8=9=K-$^GG_<& z9>-}5^51dV6lDB_$p07Ch5=)5w`-HZ;qyn+l=Fp4udUeF=}Z=c#|=Y%;+9KC;9@t)7XZ#xYiWiYdmCKE0W^| zd*BY^KQT-1G@heZtow~)Mtk6W#&^)}QR6X`Hqc|n5$wKR63$Zw+xasZ4nAYpG(s-` zj?sSrPS8&QbMy3)qo*hqf_Y@wDw2lD(fz;?O_a4p>q zcrm>Luvhq3(1XB-gnzBT3_S|Y4fF%R61@`W7X3XMaw{W(r!{2GwBWaC$ef1-f0!75 zO7N!ye@XC{1UC$}-!NDvDfm(inbR$JkA}<{5j?FSbEXAwwn+nz-wM#{l{5W*m3} zA6#)a0#5*%xaR|(2WaAM2Hpf{;$8@R0icO_)B<=R&b|iDlZ%1Bk(L0z2+*X9u^Th! z5v!#I_y3YgNi@a=5AD~J7a$ea4XyRnLnl3kX8kkrp z=j;zx$n^-;0xX@C>sjMQ!DsV+i#6?3IYc}zEI^g(+s4m@3`1j{nz=alKr2)UVd-=5kJ^ zoOKJOj?GTN@v<4(<)p`?(V?Q_j7hT^6Z#U^a@h_0_is#RZorF!O<5;5Mwf`hT=rnP zR668(V{=RT(BX6;FP^>#-8@|p5631qH|BVAs|~t`PRH)alqb`<*C-q)^|_g{ zdm3#+PR1>amF70H#YubRjZV5ex2PYXFg`VhKkW9p`Fy%CCPA{pDf{G*Qy8lvGg^v6 z*AD>+qzX~gfgyqB$AXAdh%p@@BC@-X&ESh6!F3D>UKJBkyPB4;uV&;`WYNsbqXCW( zx5TrM`rJu=U>@nQ-joH|i@D+A$$jBCQvGnfvJlK=6*|cL9#rT8*T7gi93|qlZP|iD zS9#g8BN#k5${be20Vx^;(Y_U2JG9IKddBy<9*oPmCFqwvI5g}{NuNc>#`NUaE;LNN z9)=h~&gkU$xZ`c~+(Xh|#4Oli2|AfCqO+dl0IKGNX*eZ zQv|(xvZd@S@t#u2$&coyhO^~rEfuzx9&_?(?}iyI!)Xuh*@SP&93+#f0>2Iq)E>v< z`8iX|FT?;I$c|5XX-;!*CG7b<^9ja^PIeUo6Nxs?Y!Wa>8R0R z*XK=+mgH40Ws4f&m{aLaB1WT|a+9SAo&_pB4W`Qzgjn&)rK_?)`@L~D@01;HTXxh- zds7`_xf~VJ={)f$pfLw1asiK&rl3n>Dt2iXQiz);ub7v)NE= zp=w4}Sg-(nMj7{EptQ3HbgP?Hw4T1wDIb@K;S*{~_>>>?K3!6op4{U8p~=y*mzD*x z;(6zQUNUKW7E6L&0{d^uI1)s($@TK-@(jJhIaKBxa-iI?wd58sTRkkft~WJMIN+*z z@2?eMC8@oi7kV=`NIARp0^8vESK|;3kFjzbW91f00!}z>VqpWUb*@3K+xuJ^2 z5}wJXb86J9e6AThx?3=A$PzrfTbx`G*qD>c=8?<%RwbRNRyE44%9H7 zrr~j{bVXhU*$|zt;WO%B&jHGV)%fe4=%^55vKIP7)|X9>7u-@gn<j0h2I=pc@+_=BGXiL6%Q z<)xg?7D_ZQ*fTcfA@qE$aB|0xo4LU$m&8&Ys*PDq43*uY5S9I3#~{|E67}DNWmD8< z(q-vwWtkT(Gt>kx|D#wN)NJF0vTD?Y%rH;IGjfWD=*Zse>>Rxw@ymu6_=&|Qqfu=O z45y(YvKS3#ioLn4Qz%nLJ^BkbW<9r%XBK~If>F>2Ez zUec%|+n_lqPcNzdSWa=K7$~4+_@_K23ScCoxX!&6C-F`?OxIBoCzf0AZs;&hD@mL@ z_`O0GC}Z&&yf;<%2Ap|1QPPQ%j=CvSB5Vur$xT1LM)SzUoy2>i0^kmmz)j%g@y`Ko z4E2&kYgnQLtbnpIo@v}S0_MOU1Fm$IK)H~?Ys)igPtRz-_)OX}+9Fja2@9t1CdJ`) z4xXtOGwp1HmT}yZ(t};7e-JqPf_tR;mzO8^1G!)N>ESu4y-{Yr)#a-6(4~IO*YZrY zbP~Rv*X^udc6^hd>? z@{)?evu@F#=o)%L$DR>*f(*RTtkBW5RXE<(`*QV9AZlkK!HBM(DNCQdhkD_m0{*G_ za6lr4XM!J_Nt7G_Jv(-3;i)sFD08rg@4a}&m38Ft-0J|%(dXi~`ivg^4sE-G4KjBZpDN|+lF~-*F}I;w=N74X3tCPCE7Pc8Wt9b@yYPMRc7@ju$qaP- z3^BhCmhensuVhe5wAT+p^C9Vn(D8nhs$NYgiN+z&>?6)KCBt*HTYUA2F0Nu2>gdC z6NSN8e3=DfPgl>4csU<5ef($!xs0o z&YiB3Ds|-^iqmc?Q+v zRLfhuanE&%$sT<1i&vJ3%854l^s!{Jt8)$bEAY*7Cezh<;J`X(^@a=AuUWmWE4^lQ zdTrO}>P~0QddV8(RPDcJ9hLBS5EY+^fC5Qe6h5?qYKW6 z&8rkvy=5Jlvcl?1nZvDtN ze)Vgv*n82w-6gy_*ms44{cL$+A6}#3y=(ps_~mOqU_b2wHh{mh z+W~q2aFhD0JNjJkmnYOaczggPZ{gLG|AvGwNfrvNz&>CGwDQWg39DHStIGh^ngdvY z_`;$BIE+$W<4P#!{g~SEiU55wxQ~+oY$`)a?IGuC+8{EW=(qZ}4y!DDK<~%S+nBZc zmi;Eab<0A6TlKK-O=3OeHGcvaL*4=AVWHZ^`nwHYPyPMC1WI{r`(*C2GbbUi5E*NqG1V3&}@Zzq`D_?m-% zzw!OiCv9gSm4!^TALq6{+XLKICvx44u07D@p(itAu?D-RPTXB`bKCqI5szkBWDBr6 zS7rT~+U$Vea`?v=e<^2RRPdHnwDh9aMT`vhWE>+>hRj@El8(U>Nm$g0vl;tiCA3uQ zQIRzUy?N;M@LR5YM#)Vg&e{H*x($vjw%_+9Q)(3coPKPS@lc~ShBFS2TJ?CINf+C- zPR3!jj#EeD)Untgb$ZY{j=wx&J122{rh44oU#|Zn9vD>L3_r_({+H|jod^C0P>M&W literal 8704 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 literal 16896 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 YJ^5X<05*C4{i6KE(C?xFez*JlpAbOkY5)KL