cehua_wcy
2018-12-22 c1f9d909b0b722a5dd31727d6a13729f3790e90a
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
µ\c@sïddlZddlZddlZddlmZddlZddlmZddlZddl    m
Z
ddl m Z ddl Z edƒZde
fd„ƒYZd    ejfd
„ƒYZd „Zd „Zed krëeƒndS(iÿÿÿÿN(tmylog(tsleep(tThread(tSingletonObjectsConfig.DBConfigtSendPackDispatchThreadcBs#eZd„Zd„Zd„ZRS(cCs tj|ddƒ||_dS(NtnameR(Rt__init__t'_SendPackDispatchThread__asyncoreServer(tselftasyncoreServer((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyRscCs4|jjƒtjr0tjd|jƒƒndS(Nsend of thread %s!(RtprocessSendQueuetDBConfigtMultiThreadingRtinfotgetName(R((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pytruns     cCs1tj|ƒtjd|jƒ|jfƒdS(NsThread %s(%s) start!(RtstartRR Rtident(R((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyR s (t__name__t
__module__RRR(((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyRs        tAsynCoreServercBsžeZdd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d    „Z
d
„Z d „Z d „Z d „Zd„Zdd„Zd„ZRS(iÿÿÿÿcCsktjj|ƒt|ƒ|_||_tjƒ|_t    j    ƒ|_
t    j    ƒ|_ t |_ ||_dS(N(tasyncoret
dispatcherRRt'_AsynCoreServer__sendPackDispatchThreadRtAsynServerClienttAsynServerClientMgrt    clientMgrtQueuet_AsynCoreServer__recvQueuet    sendQueuetFalset_AsynCoreServer__activet MaxClientCnt(RRR ((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyR&s        cCs |jjƒS(N(Rt getClientCnt(R((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt GetClientCnt3scCstjdƒdS(s×ÓÀàʵÏÖs
unhandled!N(Rtwarning(RtsocktaddrtonClientDisconnectt    recvQueue((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pytonAcceptClient6scCs|jj|ƒS(N(Rt    getClient(Rt    sessionID((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pytFindClientBySessionID>scCs |jjƒS(N(Rtqsize(R((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt sendQueueSizeAscCs|jj|ƒdS(N(Rtput(Rtpack((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pytpushSendDscCs |jjƒS(s#recv queue item cnt,but no reliable(RR,(R((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt recvQueueCntKscCs/y|jjƒ}Wntjk
r*dSX|S(N(Rt
get_nowaitRtEmptytNone(RR/((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pytrecvQueuePopNoWaitOs
cCs|jjƒ}|S(N(Rtget(RtrecvPack((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt recvQueuePopWscCsúy|jƒ\}}Wn=tjk
rU}tjt|ƒƒtjtjƒƒdSX|jdkr«|j    ƒ|jkr«tjd|j||j
ƒfƒ|j ƒdStj d||j
ƒfƒ|j |||j|jƒ}|jj|ƒdS(Niÿÿÿÿs:ClientCnt > %d ,close new Client(addr = %s, SocketID = %s)s)connect accepted!addr = %s, SocketID = %s(taccepttsocketterrorRR#tunicodet    tracebackt
format_excR R"tfilenotcloseR R(t#_AsynCoreServer__onClientDisconnectRRt    addClient(RR$R%twhytclient((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt handle_accept\s$#
cCstjd|jƒdS(Ns    %s close!(RR R(R((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt handle_closenscCsJ|jj|ƒsFtjd|jjtjƒdd|jfƒndS(Ns&%s.%s del client failed!sessionID = %sii(    Rt    delClientRtdebugt    __class__RtinspecttstackR*(RRD((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt__onClientDisconnectqs#cCsXxQ|jrSy|jjƒ}Wntjk
r;d}nX|dkretjratdƒqqePn|j    ƒdkrÃ|j
j ƒ}x4|D],}t j |jƒƒ|j|jƒƒqWqn|j
j|j    ƒƒ}|dkr*t j d|jjtjƒdd|j    ƒ|jƒfƒqn|j|jƒƒtjƒj|ƒqWdS(Ngü©ñÒMbP?is#%s.%s sessionID = %s ignore pack %si(RRR2RR3R4R R Rt getSessionIDRt getClientListRRHt outputStringR0t getPackDataR)RIRRJRKRt getPackPooltfree(RR/t
clientListRDt serverClient((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyR
vs. 
     
  #cCs*tjd|ƒt|_|jj|ƒS(s?¸²¸Ç¸¸ÀàµÄͬÃû·½·¨£¬¸¸ÀàÔÚNTϵͳÏ£¬ÏÞÖÆÁËÁ¬½Ó¶ÓÁеÄ×î´óÊýÁ¿Îª5sServer start with backlog = %s(RRHtTruet    acceptingR:tlisten(RtconnectionQueueSize((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyRW”s    icCs‰t|_tjr"|jjƒn|jtjtj    ƒd|f}t
j d|j |fƒ|j |ƒt
j dƒ|j|ƒdS(Nts%s starting at port = %s...sbind ok!start listenning...(RURR R RRt create_socketR:tAF_INETt SOCK_STREAMRR RtbindRW(RtportRXtbindAddr((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyRšs           cCsp|js dStjdƒt|_tjr_|jjdƒx |jjƒr[t    dƒq?WntjdƒdS(NsStoping server...igš™™™™™¹?sStop server OK!(
RRR RR R RtjointisAliveR(R((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pytstop¨s             (RRRR"R(R+R-R0R1R5R8RERFRAR
RWRRb(((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyR$s                                                       cCs*ddl}tjd|j|ƒƒdS(Niÿÿÿÿsbuf = %s(tbinasciiRRHtb2a_hex(tbufRc((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pytOnGetMMORPGPacket³s cCsÔyatjdtƒtdƒ}t|_|jƒx*tr_tj    dt
ddƒt dƒq6WWnlt jk
r—tjdƒtjtjƒƒn9tk
rÏ}tjt|ƒƒtjtjƒƒnXdS(Ns%s.logtDBServergð?igš™™™™™¹?s socket error!(Rt    InitMyLogRRRft    OnGetPackRRURtloopRR4RR:R;R=R>t    ExceptionR<(tServerte((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyttest·s     
     t__main__(R:RRtCommonRR=ttimeRRt    threadingRtDBCommonRRJt
__import__R RRRRfRnR(((sS.\\TCode\TeamServer\Server4\Servers\PyMongoDataServer\src\NetCore\AsyncoreServer.pyt<module>
s        