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
38
39
40
41
42
43
44
45
46
Ö4hc@s[ddlmZmZmZmZmZmZmZmZm    Z    m
Z
ddl m Z m Z ddlmZddlmZddlmZeddƒ\ZZZZZZZZZZZZ Z!Z"Z#defd    „ƒYZ$d
ejfd „ƒYZ%d e%fd „ƒYZ&de j fd„ƒYZ'd„Z(d„Z)d„Z*e+dkrWe*ƒndS(iÿÿÿÿ(
tc_intt    Structuretc_ushorttc_ubytetmemsett    addressoftmemmovetsizeoftcreate_string_buffert    string_at(tmylogtObjPool(tb2a_hex(tIPack(terroriittagMMORPGPackHeadcBsŒeZdZdZdefdefdefdefdefgZd„Zd„Z    d    „Z
d
d
d „Z d „Z d „Z d„ZRS(s·â°üÍ·Ààit    sessionIDt    poolIndexttypet
dstSvrTypet
srcSvrTypecCstj|ƒ|jƒdS(N(Rt__init__tclear(tself((s&.\\ServersRoute\Protocol\MMORPGPack.pyR1s cCs&tt|ƒt|ƒt|ƒƒdS(N(RRR(Rt anotherHead((s&.\\ServersRoute\Protocol\MMORPGPack.pytassign5scCs tt|ƒd|jƒƒdS(Ni(RRt    getLength(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyR8sicCsÑ||ks?tjdtjd|tfƒ}tj|ƒdSt|ƒ||jƒkrtjdtjdt|ƒ||jƒƒƒ}tj|ƒdS|jƒtt    |ƒ|||jƒƒ|jƒS(NRserror pos = %d len = %diÿÿÿÿslen = %d while %d expected!(
Rt    formatMsgt ERROR_NO_10tlenR
Rt ERROR_NO_11RRR(Rtbuftpostlengthtmsg((s&.\\ServersRoute\Protocol\MMORPGPack.pytreadData;s " 1 
 cCs
ttƒS(N(RR(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyRHscCstt|ƒ|jƒƒS(N(R    RR(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyt    getBufferKscCs&d|j|j|j|j|jfS(Ns‡//MMORPG·â°üÍ·//tagMMORPGPackHead:
    sessionID:0x%x,
    poolIndex:0x%x,
    type:0x%x,
    dstSvrType:0x%x,
    srcSvrType:0x%x
    (RRRRR(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyt outputStringNs (t__name__t
__module__t__doc__t_pack_RRRt_fields_RRRR#RR$R%(((s&.\\ServersRoute\Protocol\MMORPGPack.pyR(s                                     t MMORPGPacketcBsƒeZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „Zd „ZRS(s·â°üÀàcCs)tjj|ƒtƒ|_d|_dS(Nt(R RRt_MMORPGPacket__packHeadt_MMORPGPacket__buf(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyR_s cCs|jj|jƒdS(N(R-R(Rt anotherPack((s&.\\ServersRoute\Protocol\MMORPGPack.pyt
assignHeadescCs0|j|ƒtjj||ƒ|j|_dS(N(R0R RR.(Rtother((s&.\\ServersRoute\Protocol\MMORPGPack.pyRhs cCs|jS(N(R-(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyt getPackHeadmscCs
|jjS(N(R-R(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyt getDstSvrTypepscCs||j_dS(N(R-R(RR((s&.\\ServersRoute\Protocol\MMORPGPack.pyt setSrcSvrTypesscCs,|jjƒd|_d|_d|_dS(NR,iÿÿÿÿ(R-RR.t_MMORPGPacket__recvFromSocketIDt_MMORPGPacket__sendViaSocketID(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyRvs         cCsrt|ƒ}||jjƒkr%dS|jj|d|ƒ}d|krMdS||dkra|S|||_|S(Niÿÿÿÿi(RR-RR#R.(RRtbufLentreadLen((s&.\\ServersRoute\Protocol\MMORPGPack.pyR#|s   cCs|jjƒ|jS(N(R-R$R.(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyt getPackDataˆscCs ||_dS(N(R.(RR((s&.\\ServersRoute\Protocol\MMORPGPack.pyt    setBuffer‹scCs|jS(N(R.(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyR$ŽscCs t|jƒS(N(RR.(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyR‘scCs|jjƒt|jƒS(N(R-R%R R.(R((s&.\\ServersRoute\Protocol\MMORPGPack.pyR%”s(R&R'R(RR0RR2R3R4RR#R9R:R$RR%(((s&.\\ServersRoute\Protocol\MMORPGPack.pyR+]s                                                 tMMORPGPacket_StackcBseZdZd„ZRS(s"¶ÑÕ»Éϵķâ°üÀ࣬·ÀÖ¹Îó·Å»Ø·â°ü³ØÖÐcCstS(N(tFalse(R((s&.\\ServersRoute\Protocol\MMORPGPack.pytIsAlloc™s(R&R'R(R=(((s&.\\ServersRoute\Protocol\MMORPGPack.pyR;—stMMORPGPacketPoolcBseZdZd„ZRS(s·â°ü³ØÀà,Ḭ̈߳²È«cCs&tjj|dtd|d|ƒdS(Nt    classnametinitSizet increaseSize(R RR+(RtmaxSizetincSize((s&.\\ServersRoute\Protocol\MMORPGPack.pyRžs(R&R'R(R(((s&.\\ServersRoute\Protocol\MMORPGPack.pyR>œsc Cshtddƒ}tjdt|ƒƒtddƒ}tjdt|ƒƒd}d}g}tjd||fƒx•t|ƒD]‡}xPt|ƒD]B}|jƒ}|j|ƒtjdt|ƒ|jƒfƒq•Wtjd|jƒƒtjd    |j    ƒƒq‚Wtjd
|ƒd }xo|D]g}||krAPn|d7}|j
|ƒtjdt|ƒ|jƒfƒtjd    |j    ƒƒq+Wtjd |ƒxZt|ƒD]L}|jƒ}tjdt|ƒ|jƒfƒtjd    |j    ƒƒq´Wt ƒ}    tjd |    jƒƒ|jƒ}
tjd|
jƒƒ|    }
tjd|
jƒƒdS(Ni
isid(packPool1) = %ssid(packPool2) = %sis·ÖÅä%sÅú£¬Ã¿Åú%s¸öspack %s isAlloc = %sspool1 cnt = %sspool1 allocCnt = %ss ÊÍ·ÅÒ»Åú%s¸öisÔÙ·ÖÅäÒ»Åú%s¸öspackStack.isAlloc() = %sspackHeap.isAlloc() = %ss"after copy packHeap.isAlloc() = %s( R>R
tinfotidtxrangetalloctappendtisAlloctcountt getAllocCnttfreeR;( t    packPool1t    packPool2tallocCntt
allocTimest
allocPackstjtitpacktfreeCntt    packStacktpackHeap((s&.\\ServersRoute\Protocol\MMORPGPack.pyttest_MMORPGPacketPool¡sF  '  
 # #     cCsøtƒ}tjd|jƒƒd|_d|_d|_d|_d|_tjd|jƒƒtjdt    |j
ƒƒƒtƒ}tjd|jƒƒ|j |j
ƒd    |j ƒƒtjd|jƒƒtjd
t    |j
ƒƒƒdS( Ns    head = %si …uiiiishead.bindata = %ss
head1 = %sishead1.bindata = %s( RR
RDR%RRRRRR R$R#R(theadthead1((s&.\\ServersRoute\Protocol\MMORPGPack.pyttest_tagMMORPGPackHeadËs                            cCstjdƒtƒdS(Nstest_MMORPGHead.log(R
t    InitMyLogRX(((s&.\\ServersRoute\Protocol\MMORPGPack.pyttestÝs t__main__N(,tctypesRRRRRRRRRR    tCommonR
R tbinasciiR tNetCoreR tDBCommonRtrangetstMintstDatat stCenterGatetstGametstLogintstRoutetstMaptstGatet stInterfacetstDbSaveServertstCreateRoleServertstGMToolt stMergeClientt    stNoSensetstMaxRR+R;R>RXR[R]R&(((s&.\\ServersRoute\Protocol\MMORPGPack.pyt<module>
sF<5:    *