Вы находитесь на странице: 1из 7

!

"#$%&'(
!"#$%
E-mail Box: make.sense@msa.hinet.net
P.S )*+,-./0123
1. 45
&'()*+,-./0123456789:;<=>?(protocol)7()@A
BC1DEFGH7-.I/JKLM@NO1PQRSTUVW'XY()+
Z[\]7<=>?1[^_`1a!bcde7fghBij1k[lm7
nopqrrs

+tju1<=>?vwxHyzL{(plain-text)@ binary |,1}~vw;
071c|,!"#$[%&'(1)!*+,-.7/0j1w23s
2. Plain-Text Type Protocol
+Z[m7S4;1 TCP 5767>?FGH#;wzL{y618$u
HTTP9SMTP9POP3 ::szL{[;<=A>?8$u HTTP [@h7 BNF
?A1Bw/0()CvwDE yacc9lex :FGH parser1IJ+ZKj7
=A;V/0LM]N1vwOPI+QRj7ST;UVs

W`XJ1zL{Y[ binary 7 big-endian9little-endian 7Z[1\:;]/
0E^ htons()9htonl() :_`abc]de;vf/0E^ sprintf9sscanfgs

hzL{<=>?2F7'(1:;QijkF7lm1nX0oK binary data
7pqrstu18$u SOAP oKvwxyE base64 Iz1h base64 Iz
d7{|;}j7 4/3 cX~Y!7pgs]d HTTP :8k"#1a!
$f%&d+Z jpeg w'(7qr1body ; binary h header ;zL{1)
;5(*+ body @ header xy#;zL{1c(LV,a!-]<1nX[
*./012%3456j78119:];J

<<zL{<=>?=]=>5?@>?n(A]V+{|cBC1DE?
@3(R7STFGH#;F_UG9lH1BwzL{\]I_JK7LM
N1<[;<=7FGOPQvwRS>5?@TUHVW7/X?

PDF created with pdfFactory trial version www.pdffactory.com
2.1 XML
a!VFKHY[N1$f+Z-[E XML y<=>?1]d\j]y
N/h^1%L-E XML 7}]]d;]yT_W"

`+9 XML af[SS7 parser for Java, C++cDOM9SAXg
`b9 vwf5 DTD jcd(R7ST;UVs
`e9 vwDE XML fRgh7ST!"s

TvwDE XML fRgh7ST!"WcZB5V SOAP iSX\3a!s
yi?;vj71}~\ja!V-.5\k^+lE SOAP mS7nop
49qrFs:?@1]d0tu CLR BwYtuSv1Bw\fXY\]w
h1s

2xy[+Z[E XML y<=>?71z{{1<:;F|}~f7
Flash1Flash Vx7!"c*+; FlashMxg#$C XMLSocket %B1
XMLSocket E+t7 XML LBy<=>?1w !\0" yST&'c@ C
PQ7{()*g1++,@h7 XML LBRRNQ-R+lCBs.B'5
ju1Pvw/0E Java9C++ m+Z server1b Flash +S client 1+Z>
5?@712:34C5

XML 7*Eaf6H781\9:jQiS]U[E XML y<=>?7?
@;5

2.2 Script
script d+<Z/0()C#=d1>X php9perl9JavaScript?H]@AB1
CC;DeDE*+F1a!GHIJ+Z-V1w script y<=>?vj
K?

w+ZLMNOy>1A VNO5PC+ZQ1<0XY3-.I+57 B \
fVNO5rRcZQ>?ST:; embedded script 5

Tembedded scriptW];;<U"7VW1XV DOS NYF|:afEdC1
PE29ZN];[#$+[\]^,3 user vw_"9}~() editor 7+l
`7/K?a^bc7LMNOZ[1nXAvwdkLMNO+ZL{
PDF created with pdfFactory trial version www.pdffactory.com
w1cZwTef;+[gv^,1H\hjcl^,Pi+lvr1]:i
PE2 7\];+j72B?kbTwTW`ST-.W1V A P@Q7*Nl
J+ZTPQ7^,W1H\b^,(R^ B mjcn(;w{($0(R1
* Flash XMLSocketg1B 7NO5]:iS A bbP7QCK?

cZ(MnojT]!1]d+]Qp70 DIY +Z interpreter q?/rst
b-./09Iuv7JwNDij1CL5X:[Txyz{Am=C1w
a!7fgju1[|Z script ;a!|}~71:; Python [1] @ Lua [2]s

Python @ Lua #;w ANSI C mS71Open Source E!1212u07;
PvwE C PQ"m#$%_1cibbW7LMNO[;<&'>?T()
+(*9u+],-W1.0bLMNO+%_i script interpreter /V+o
:SC5

w win32 !"7 Python ju1script interpreter 7"0%L;+Z DLL1[d
win32 /0()fg74#121DLL B1\Q234^6/07.5671
6/0vw89 DLL e7ab1DLL +H\vw:dj896/0e7a
bsnX; Lua :s;<C1Pvw=/> source code IulJ .lib iP7
*E/0?@V+o18o Python 0;<xCs3Arrv2.2.1"












v2.2.1 37 (1) ^7;*E/0mjDA script 1(2) ^7; script 89*E
/0#$7DZabcwLMNOy>1vf;P+B=>gs0C^ (1) ]D1
8$u Python DLL [#$+Z PyRun_SimpleString(char *command) 1
command ^7:; scripts(2) c;EF7G$18$uP7*E/0#$C+
ZP=>7ab

void DrawLine(int x1, int y1, int x2, int y2);


Application


Script interpreter


Script
v2.2.1
(1)
(2)
PDF created with pdfFactory trial version www.pdffactory.com

5v2.2.1 Avwri script &V=/89`ab1xyHd script
interpreter1interpreter I;J<12SVxC+Z DrawLine() vwE>?Pv
w-K interpreter LG[+ZfM1NOtvE7abO;PB1Bw03
script vw9E DrawLine()1Axyb DrawLine() m1cQRg^cZfM
e1c\;y;<vwE C PQ{ script "m%_9#$vf7}]s

Bw2SD7G$;1J<b C PQmS7abQR0T1a!Cd+U\R
S%L]D1D;DVSTTU]=k1Lua c$f8k=m1Python 7p
qNOVx1);W^c$f7NWTU1%3[|"NX;8kY17[3]s

]dA7]ZT=1af[yz[Am=C+Z/`VFG-SWIG[4]1
SWIGcSimplified Wrapper and Interface Generatorg;+Zvwb C/C++ lib _
S Script %_7FG1\] Python, Perl, Rubycv^Y[\] Luag1SWIG
Q parse C/C++ header file1H\lJT_`W1bP7 C/C++ lib @ Script TaW
V+o1SWIG lJ7_`Q[P@SP^?7 Script B/7+lbcV9p
b_`:`s

X`rjA*+]ETdeclfg9hi7`1+j#kk SWIG TA
B:=Cl]m7;DlqD'y;wTde18$un(*E/0-89
Script e7DZ function1cNy;wde+lpb_`77/1\9[+Fc
\QiS/`V7FGq?..J

2.2.1 67
w Script y<=>?;6H[n}71);[+ZZ[W6HDwAB1X
Yopqr7 Script +s-.1w Python ju1t7wTAB;Lu71}
~5_;E C PQm71? system() cZab\vSLu71w;Y[bc
lxy7^,zWO;{|[E1Tvf]y+|j^,:3-.}~1ST
x-.t7Z[\;5`hjc>X ASP @ SQL Server 7!"Z[gs

3. Binary Type Protocol
W@CzL{#$7<=>?1SVAjWW binary !"7<=>?s%E
binary Fx#;yC\&@{|7qG1binary ABojv]8 plain-text '
(1)*5\8kEFs
PDF created with pdfFactory trial version www.pdffactory.com
3.1 Header
AB binary 7EFX+:;ST&'7c?1F|12 socket /+7ST]
Q<,#;P-.7F/1BwAxyV(R7013oK012Z1}~;
+l3!STccheck sum9CRCg1'v;vf7+Z01M0"





%3 Header 72Z4"5]v1\vf5>?!"]*hv1+A<,+^
STN1#xy-6Vki Header1c[6V/+^7i7ST1ki header
]X-K37891]y;<qr#vfRJ18$u Header 2:d1O;S
T;eoKCQ< Header c?7ST1}~;01=>lJ7Z[cex.
UDPg1c#0?N7fgje@s

3.2 pack/unpack data
I+ZA']B7Z[:;STC1/eE(pack/unpack)7$V1~ C++ 74v
fQD$'f7$V"

int id;
float life;
string name;
//
MyPacket packet;
packet<<id<<life<<name;
//
Socket.Send(packet);

E= C PQ74vwpq#/0()Y|zR#`9 M7$V[5]1cZ$V[E
F* printf T]?ZbpbW9TM0V{(W7VG1&H[I71Python 7
struct %_\EC*j7$V[6]s

/* P.S ce7M0V{(PV* Python struct %_ */
int id;
Header
>?!" 012Z CHECK SUM DATA
PDF created with pdfFactory trial version www.pdffactory.com
float life;
char name[STR_SZ];
unsigned char buf[BUF_SZ];
/**/
sz = pack(buf, %ifs#, id, life, name);
send(buf, sz);

wZ4ju8kD$ C++ [E overloading operator << 7$V1]yG[
type-safe 7&(1}~vwi iostream h1C PQ7$0\fQ8k=l)
;pbZb@M0V{(7JK7Z[:0/0()C/0/LCs

4. 89
cMLMFNOC[=dZPq1c7a!^2Q$GRjC+S1TTL
UVWq+':j7$$1XXLq;=xC1$.noVY}FXZ\*+
iT[[1FF\VL]^_4L#]=;..J

`aC<=>?WC5fW^7d,()XJ1/b$fnd[+,YcEj
()<=>?7PQdyPDLc01efPQg1nu;EVzg:&><=u
I51f]fEj()>5?@:]12C1nX*.no[c$f7hi\6
<1+'1jjs

?klCdMLM1RSF|*+mnELEo7LM1c,8kENp7LM
=K8kDqors1]tXY1y;-.fxr^+lc$f7u'1]t
;VO5O;m7k#nv..J

Have a nice day!

5. :;<=
[1] http://www.python.org/
[2] http://www.lua.org/
[3] http://www.oreilly.com/catalog/python2/
http://www.oreilly.com/catalog/pythoncook/
[4] http://www.swig.org/
[5] %/0()Y|zR#1wJJx]yi!1`9 Msc"N%L:;#The
PDF created with pdfFactory trial version www.pdffactory.com
Practice of Programming#7H{3L!s
[6] http://www.python.org/doc/current/lib/module-struct.html
PDF created with pdfFactory trial version www.pdffactory.com

Вам также может понравиться