cehua_ZWJ
2019-01-30 6afaa4408f4e09e3e95dbd92f0d1cd5a1fb2942b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(«Qc@sÓdZddlZddlZddlZddlZddlZddlmZmZm    Z    ddl
m Z m Z m Z dZdZdZd    ejfd
„ƒYZdad „Zd „Zd „Zd„ZdS(s#
Created on 2012-7-3
 
@author: xcc
iÿÿÿÿN(t SSCommonFunct SSCommonLogtSSInfo(t SSPackParsetSSPackDispatchert
SSPackProciigü©ñÒMbP?itCStatusRespondClientcBsžeZeed„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d„Z d„Z d    „Z d
„Zd „Zd „Zd „Zd„Zd„ZRS(cCsntjj|ƒ||_d|_||_||_t|_    ||_
d|_ ||_ ||_ d|_dS(Ni(tasyncoret
dispatchert__init__t"_CStatusRespondClient__IsReconnecttNonet"_CStatusRespondClient__SSPackParset_CStatusRespondClient__Hostt_CStatusRespondClient__PorttFalset_CStatusRespondClient__Exitt$_CStatusRespondClient__HeartIntervalt_CStatusRespondClient__LastTickt_CStatusRespondClient__Namet_CStatusRespondClient__IDt_CStatusRespondClient__OnTimer(tselfthosttporttnametidt isReconnectt heartInterval((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyR    s                                    cCs ||_dS(N(R(RtonTimer((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt
SetOnTimer'scCs|jS(N(R(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt GetClientName+scCs|jS(N(R(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt GetClientID/scCs ||_dS(N(R(RR((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytSetHearInterval3scCs|jS(N(R(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytIsClose7scCsVtjƒjd|j|jfƒ|jtjtjƒ|j    |j|jfƒdS(Ns Connectting Host = %s, Port = %s(
RtGetLogtinfoR Rt create_sockettsockettAF_INETt SOCK_STREAMtconnect(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytConnect;s#cCs@|dkst|dƒ r3tjƒjdƒdS||_dS(NtOnRecvOrignPacksF(SSPackParse == None) or (not hasattr(SSPackParse, "OnRecvOrignPack"))(R thasattrRR#twarningR (RR((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytBindSSPackParseAscCs ||_dS(N(R
(RR((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytSetIsReconnectIscCs|js dSy|jtƒ}t|ƒdkr?|jƒdStjƒjdt|ƒtj    |ƒ|j
fƒ|j dkr–tjƒj dƒn|j j||ƒWn]tjk
r    }tjƒjd|j
|fƒtjƒjdtjƒƒ|jƒnXdS(Nis*recv len = %s data = %s from socketID = %ssself.__SSPackParse == None!s Recv Fail! sockid = %s why = %s!sTraceback : %s(t    connectedtrecvt DEF_RECVLENtlent handle_closeRR#R$Rtb2a_hext_filenoR R R-R+R&terrort    tracebackt
format_exc(RtrecvBuftwhy((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt handle_readMs     
# cCs{|jr|jƒnt}tjƒ}|jdkrOtjƒ|_t}n(||j|jkrw||_t}n|S(Ni(RRttimeRtTrueR(RtisSendHeartPacktnow((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytwritablees                  cCstj|ƒdS(N(Rt SendHeartPack(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt handle_writetscCs²|jr tjƒjdƒdS|dkrCtjƒjdƒdS|dks[|dkrrtjƒjdƒdSd}|jr™|jj||ƒ}n|dkr©dSxt|ƒr­y’|j|ƒ}|dkrtjƒjd|j    |t
j |ƒfƒt j dƒw¬ntjƒjd|t
j || ƒfƒ||}Wq¬tjk
r©}tjƒjd    |j    |fƒtjƒjd
tjƒƒ|jƒq¬Xq¬WdS( Ns!Client is closed! Can't SendPack.s head == Nonets    no bufferis/Send Fail! sockid = %s, sendlen = %d, data = %sg¸…ëQ¸ž?sSendlen = %s, data = %ss Send Fail! sockid = %s why = %s!sTraceback : %s(RRR#R-R R tPackDataR3tsendR6RR5R=tsleepR$R&R7R8R9R4(RtheadtbuffertpacktsendlenR;((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytSendPackws:             cCs4tjƒjd|j|jfƒtj|ƒdS(Ns Connect OK. Host = %s, Port = %s(RR#R$R RRt SendLoginPack(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pythandle_connect™s#cCsG|jƒtjƒjd|j|jfƒ|jrC|jƒndS(Ns Disconnect! Host = %s, Port = %s(tcloseRR#R$R RR
R*(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyR4žs
#    cCsPtjƒjdƒ|jtƒ|jrCtj|ƒ|jƒnt    |_
dS(NsClose SSClient.( RR#R$R/RR0RtSendLogoutPackR4R>R(R((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt CloseClient¨s        (t__name__t
__module__R>tDEF_HEART_INTERVALR    RRR R!R"R*R.R/R<RARCRLRNR4RQ(((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyRs                                                  "        
cCsµtjƒjdƒtjƒtdkrAt||||ƒantjtj    ƒt
j ƒ}t j ƒ}tj|_tj|_tj|_|j|ƒtj|ƒtjƒtS(NsStart CommStatusRespondClient.(RR#R$Rt
InitSSInfot __oSSClientR RRt CheckSSInfoRt CSSPackParseRtCSSPackDispatcherRtOnCSVCommonCmdtfpOnCSVCommonCmdt OnCSVBaseInfotfpOnCSVBaseInfotOnSTSVClientLogouttfpOnSTSVClientLogouttBindSSPackDispatcherR.R*(RRt
clientnametclientidt oSSPackParsetoSSPackDispatcher((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytConnectToStatusServer¸s
 
cCstrtjƒndS(N(RVRQ(((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt CloseSSClientÐscCstrtjƒStS(N(RVR"R(((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pytSSClientIsCloseÖs
cCstrtj|ƒSdS(N(RVR!(t hearInterval((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyR!Ýsi(t__doc__RR&R8R=tloggingtSSCommonRRRt SSPackProcessRRRR2tDEF_SLEEP_TIMERTRRR RVReRfRgR!(((s3.\server\db\PyMongoDataServer\SSNetWork\SSClient.pyt<module>
s      š