From 9a2d7d9cb7ebf13f04eb5ee2a01f538d9ee8657e Mon Sep 17 00:00:00 2001 From: Rui Fu Date: Fri, 20 Apr 2012 18:56:58 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E4=BA=86ACUCheckReq=E5=B0=81?= =?UTF-8?q?=E5=8C=85=E7=9A=84=E5=A4=84=E7=90=86=EF=BC=8C=E7=9B=B8=E5=BD=93?= =?UTF-8?q?=E4=BA=8E=E5=AF=B9=E8=87=AA=E5=8A=A8=E8=B8=A2=E4=BA=BA=E6=9C=89?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E5=AE=9A=E7=9A=84=E5=A4=84=E7=90=86=E8=83=BD?= =?UTF-8?q?=E5=8A=9B=EF=BC=8C=E4=BD=86=E6=98=AF=E5=85=B7=E4=BD=93=E6=83=85?= =?UTF-8?q?=E5=86=B5=E8=BF=98=E9=9C=80=E6=B5=8B=E8=AF=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .classpath | 2 +- bin/mlserver/GmsvServer.class | Bin 2548 -> 2962 bytes bin/mlserver/Handler.class | Bin 9804 -> 10373 bytes bin/mlserver/MultiThreadServer.class | Bin 2359 -> 2359 bytes bin/mlserver/ServerList.class | Bin 2721 -> 3141 bytes src/mlserver/GmsvServer.java | 15 +++++++++++++++ src/mlserver/MultiThreadServer.java | 20 +++++++++++++------- src/mlserver/ServerList.java | 14 ++++++++++++++ 8 files changed, 43 insertions(+), 8 deletions(-) diff --git a/.classpath b/.classpath index 186110b..d86a2de 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + diff --git a/bin/mlserver/GmsvServer.class b/bin/mlserver/GmsvServer.class index b3a5749bfa54ba050f4a68e4f08d179ef0acad93..1b342ee2a08c8585081dbbd57b43c532cb4a5bec 100644 GIT binary patch literal 2962 zcma)7SyLQU6#nik3=Bz6nXy?9;DQP^Ixh2Q z%+m`5rH2bU4iVO_TV)plx0;i^K_DZUoxD{8ayL+iDuMc0yJ*etZLeC+lDS$?N$ z^0+`a*}EJ^7+nV5#yiz`R{-+jbpugU$(FK{a;raav`d&-D|-4in^I_h$)sHf*{S?Gzc zELfS;leOuyi))eOv`lwWS6r#tFiQ)C1JiP-YLJ;h)k@LE-t=q`W$Dky1}5jtr&@+(QG2@Ny=+265+qB)tK@4&7= zl#H!_9jOm*_rB>eaYQgH8!};r$>$1{QRxwUOgK4ZRBi_zwB~EQ@^3Kp#~C~%PpA40(ex`vA;{Ztwc0>njVeN`KIKM`(Iq6A_(~v< z#91Jh1A$x(29h`nq?JJ0E&w7mkwEy~@heF=)Kw~yPQ5^9s_EJxx>Mmp^rXZgl4{Dc#s$LYBDzT-wEtBkAx8qY0zK=W zx+@Cm;u$8in-@U4?RxeBMqJPQRowFnG3z?iRXh?1ahHslySC!GjY*Ou!&gL_|ahLq?Hk@T1N z$`$aXOLkIdk^_E{^ZmzY@ApX7arkw|kBIg^7xSkn{-r4D`qUH`8F-1HmPzL^(u6!f zkV9OXV0!sBX^N8`#YvYUNNkliW%W-evSEsG$E7F<)gt^4s!2#(kB~*SGcVoRxpbRM QS75s0o2IjgF@(+k00e>&SpWb4 literal 2548 zcma)6TT>iG7(Klg7KY)PgTKV+>F!||U@7x5^L6)kIp=&|_v<&m{|Vp*tQbN97d8te z+ugO@{;AEn8QK(+Rm zo)8ez0iqiB_PTxRU9`(jBl;m2Eu4EQHT0!To6DFSk^=oRnlrR5ks}KE}A?tV(27!Md2hU z1084*Xqa`1_WaJ~n(Z!GYXwDkD{mE+E!UB2Z!=PU>?nFZ%3~Rc)7Y@f8aAEUx|5X{ z(k)f_q%wD-6v)|LQM8N{rKjRirJT~cb@l|iz3n50b)*pNd;AEi8V$embwm|(Yw@ZF zy<{Dtm(!+asMgOdCx*S`%+&gce;J>sv`7 zITS-CKEf@+Bxp_+f$2(tE0T#}grnonf^NNmVT_vi7)cUg@c8;ud(XgaWMlZ`#6{C; zn)npsoN@cR9jhRRD~Md*#Z2;ng!Gw-N$Fah-zt_Zr&yAkcT7yn&9Jq;F4r?AX3<9} zOV0Nk<7i%%=l$FkXgYJb80JcP!V##;m96~KIcwXSb>my7xUMM)TnmEorhtl^qMni5 zmrbll04BNLvp4jmVk3h#u^wfPcb~~3N1$fiE*$CEfv-)hDv?}!b8DBhjNI0ao3|$& zc~u*ZFJYg&;&_kuKFn7yjF5Z~Xoci+p#FRecv`D$lYbINJ--dyS!D#D5?oHbL}RMC zc^~mqcpt4Pv5)rDALzLM5(%2Ws_1w4?NHebMEEyYqk&c8F!3(4UgEi_^KpHdD?wye zh(%X_U)AjAuB;hN{f71zG(wPxtJG$5AW76uaur>El4~l-BG(}qmFn@}g;f?q?Y2{d ziz-vA_VO~xDq4;Y7^|Vm9cl4>Mv`ACOAuoGG{j34A*Rsd1&;-x#gCQK(5@0%*E!I7 zl?Vc9^i=@T`kcsuTBRxi>BqnsAf0UKX&?gxa{U}2*V$C5$PIkRin@7&N}0d8juOX= znDeG%K0Flp1p~5~Es+D z_jOw88&S=>q9*nxOAK+gZlMt)+#kgt-UR!!dM-WQe45Sn>pX<&n(_O|maYaz1^C_Ows3 zj^-DMpAb#I5c4M~{-r4D`P39An0S()?w|#C(Tf>2e2#saB*BFM#jH;;>rn)WeaT2U z{kIj_FvS@0C`v-L2>*j>5)xez^0l?w#QRVM4%A&=eFy2tm+NNDxWFmKxRsFf8Jb8ImE%Oq`j3QCtgk zt+iIG;0Cret|%%K3l^7JZ0+m%c=q*mU$olyYOCESD)fKuotaDs75(+e&wIan&i8$1 z`=9eIlUI)JI{;v+eBFRcP|(qyj3hQi5|bB%V&V2k!hna=jiF7U$?c(7%jCuDH%6LM z27H2GA9Yz*EEZbd9ub(0HTCP}FRq_MetlnuhEyUNYpD_pu8qf%sZcDnBGld$F)>JB zgx9ZYiMNL{gXb)tTW?~BLl1XF+6BI3ytyrs5)5;uj73tD8*CD19NHX@#i-MgP%^nW zo(P*LN~c!i1=xRRWqs6J;{gKb}ZG@0UHR|lB|eawZSXnRuWEeSzkAALUcTNaA7 zDJ$HcHHRu@SiYIjSTr?Du~qJ4AaDbPoB1owUC1on|~f+nmGcxvO}NC0k>SQw3u z3*4m>R`?+pXTgA}turiGPU}ny!<^Ox3&T;Q+=&)OV5GJtSvUp7+L~-(6h5Y{DHevJ zfX=Ot#v+TlI@U)LjZT1r_3`FV`-)H^s^1x+C)FBFYQ%G1&cKKM^0!1%D-+RFgl;Px z=$8qOr=s!6O9+unPYw&ry`(wPnTirF1}Yg08%*q0w>ZZMU?yf6IG1|b+&)}bI1jT) zrtHOCsm`tx0T>B&2u>;O6PVAbGEkEzBu|$Bsxe2MJXbI(qd(Q?H+YqX#P6V#48e$; zRsH%o-dGk1h1DAqKgb(3T^lw;5|Oaexk^nv-$FeW3Wm_Cx>%l3BlC>PW6-9>R3+=U z{xcd_Dk#qK@+6(JS$$$UKBwm z7B0nQl(dOeEW9M7HFH4*Yegq=?9FtsdWfsImYBYLvWpcR#RA8ae@HO0 z4{DD8YPtxBNW#P;tclfKsn$ri#8ImjX$-;9Q5TjGqhxV9>7ntCA-lI26e4S(G)GY4|hfKoi@uwDkrVg=4Y>cMbBbqkK_=SaEYHv-bd7lS{O<sgBJ8M}B`0i}r*%sNRVM)TKquv)ysyd=>Dy$S zC8ukm1U5ut8Dy9;p3%u_P-03cVU}_5y!NhStEygR$wVn%rCB@tVfuyY7Ag%P6I{yp=>niA#WJD|q~ zMwE-9iVK^ZSwo zwK<_-V#(#Y*({*$ z_0f)~jXhP}lq&@=$)=3-jCTjHYT{+;2B8Lmh>vm+uR;c(ig7v^wTMh!8|kfKY`LjS0^!j+(y>9D^Nc( z3z^+{{Jf)ol_Ae(>$_d48(S0c&CV4?pdsFsXpZQD$2ctPYEMPUr3udJX5R~;ga;-! z|M$W~P_Inb_VXspg#f>KagzHU%x_+XkQdZzlpH6Zhh*vT|ii zQbw^yImKSG_SkZ!@>z)?eAdFlRsdDh^ju!;oJS32)5>a`ff|%y4klwR&cQs)zXEAl?UFY0Go%c8)R+UK%cYN6Y1sf`}HrB-^$CxrN%PMU|d&akar%C`0& zIx&r^h5J$6RPO0T?Gq%qplS!~iR(GRLR*azr+ZF~p&2#2>^YAryZDc&<+Hz_m7GBZ z6;aTqC}>gBek^G!@5QoSEI(e{Qg&|06IYZISCkW1fD6z>F`^0K#IC?i9}S|;JLGw+ zSy=Wo&PwCLG}bS2nyt^Ez0x!BVBoTe!Hd&KR(csE_taiovOUnMt>Bh4uGo&-ioM>c z2LsFX6%3|v_4YvBer#*%#kG~bVqdY>Gc}FtwBeij3~ox}mSW$eG>7?$J!#xQVWq{s zG1wbR2sX3Px9eRwLADU+nix{Fs(#RvOD+;A8G7M zV}FnT+qQDg+sX~HZR_#(+O!vyCZh8MU$Xgc2z6A&57I*S)Jh}w;i0nMoMx*0N`J9G z_#JgYz}D6%GSm2;8g~#gX-2^981|pq)^RlQzqRe9>Oav&#`2%D?KMdJRSz!Qk3;m) zZ*3nLX}nhK(`nz(?jL9s z`^h|Uyy<4MTBFhVN6xI{1XtU#-m_)ZW_TJ|B|n3s46h<97gwjPPTQTK+p%X{8+wet z>Yze#*^{+tn9|}Y6ngIJ?IOZGH8dv`2Q>Bc7ww5m^+Mn_sbCK(<=p)K3Z5t zpGl!M(o)=GT;&KIZ3|tg-cnH5h^aKxA(IF{IknO(Hj9lS4jp^YsL!<-49`wuW}e}N za)x4>N-J7v)oG4^Gi?E@Z3QSqb)=xQOt3-bql42j>0aO4_FMDBJzq z^?4bRmT3)JdAK5pop&93Eo+63@mJT)P$4eHgy;{b+hl|a%0j;{4;(AizH(>!DmCzB ztllrxO}$d9Uz|ba&{E2pUu>!l3;1QHIQ6d6Hi0hc42H%wX0f&lG!@umnLWFimgPN| z_x~_mKPNMNJW#++)%48y;+N5Q5kN0NVJ%iOf-fK?go(ji3Yfj*v!T-K{ zDvIfzb&h-f-RVBqJv8^E?x{%2MLnLl1Er8cNm3u^A6|#qQv2|Rdya$DK`h9^pt;Y|Kg;pk{-L_g!y0-fy$L&)W0>$(!f(9y<)SqwQkRG0iM8UH73bYs|%T8`mC5+Eq6{S^82a zyAB`keAn9SESvtFSw{Bx-!&+!Zzc$roJ8L|_nll{dF)^4`_X1;aU#)eM`Bf;v%joS zu@{M~73I1vT*jS+aS)BgMxk86;(1Od+iq9a58~HodEoj5{5yMZ({Vfu_ z-%a5?bm15_34eEz(dd@3xKt+cu5&uJ$ho*&>TrcD$CYv+u9A(oS~lU+awUH$`V4OZ zKg(Z(w&Pm)3a*pgxL)?*2KhSgpMHSP%B#3peuZ1)E!-hTu-)au4woNyxklh_*Ld9H zIve-8rsFbgGkMFwg!S~z`;|K1i@I&`kamf7& z-#@~u?qA`@?ziw0_YwTeW8mkWk@$t@bo|mY0l)T4#cw<_@LSJpyylsY*F6pRoo5Z+ z@U-GhPZxggxtbfx>+na<=kO=b7xA{|e!Sy(1b^lU=r5j^@Hfx5@OQ5phrNSw#9NH_ zyyNk{cN&g*YjMoGK*YOLT;2=B?Oi7x?*{RD6XNq;CWiM~F}=5m-@8)=dwXPvcef1n z?v(=X3o^|6iUhr{N}=~RQsjL@M)=0cNME^(^39OZzIignw?aBdf}G#-|7jb1s=cu8g( zhosv0rPLa)$sFSynQI)D`Q|J+-`pyT%v)p$cgRc4`(>H=pfs9q$p!v%WR1UC*7_I9 zI{yl}$iG@b{tdF;ze$??&q~DqmbChh$i{$M+5)_O3lvI6V4TDPQRxiaDVz1gCRbp* zp1`svHlD?Eu8lM8}^UE-~`D!(~*%4wtcQbhwQ0Qisbpbvj%|>mrA1yn|ciF16CUpTBY0 zE&mGKDR-0R^KW2wZdY#v+_>GL1qzwHHcjqfRk0u$EAFND?jz+*R2;*1;4>fw_=iDj z?58$ZiVBb6^B6RcW#ACIWd?vh;jB8wY@VnkcEB`-#!ss&BQU3UE&%f<3nCCMM z-rpAx8{G(Wry1`gz5fwv3|ObQyj$?lqMX)Dc(br1*qm9 zI`y?Gr^0Sts?EcwAi((Zx^p3b*9k4X1nDjq!ZSvbJGiBx$rF6Bp~+h)qZ^uh!RH&A zjNp3>O(xG_4NV2ULh0scVY+rCH{rS~^-8C|ml>zO6(thzC_H_O%bO-Grd zXf|(HxxdU93voS~^;q*}9Zs>)=(Zy|2=4c>o&l6WyabU4@Nvgx*CHm7UXi_6#tqV0 zz0y;kX*{%07WJUMY*Jbtsq_?k4q|q(=fE^?k=L^mMdkbHpkfcNL*%iv?C!xh_cUJ* zMr7zkz6@ilPl|j+-d)GuoS2r!n-;x%Y)=nn*Yo2^m3NQ=^xj4G_Mk>j5v2EEx_!1J zb9jy!$S{kI=bUi^S$k*+xYV`tvg%@7iEH=2k8;`D%`|(Qe>(64{~}-y9+0Q_>-}#27VtRsk@hTUFYvNeFX=k<`Ux*)g6K!H zJR@IaT!L67`(!_ZI2;$)1<_4SYwUu^;)m(-EK}Rd>%lR0h<*Gs3XgnE4sh&Nc=v-5rDNZ({2Oc5%sz{{*tRVzK}L literal 9804 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 TR8n`xNd3*&dYD~2^2omcrvcvW diff --git a/bin/mlserver/MultiThreadServer.class b/bin/mlserver/MultiThreadServer.class index 9ed38c271688ba8fbfaadad9eede464918f17b07..f2975d6d7e9ca6f4eb136eb16f51673c09986b1b 100644 GIT binary patch delta 32 ocmdlkv|VUIJmcn#3ICZH4L2vSJY{0sJlT!insM{yCibn20M4!p?f?J) delta 32 ocmdlkv|VUIJmaQ~3ICZH4K^pRJY{0sG}(>ansL+SCibn20M2j=>Hq)$ diff --git a/bin/mlserver/ServerList.class b/bin/mlserver/ServerList.class index 7add8d0b3536a2b869eafef0aa01ab55f5f77d2d..99f4f5fb9c5cf4e7569762ba5f8687791e326ac3 100644 GIT binary patch delta 971 zcmZ8fO-~b16g{sq?M#QMROtt#Aps4cKxYsxU`&jPciKpznasTV-aGf4bMKua=V_zz;rFZ80Is2Q zqO=JO^;vCqTGRJ6eN-=Q$5IRfd`M{ECBgCZ(6Oo@h+8UdV~C;d9BRNE-j4WYWr!hh$hHaoJbQSGeImPSi%$!$ZqF+)rg7q30R0h!~)WML2gbg5Z*$sj77SY z&`fqz@=(Jr(`p!Of%%NYEE1T6s02GLL8|O0TAA|)WD{jPpb?$Q0hZz4ADR44UuOc43=-omQoBW43~9 z!bkbOfAd|{S(b=Jr@G6yh&`I>LDg^zX#nnX!*0VI8M47zoo=mV0+@>q3j{Tx_y;=b Btfl|} delta 696 zcmZ9IOHWf#6ouF6ef8d6LPgu!)FxF!pbsn>sI-Kl1w~3(6F$9<#5d$JMmT8nu_$}yjrtT^n1+fJ4BW;L z(g-1gYnVk8b4Vh~zj?MYhZ6I3EZ`Eyum(5xE%@N)Ik+w10R&lfEJNq1VjX#TVuq(y zNYJ_5D494PqLT;`9tLF_S?i{A`w7NyT~eK}`fQiN0*dV;6iJ$&0` zh04<#yVA$A(!?>`6Y)OQj~G*Mk^9JLzDA`DSlGlcw&fd7Kp9ZqdB$FEF?Po4kfrcN zAbt#AjFd$piwPnV|04Zt4rmg*!$CN>fEK5_ciK|q3~}C4U|^pDLonI?I3)%%R3Q8e KZi5UL8ovRSRBW#R diff --git a/src/mlserver/GmsvServer.java b/src/mlserver/GmsvServer.java index 0f3132d..ea481ae 100644 --- a/src/mlserver/GmsvServer.java +++ b/src/mlserver/GmsvServer.java @@ -6,7 +6,21 @@ public class GmsvServer { private String ServerName = ""; private int ServerID = 0; private ArrayList players = null; + private String serverIP = ""; + private String serverPort = ""; + public String getServerIP() { + return serverIP; + } + public void setServerIP(String serverIP) { + this.serverIP = serverIP; + } + public String getServerPort() { + return serverPort; + } + public void setServerPort(String serverPort) { + this.serverPort = serverPort; + } public GmsvServer() { players = new ArrayList(); @@ -94,4 +108,5 @@ public class GmsvServer { players.remove(p); } } + } diff --git a/src/mlserver/MultiThreadServer.java b/src/mlserver/MultiThreadServer.java index b0ce89a..24f259f 100644 --- a/src/mlserver/MultiThreadServer.java +++ b/src/mlserver/MultiThreadServer.java @@ -11,7 +11,7 @@ import java.util.ArrayList; import java.util.concurrent.*; public class MultiThreadServer { - private final int port = 9650; + private final int port = 9651; private final ServerSocket serverSocket; private final ExecutorService executorService;// 线程池 private final int POOL_SIZE = 5;// 单个CPU线程池大小 @@ -85,6 +85,8 @@ class Handler implements Runnable { public String[] echo(final String msg) { String []ret = null; + String myIP = socket.getInetAddress().toString(); + String myPort = Integer.toString(socket.getPort()); if(msg!=null) { String[] packet = msg.split(" "); @@ -97,10 +99,12 @@ class Handler implements Runnable { GmsvServer gs = new GmsvServer(); gs.setServerName(packet[1]); gs.setServerID(Integer.parseInt(packet[3])); + gs.setServerIP(myIP); + gs.setServerPort(myPort); sl.addNewServer(gs); ret = new String[1]; ret[0] = "ACServerLogin successful"; - System.out.println("Authed Server [" +packet[3] + " : " + packet[1] + "] connected... From "+socket.getInetAddress().toString() + ":" + socket.getPort() + "."); + System.out.println("Authed Server [" +packet[3] + " : " + packet[1] + "] connected... From "+myIP + ":" + myPort + "."); } } else if(packet[0].equalsIgnoreCase("ACServerLogout") ) @@ -185,14 +189,16 @@ class Handler implements Runnable { } else if(packet[0].equalsIgnoreCase("ACUCheckReq"))//自动踢人 { - /*int RegNumber = Tools.SixtyTwoScale(packet[1]); + int RegNumber = Tools.SixtyTwoScale(packet[1]); String cdkey = packet[2]; - if(sl.hasCdKeyPlayer(cdkey)>0 ) + GmsvServer gs = sl.getServerFromIP(myIP, myPort); + //System.out.println("ACUCheckReq "+RegNumber+" " + cdkey); + if(gs.findPlayer(cdkey, RegNumber)!=null && gs.findPlayer(cdkey, RegNumber).getOnline()==1) { - + //System.out.println("ACUCheckReq sent"); + ret = new String[1]; + ret[0] = "ACUCheck " + cdkey; } - ret = new String[1]; - ret[0] = "ACUCheck " + cdkey;*/ } else if(packet[0].equalsIgnoreCase("MessageFlush")) { diff --git a/src/mlserver/ServerList.java b/src/mlserver/ServerList.java index 8527ba9..9e3c0f1 100644 --- a/src/mlserver/ServerList.java +++ b/src/mlserver/ServerList.java @@ -45,6 +45,20 @@ public class ServerList { return gs; } + public GmsvServer getServerFromIP(String ip,String p) + { + GmsvServer gs = null; + for(int i=0;i