summaryrefslogtreecommitdiff
path: root/sys/lib/python/SocketServer.pyc
blob: b84d53ca84bf91ba41cf6314deab436e0688c11a (plain)
ofshex dumpascii
0000 b3 f2 0d 0a a1 6c 87 4a 63 00 00 00 00 00 00 00 00 0e 00 00 00 40 00 00 00 73 02 02 00 00 64 00 .....l.Jc............@...s....d.
0020 00 5a 00 00 64 01 00 5a 01 00 64 02 00 64 03 00 6b 02 00 5a 02 00 64 02 00 64 03 00 6b 03 00 5a .Z..d..Z..d..d..k..Z..d..d..k..Z
0040 03 00 64 02 00 64 03 00 6b 04 00 5a 04 00 64 04 00 64 05 00 64 06 00 64 07 00 64 08 00 64 09 00 ..d..d..k..Z..d..d..d..d..d..d..
0060 64 0a 00 64 0b 00 64 0c 00 64 0d 00 64 0e 00 67 0b 00 5a 05 00 65 06 00 65 02 00 64 0f 00 83 02 d..d..d..d..d..g..Z..e..e..d....
0080 00 6f 1d 00 01 65 05 00 69 07 00 64 10 00 64 11 00 64 12 00 64 13 00 67 04 00 83 01 00 01 6e 01 .o...e..i..d..d..d..d..g......n.
00a0 00 01 64 14 00 64 25 00 64 15 00 84 00 00 83 00 00 59 5a 08 00 64 04 00 65 08 00 66 01 00 64 16 ..d..d%.d........YZ..d..e..f..d.
00c0 00 84 00 00 83 00 00 59 5a 09 00 64 05 00 65 09 00 66 01 00 64 17 00 84 00 00 83 00 00 59 5a 0a .......YZ..d..e..f..d........YZ.
00e0 00 64 0e 00 64 26 00 64 18 00 84 00 00 83 00 00 59 5a 0b 00 64 0d 00 64 27 00 64 19 00 84 00 00 .d..d&.d........YZ..d..d'.d.....
0100 83 00 00 59 5a 0c 00 64 06 00 65 0b 00 65 0a 00 66 02 00 64 1a 00 84 00 00 83 00 00 59 5a 0d 00 ...YZ..d..e..e..f..d........YZ..
0120 64 07 00 65 0b 00 65 09 00 66 02 00 64 1b 00 84 00 00 83 00 00 59 5a 0e 00 64 08 00 65 0c 00 65 d..e..e..f..d........YZ..d..e..e
0140 0a 00 66 02 00 64 1c 00 84 00 00 83 00 00 59 5a 0f 00 64 09 00 65 0c 00 65 09 00 66 02 00 64 1d ..f..d........YZ..d..e..e..f..d.
0160 00 84 00 00 83 00 00 59 5a 10 00 65 06 00 65 02 00 64 0f 00 83 02 00 6f 62 00 01 64 10 00 65 09 .......YZ..e..e..d.....ob..d..e.
0180 00 66 01 00 64 1e 00 84 00 00 83 00 00 59 5a 11 00 64 11 00 65 0a 00 66 01 00 64 1f 00 84 00 00 .f..d........YZ..d..e..f..d.....
01a0 83 00 00 59 5a 12 00 64 12 00 65 0c 00 65 11 00 66 02 00 64 20 00 84 00 00 83 00 00 59 5a 13 00 ...YZ..d..e..e..f..d........YZ..
01c0 64 13 00 65 0c 00 65 12 00 66 02 00 64 21 00 84 00 00 83 00 00 59 5a 14 00 6e 01 00 01 64 0a 00 d..e..e..f..d!.......YZ..n...d..
01e0 64 28 00 64 22 00 84 00 00 83 00 00 59 5a 15 00 64 0b 00 65 15 00 66 01 00 64 23 00 84 00 00 83 d(.d".......YZ..d..e..f..d#.....
0200 00 00 59 5a 16 00 64 0c 00 65 15 00 66 01 00 64 24 00 84 00 00 83 00 00 59 5a 17 00 64 03 00 53 ..YZ..d..e..f..d$.......YZ..d..S
0220 28 29 00 00 00 73 a1 13 00 00 47 65 6e 65 72 69 63 20 73 6f 63 6b 65 74 20 73 65 72 76 65 72 20 ()...s....Generic.socket.server.
0240 63 6c 61 73 73 65 73 2e 0a 0a 54 68 69 73 20 6d 6f 64 75 6c 65 20 74 72 69 65 73 20 74 6f 20 63 classes...This.module.tries.to.c
0260 61 70 74 75 72 65 20 74 68 65 20 76 61 72 69 6f 75 73 20 61 73 70 65 63 74 73 20 6f 66 20 64 65 apture.the.various.aspects.of.de
0280 66 69 6e 69 6e 67 20 61 20 73 65 72 76 65 72 3a 0a 0a 46 6f 72 20 73 6f 63 6b 65 74 2d 62 61 73 fining.a.server:..For.socket-bas
02a0 65 64 20 73 65 72 76 65 72 73 3a 0a 0a 2d 20 61 64 64 72 65 73 73 20 66 61 6d 69 6c 79 3a 0a 20 ed.servers:..-.address.family:..
02c0 20 20 20 20 20 20 20 2d 20 41 46 5f 49 4e 45 54 7b 2c 36 7d 3a 20 49 50 20 28 49 6e 74 65 72 6e .......-.AF_INET{,6}:.IP.(Intern
02e0 65 74 20 50 72 6f 74 6f 63 6f 6c 29 20 73 6f 63 6b 65 74 73 20 28 64 65 66 61 75 6c 74 29 0a 20 et.Protocol).sockets.(default)..
0300 20 20 20 20 20 20 20 2d 20 41 46 5f 55 4e 49 58 3a 20 55 6e 69 78 20 64 6f 6d 61 69 6e 20 73 6f .......-.AF_UNIX:.Unix.domain.so
0320 63 6b 65 74 73 0a 20 20 20 20 20 20 20 20 2d 20 6f 74 68 65 72 73 2c 20 65 2e 67 2e 20 41 46 5f ckets.........-.others,.e.g..AF_
0340 44 45 43 4e 45 54 20 61 72 65 20 63 6f 6e 63 65 69 76 61 62 6c 65 20 28 73 65 65 20 3c 73 6f 63 DECNET.are.conceivable.(see.<soc
0360 6b 65 74 2e 68 3e 0a 2d 20 73 6f 63 6b 65 74 20 74 79 70 65 3a 0a 20 20 20 20 20 20 20 20 2d 20 ket.h>.-.socket.type:.........-.
0380 53 4f 43 4b 5f 53 54 52 45 41 4d 20 28 72 65 6c 69 61 62 6c 65 20 73 74 72 65 61 6d 2c 20 65 2e SOCK_STREAM.(reliable.stream,.e.
03a0 67 2e 20 54 43 50 29 0a 20 20 20 20 20 20 20 20 2d 20 53 4f 43 4b 5f 44 47 52 41 4d 20 28 64 61 g..TCP).........-.SOCK_DGRAM.(da
03c0 74 61 67 72 61 6d 73 2c 20 65 2e 67 2e 20 55 44 50 29 0a 0a 46 6f 72 20 72 65 71 75 65 73 74 2d tagrams,.e.g..UDP)..For.request-
03e0 62 61 73 65 64 20 73 65 72 76 65 72 73 20 28 69 6e 63 6c 75 64 69 6e 67 20 73 6f 63 6b 65 74 2d based.servers.(including.socket-
0400 62 61 73 65 64 29 3a 0a 0a 2d 20 63 6c 69 65 6e 74 20 61 64 64 72 65 73 73 20 76 65 72 69 66 69 based):..-.client.address.verifi
0420 63 61 74 69 6f 6e 20 62 65 66 6f 72 65 20 66 75 72 74 68 65 72 20 6c 6f 6f 6b 69 6e 67 20 61 74 cation.before.further.looking.at
0440 20 74 68 65 20 72 65 71 75 65 73 74 0a 20 20 20 20 20 20 20 20 28 54 68 69 73 20 69 73 20 61 63 .the.request.........(This.is.ac
0460 74 75 61 6c 6c 79 20 61 20 68 6f 6f 6b 20 66 6f 72 20 61 6e 79 20 70 72 6f 63 65 73 73 69 6e 67 tually.a.hook.for.any.processing
0480 20 74 68 61 74 20 6e 65 65 64 73 20 74 6f 20 6c 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 61 74 20 .that.needs.to.look..........at.
04a0 74 68 65 20 72 65 71 75 65 73 74 20 62 65 66 6f 72 65 20 61 6e 79 74 68 69 6e 67 20 65 6c 73 65 the.request.before.anything.else
04c0 2c 20 65 2e 67 2e 20 6c 6f 67 67 69 6e 67 29 0a 2d 20 68 6f 77 20 74 6f 20 68 61 6e 64 6c 65 20 ,.e.g..logging).-.how.to.handle.
04e0 6d 75 6c 74 69 70 6c 65 20 72 65 71 75 65 73 74 73 3a 0a 20 20 20 20 20 20 20 20 2d 20 73 79 6e multiple.requests:.........-.syn
0500 63 68 72 6f 6e 6f 75 73 20 28 6f 6e 65 20 72 65 71 75 65 73 74 20 69 73 20 68 61 6e 64 6c 65 64 chronous.(one.request.is.handled
0520 20 61 74 20 61 20 74 69 6d 65 29 0a 20 20 20 20 20 20 20 20 2d 20 66 6f 72 6b 69 6e 67 20 28 65 .at.a.time).........-.forking.(e
0540 61 63 68 20 72 65 71 75 65 73 74 20 69 73 20 68 61 6e 64 6c 65 64 20 62 79 20 61 20 6e 65 77 20 ach.request.is.handled.by.a.new.
0560 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 20 20 2d 20 74 68 72 65 61 64 69 6e 67 20 28 65 61 process).........-.threading.(ea
0580 63 68 20 72 65 71 75 65 73 74 20 69 73 20 68 61 6e 64 6c 65 64 20 62 79 20 61 20 6e 65 77 20 74 ch.request.is.handled.by.a.new.t
05a0 68 72 65 61 64 29 0a 0a 54 68 65 20 63 6c 61 73 73 65 73 20 69 6e 20 74 68 69 73 20 6d 6f 64 75 hread)..The.classes.in.this.modu
05c0 6c 65 20 66 61 76 6f 72 20 74 68 65 20 73 65 72 76 65 72 20 74 79 70 65 20 74 68 61 74 20 69 73 le.favor.the.server.type.that.is
05e0 20 73 69 6d 70 6c 65 73 74 20 74 6f 0a 77 72 69 74 65 3a 20 61 20 73 79 6e 63 68 72 6f 6e 6f 75 .simplest.to.write:.a.synchronou
0600 73 20 54 43 50 2f 49 50 20 73 65 72 76 65 72 2e 20 20 54 68 69 73 20 69 73 20 62 61 64 20 63 6c s.TCP/IP.server...This.is.bad.cl
0620 61 73 73 20 64 65 73 69 67 6e 2c 20 62 75 74 0a 73 61 76 65 20 73 6f 6d 65 20 74 79 70 69 6e 67 ass.design,.but.save.some.typing
0640 2e 20 20 28 54 68 65 72 65 27 73 20 61 6c 73 6f 20 74 68 65 20 69 73 73 75 65 20 74 68 61 74 20 ...(There's.also.the.issue.that.
0660 61 20 64 65 65 70 20 63 6c 61 73 73 20 68 69 65 72 61 72 63 68 79 0a 73 6c 6f 77 73 20 64 6f 77 a.deep.class.hierarchy.slows.dow
0680 6e 20 6d 65 74 68 6f 64 20 6c 6f 6f 6b 75 70 73 2e 29 0a 0a 54 68 65 72 65 20 61 72 65 20 66 69 n.method.lookups.)..There.are.fi
06a0 76 65 20 63 6c 61 73 73 65 73 20 69 6e 20 61 6e 20 69 6e 68 65 72 69 74 61 6e 63 65 20 64 69 61 ve.classes.in.an.inheritance.dia
06c0 67 72 61 6d 2c 20 66 6f 75 72 20 6f 66 20 77 68 69 63 68 20 72 65 70 72 65 73 65 6e 74 0a 73 79 gram,.four.of.which.represent.sy
06e0 6e 63 68 72 6f 6e 6f 75 73 20 73 65 72 76 65 72 73 20 6f 66 20 66 6f 75 72 20 74 79 70 65 73 3a nchronous.servers.of.four.types:
0700 0a 0a 20 20 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 20 20 20 20 20 20 20 ..........+------------+........
0720 20 7c 20 42 61 73 65 53 65 72 76 65 72 20 7c 0a 20 20 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d .|.BaseServer.|.........+-------
0740 2d 2d 2d 2d 2d 2b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 -----+...............|..........
0760 20 20 20 20 20 76 0a 20 20 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 20 20 20 20 .....v.........+-----------+....
0780 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 20 20 20 20 20 20 20 ....+------------------+........
07a0 20 7c 20 54 43 50 53 65 72 76 65 72 20 7c 2d 2d 2d 2d 2d 2d 2d 3e 7c 20 55 6e 69 78 53 74 72 65 .|.TCPServer.|------->|.UnixStre
07c0 61 6d 53 65 72 76 65 72 20 7c 0a 20 20 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b amServer.|.........+-----------+
07e0 20 20 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 20 20 20 ........+------------------+....
0800 20 20 20 20 20 20 20 20 20 20 20 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 0a 20 20 20 ...........|...............v....
0820 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 20 20 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d .....+-----------+........+-----
0840 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 20 20 20 20 20 20 20 20 7c 20 55 44 50 53 65 ---------------+.........|.UDPSe
0860 72 76 65 72 20 7c 2d 2d 2d 2d 2d 2d 2d 3e 7c 20 55 6e 69 78 44 61 74 61 67 72 61 6d 53 65 72 76 rver.|------->|.UnixDatagramServ
0880 65 72 20 7c 0a 20 20 20 20 20 20 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 20 20 20 20 20 20 er.|.........+-----------+......
08a0 20 20 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 0a 0a 4e 6f 74 65 20 74 ..+--------------------+..Note.t
08c0 68 61 74 20 55 6e 69 78 44 61 74 61 67 72 61 6d 53 65 72 76 65 72 20 64 65 72 69 76 65 73 20 66 hat.UnixDatagramServer.derives.f
08e0 72 6f 6d 20 55 44 50 53 65 72 76 65 72 2c 20 6e 6f 74 20 66 72 6f 6d 0a 55 6e 69 78 53 74 72 65 rom.UDPServer,.not.from.UnixStre
0900 61 6d 53 65 72 76 65 72 20 2d 2d 20 74 68 65 20 6f 6e 6c 79 20 64 69 66 66 65 72 65 6e 63 65 20 amServer.--.the.only.difference.
0920 62 65 74 77 65 65 6e 20 61 6e 20 49 50 20 61 6e 64 20 61 20 55 6e 69 78 0a 73 74 72 65 61 6d 20 between.an.IP.and.a.Unix.stream.
0940 73 65 72 76 65 72 20 69 73 20 74 68 65 20 61 64 64 72 65 73 73 20 66 61 6d 69 6c 79 2c 20 77 68 server.is.the.address.family,.wh
0960 69 63 68 20 69 73 20 73 69 6d 70 6c 79 20 72 65 70 65 61 74 65 64 20 69 6e 20 62 6f 74 68 0a 75 ich.is.simply.repeated.in.both.u
0980 6e 69 78 20 73 65 72 76 65 72 20 63 6c 61 73 73 65 73 2e 0a 0a 46 6f 72 6b 69 6e 67 20 61 6e 64 nix.server.classes...Forking.and
09a0 20 74 68 72 65 61 64 69 6e 67 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 65 61 63 68 20 74 79 70 65 .threading.versions.of.each.type
09c0 20 6f 66 20 73 65 72 76 65 72 20 63 61 6e 20 62 65 20 63 72 65 61 74 65 64 0a 75 73 69 6e 67 20 .of.server.can.be.created.using.
09e0 74 68 65 20 46 6f 72 6b 69 6e 67 4d 69 78 49 6e 20 61 6e 64 20 54 68 72 65 61 64 69 6e 67 4d 69 the.ForkingMixIn.and.ThreadingMi
0a00 78 49 6e 20 6d 69 78 2d 69 6e 20 63 6c 61 73 73 65 73 2e 20 20 46 6f 72 0a 69 6e 73 74 61 6e 63 xIn.mix-in.classes...For.instanc
0a20 65 2c 20 61 20 74 68 72 65 61 64 69 6e 67 20 55 44 50 20 73 65 72 76 65 72 20 63 6c 61 73 73 20 e,.a.threading.UDP.server.class.
0a40 69 73 20 63 72 65 61 74 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 20 20 20 20 20 20 20 20 is.created.as.follows:..........
0a60 63 6c 61 73 73 20 54 68 72 65 61 64 69 6e 67 55 44 50 53 65 72 76 65 72 28 54 68 72 65 61 64 69 class.ThreadingUDPServer(Threadi
0a80 6e 67 4d 69 78 49 6e 2c 20 55 44 50 53 65 72 76 65 72 29 3a 20 70 61 73 73 0a 0a 54 68 65 20 4d ngMixIn,.UDPServer):.pass..The.M
0aa0 69 78 2d 69 6e 20 63 6c 61 73 73 20 6d 75 73 74 20 63 6f 6d 65 20 66 69 72 73 74 2c 20 73 69 6e ix-in.class.must.come.first,.sin
0ac0 63 65 20 69 74 20 6f 76 65 72 72 69 64 65 73 20 61 20 6d 65 74 68 6f 64 20 64 65 66 69 6e 65 64 ce.it.overrides.a.method.defined
0ae0 0a 69 6e 20 55 44 50 53 65 72 76 65 72 21 20 53 65 74 74 69 6e 67 20 74 68 65 20 76 61 72 69 6f .in.UDPServer!.Setting.the.vario
0b00 75 73 20 6d 65 6d 62 65 72 20 76 61 72 69 61 62 6c 65 73 20 61 6c 73 6f 20 63 68 61 6e 67 65 73 us.member.variables.also.changes
0b20 0a 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66 20 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 .the.behavior.of.the.underlying.
0b40 73 65 72 76 65 72 20 6d 65 63 68 61 6e 69 73 6d 2e 0a 0a 54 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 server.mechanism...To.implement.
0b60 61 20 73 65 72 76 69 63 65 2c 20 79 6f 75 20 6d 75 73 74 20 64 65 72 69 76 65 20 61 20 63 6c 61 a.service,.you.must.derive.a.cla
0b80 73 73 20 66 72 6f 6d 0a 42 61 73 65 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 20 61 6e 64 20 72 ss.from.BaseRequestHandler.and.r
0ba0 65 64 65 66 69 6e 65 20 69 74 73 20 68 61 6e 64 6c 65 28 29 20 6d 65 74 68 6f 64 2e 20 20 59 6f edefine.its.handle().method...Yo
0bc0 75 20 63 61 6e 20 74 68 65 6e 20 72 75 6e 0a 76 61 72 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 20 u.can.then.run.various.versions.
0be0 6f 66 20 74 68 65 20 73 65 72 76 69 63 65 20 62 79 20 63 6f 6d 62 69 6e 69 6e 67 20 6f 6e 65 20 of.the.service.by.combining.one.
0c00 6f 66 20 74 68 65 20 73 65 72 76 65 72 20 63 6c 61 73 73 65 73 0a 77 69 74 68 20 79 6f 75 72 20 of.the.server.classes.with.your.
0c20 72 65 71 75 65 73 74 20 68 61 6e 64 6c 65 72 20 63 6c 61 73 73 2e 0a 0a 54 68 65 20 72 65 71 75 request.handler.class...The.requ
0c40 65 73 74 20 68 61 6e 64 6c 65 72 20 63 6c 61 73 73 20 6d 75 73 74 20 62 65 20 64 69 66 66 65 72 est.handler.class.must.be.differ
0c60 65 6e 74 20 66 6f 72 20 64 61 74 61 67 72 61 6d 20 6f 72 20 73 74 72 65 61 6d 0a 73 65 72 76 69 ent.for.datagram.or.stream.servi
0c80 63 65 73 2e 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 68 69 64 64 65 6e 20 62 79 20 75 73 69 6e ces...This.can.be.hidden.by.usin
0ca0 67 20 74 68 65 20 72 65 71 75 65 73 74 20 68 61 6e 64 6c 65 72 0a 73 75 62 63 6c 61 73 73 65 73 g.the.request.handler.subclasses
0cc0 20 53 74 72 65 61 6d 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 20 6f 72 20 44 61 74 61 67 72 61 .StreamRequestHandler.or.Datagra
0ce0 6d 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 2e 0a 0a 4f 66 20 63 6f 75 72 73 65 2c 20 79 6f 75 mRequestHandler...Of.course,.you
0d00 20 73 74 69 6c 6c 20 68 61 76 65 20 74 6f 20 75 73 65 20 79 6f 75 72 20 68 65 61 64 21 0a 0a 46 .still.have.to.use.your.head!..F
0d20 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 69 74 20 6d 61 6b 65 73 20 6e 6f 20 73 65 6e 73 65 20 74 or.instance,.it.makes.no.sense.t
0d40 6f 20 75 73 65 20 61 20 66 6f 72 6b 69 6e 67 20 73 65 72 76 65 72 20 69 66 20 74 68 65 20 73 65 o.use.a.forking.server.if.the.se
0d60 72 76 69 63 65 0a 63 6f 6e 74 61 69 6e 73 20 73 74 61 74 65 20 69 6e 20 6d 65 6d 6f 72 79 20 74 rvice.contains.state.in.memory.t
0d80 68 61 74 20 63 61 6e 20 62 65 20 6d 6f 64 69 66 69 65 64 20 62 79 20 72 65 71 75 65 73 74 73 20 hat.can.be.modified.by.requests.
0da0 28 73 69 6e 63 65 20 74 68 65 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 (since.the.modifications.in.the.
0dc0 63 68 69 6c 64 20 70 72 6f 63 65 73 73 20 77 6f 75 6c 64 20 6e 65 76 65 72 20 72 65 61 63 68 20 child.process.would.never.reach.
0de0 74 68 65 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 0a 6b 65 70 74 20 69 6e 20 74 68 65 20 70 61 the.initial.state.kept.in.the.pa
0e00 72 65 6e 74 20 70 72 6f 63 65 73 73 20 61 6e 64 20 70 61 73 73 65 64 20 74 6f 20 65 61 63 68 20 rent.process.and.passed.to.each.
0e20 63 68 69 6c 64 29 2e 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 2c 0a 79 6f 75 20 63 61 6e 20 75 child)...In.this.case,.you.can.u
0e40 73 65 20 61 20 74 68 72 65 61 64 69 6e 67 20 73 65 72 76 65 72 2c 20 62 75 74 20 79 6f 75 20 77 se.a.threading.server,.but.you.w
0e60 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 68 61 76 65 20 74 6f 20 75 73 65 0a 6c 6f 63 6b 73 20 74 ill.probably.have.to.use.locks.t
0e80 6f 20 61 76 6f 69 64 20 74 77 6f 20 72 65 71 75 65 73 74 73 20 74 68 61 74 20 63 6f 6d 65 20 69 o.avoid.two.requests.that.come.i
0ea0 6e 20 6e 65 61 72 6c 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 74 6f 20 61 70 70 6c 79 0a 63 n.nearly.simultaneous.to.apply.c
0ec0 6f 6e 66 6c 69 63 74 69 6e 67 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 onflicting.changes.to.the.server
0ee0 20 73 74 61 74 65 2e 0a 0a 4f 6e 20 74 68 65 20 6f 74 68 65 72 20 68 61 6e 64 2c 20 69 66 20 79 .state...On.the.other.hand,.if.y
0f00 6f 75 20 61 72 65 20 62 75 69 6c 64 69 6e 67 20 65 2e 67 2e 20 61 6e 20 48 54 54 50 20 73 65 72 ou.are.building.e.g..an.HTTP.ser
0f20 76 65 72 2c 20 77 68 65 72 65 20 61 6c 6c 0a 64 61 74 61 20 69 73 20 73 74 6f 72 65 64 20 65 78 ver,.where.all.data.is.stored.ex
0f40 74 65 72 6e 61 6c 6c 79 20 28 65 2e 67 2e 20 69 6e 20 74 68 65 20 66 69 6c 65 20 73 79 73 74 65 ternally.(e.g..in.the.file.syste
0f60 6d 29 2c 20 61 20 73 79 6e 63 68 72 6f 6e 6f 75 73 0a 63 6c 61 73 73 20 77 69 6c 6c 20 65 73 73 m),.a.synchronous.class.will.ess
0f80 65 6e 74 69 61 6c 6c 79 20 72 65 6e 64 65 72 20 74 68 65 20 73 65 72 76 69 63 65 20 22 64 65 61 entially.render.the.service."dea
0fa0 66 22 20 77 68 69 6c 65 20 6f 6e 65 20 72 65 71 75 65 73 74 20 69 73 0a 62 65 69 6e 67 20 68 61 f".while.one.request.is.being.ha
0fc0 6e 64 6c 65 64 20 2d 2d 20 77 68 69 63 68 20 6d 61 79 20 62 65 20 66 6f 72 20 61 20 76 65 72 79 ndled.--.which.may.be.for.a.very
0fe0 20 6c 6f 6e 67 20 74 69 6d 65 20 69 66 20 61 20 63 6c 69 65 6e 74 20 69 73 20 73 6c 6f 77 0a 74 .long.time.if.a.client.is.slow.t
1000 6f 20 72 65 71 64 20 61 6c 6c 20 74 68 65 20 64 61 74 61 20 69 74 20 68 61 73 20 72 65 71 75 65 o.reqd.all.the.data.it.has.reque
1020 73 74 65 64 2e 20 20 48 65 72 65 20 61 20 74 68 72 65 61 64 69 6e 67 20 6f 72 20 66 6f 72 6b 69 sted...Here.a.threading.or.forki
1040 6e 67 0a 73 65 72 76 65 72 20 69 73 20 61 70 70 72 6f 70 72 69 61 74 65 2e 0a 0a 49 6e 20 73 6f ng.server.is.appropriate...In.so
1060 6d 65 20 63 61 73 65 73 2c 20 69 74 20 6d 61 79 20 62 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 me.cases,.it.may.be.appropriate.
1080 74 6f 20 70 72 6f 63 65 73 73 20 70 61 72 74 20 6f 66 20 61 20 72 65 71 75 65 73 74 0a 73 79 6e to.process.part.of.a.request.syn
10a0 63 68 72 6f 6e 6f 75 73 6c 79 2c 20 62 75 74 20 74 6f 20 66 69 6e 69 73 68 20 70 72 6f 63 65 73 chronously,.but.to.finish.proces
10c0 73 69 6e 67 20 69 6e 20 61 20 66 6f 72 6b 65 64 20 63 68 69 6c 64 20 64 65 70 65 6e 64 69 6e 67 sing.in.a.forked.child.depending
10e0 20 6f 6e 0a 74 68 65 20 72 65 71 75 65 73 74 20 64 61 74 61 2e 20 20 54 68 69 73 20 63 61 6e 20 .on.the.request.data...This.can.
1100 62 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 79 20 75 73 69 6e 67 20 61 20 73 79 6e 63 68 72 be.implemented.by.using.a.synchr
1120 6f 6e 6f 75 73 0a 73 65 72 76 65 72 20 61 6e 64 20 64 6f 69 6e 67 20 61 6e 20 65 78 70 6c 69 63 onous.server.and.doing.an.explic
1140 69 74 20 66 6f 72 6b 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 68 61 6e 64 6c 65 72 20 63 it.fork.in.the.request.handler.c
1160 6c 61 73 73 0a 68 61 6e 64 6c 65 28 29 20 6d 65 74 68 6f 64 2e 0a 0a 41 6e 6f 74 68 65 72 20 61 lass.handle().method...Another.a
1180 70 70 72 6f 61 63 68 20 74 6f 20 68 61 6e 64 6c 69 6e 67 20 6d 75 6c 74 69 70 6c 65 20 73 69 6d pproach.to.handling.multiple.sim
11a0 75 6c 74 61 6e 65 6f 75 73 20 72 65 71 75 65 73 74 73 20 69 6e 20 61 6e 0a 65 6e 76 69 72 6f 6e ultaneous.requests.in.an.environ
11c0 6d 65 6e 74 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20 6e 65 69 74 68 65 72 20 74 68 72 65 61 ment.that.supports.neither.threa
11e0 64 73 20 6e 6f 72 20 66 6f 72 6b 20 28 6f 72 20 77 68 65 72 65 20 74 68 65 73 65 20 61 72 65 0a ds.nor.fork.(or.where.these.are.
1200 74 6f 6f 20 65 78 70 65 6e 73 69 76 65 20 6f 72 20 69 6e 61 70 70 72 6f 70 72 69 61 74 65 20 66 too.expensive.or.inappropriate.f
1220 6f 72 20 74 68 65 20 73 65 72 76 69 63 65 29 20 69 73 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 61 or.the.service).is.to.maintain.a
1240 6e 0a 65 78 70 6c 69 63 69 74 20 74 61 62 6c 65 20 6f 66 20 70 61 72 74 69 61 6c 6c 79 20 66 69 n.explicit.table.of.partially.fi
1260 6e 69 73 68 65 64 20 72 65 71 75 65 73 74 73 20 61 6e 64 20 74 6f 20 75 73 65 20 73 65 6c 65 63 nished.requests.and.to.use.selec
1280 74 28 29 20 74 6f 0a 64 65 63 69 64 65 20 77 68 69 63 68 20 72 65 71 75 65 73 74 20 74 6f 20 77 t().to.decide.which.request.to.w
12a0 6f 72 6b 20 6f 6e 20 6e 65 78 74 20 28 6f 72 20 77 68 65 74 68 65 72 20 74 6f 20 68 61 6e 64 6c ork.on.next.(or.whether.to.handl
12c0 65 20 61 20 6e 65 77 0a 69 6e 63 6f 6d 69 6e 67 20 72 65 71 75 65 73 74 29 2e 20 20 54 68 69 73 e.a.new.incoming.request)...This
12e0 20 69 73 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 69 6d 70 6f 72 74 61 6e 74 20 66 6f 72 20 73 .is.particularly.important.for.s
1300 74 72 65 61 6d 20 73 65 72 76 69 63 65 73 0a 77 68 65 72 65 20 65 61 63 68 20 63 6c 69 65 6e 74 tream.services.where.each.client
1320 20 63 61 6e 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20 62 65 20 63 6f 6e 6e 65 63 74 65 64 20 66 6f .can.potentially.be.connected.fo
1340 72 20 61 20 6c 6f 6e 67 20 74 69 6d 65 20 28 69 66 0a 74 68 72 65 61 64 73 20 6f 72 20 73 75 62 r.a.long.time.(if.threads.or.sub
1360 70 72 6f 63 65 73 73 65 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 29 2e 0a 0a 46 75 74 75 processes.cannot.be.used)...Futu
1380 72 65 20 77 6f 72 6b 3a 0a 2d 20 53 74 61 6e 64 61 72 64 20 63 6c 61 73 73 65 73 20 66 6f 72 20 re.work:.-.Standard.classes.for.
13a0 53 75 6e 20 52 50 43 20 28 77 68 69 63 68 20 75 73 65 73 20 65 69 74 68 65 72 20 55 44 50 20 6f Sun.RPC.(which.uses.either.UDP.o
13c0 72 20 54 43 50 29 0a 2d 20 53 74 61 6e 64 61 72 64 20 6d 69 78 2d 69 6e 20 63 6c 61 73 73 65 73 r.TCP).-.Standard.mix-in.classes
13e0 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 76 61 72 69 6f 75 73 20 61 75 74 68 65 6e 74 69 63 61 .to.implement.various.authentica
1400 74 69 6f 6e 0a 20 20 61 6e 64 20 65 6e 63 72 79 70 74 69 6f 6e 20 73 63 68 65 6d 65 73 0a 2d 20 tion...and.encryption.schemes.-.
1420 53 74 61 6e 64 61 72 64 20 66 72 61 6d 65 77 6f 72 6b 20 66 6f 72 20 73 65 6c 65 63 74 2d 62 61 Standard.framework.for.select-ba
1440 73 65 64 20 6d 75 6c 74 69 70 6c 65 78 69 6e 67 0a 0a 58 58 58 20 4f 70 65 6e 20 70 72 6f 62 6c sed.multiplexing..XXX.Open.probl
1460 65 6d 73 3a 0a 2d 20 57 68 61 74 20 74 6f 20 64 6f 20 77 69 74 68 20 6f 75 74 2d 6f 66 2d 62 61 ems:.-.What.to.do.with.out-of-ba
1480 6e 64 20 64 61 74 61 3f 0a 0a 42 61 73 65 53 65 72 76 65 72 3a 0a 2d 20 73 70 6c 69 74 20 67 65 nd.data?..BaseServer:.-.split.ge
14a0 6e 65 72 69 63 20 22 72 65 71 75 65 73 74 22 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 6f 75 neric."request".functionality.ou
14c0 74 20 69 6e 74 6f 20 42 61 73 65 53 65 72 76 65 72 20 63 6c 61 73 73 2e 0a 20 20 43 6f 70 79 72 t.into.BaseServer.class....Copyr
14e0 69 67 68 74 20 28 43 29 20 32 30 30 30 20 20 4c 75 6b 65 20 4b 65 6e 6e 65 74 68 20 43 61 73 73 ight.(C).2000..Luke.Kenneth.Cass
1500 6f 6e 20 4c 65 69 67 68 74 6f 6e 20 3c 6c 6b 63 6c 40 73 61 6d 62 61 2e 6f 72 67 3e 0a 0a 20 20 on.Leighton.<lkcl@samba.org>....
1520 65 78 61 6d 70 6c 65 3a 20 72 65 61 64 20 65 6e 74 72 69 65 73 20 66 72 6f 6d 20 61 20 53 51 4c example:.read.entries.from.a.SQL
1540 20 64 61 74 61 62 61 73 65 20 28 72 65 71 75 69 72 65 73 20 6f 76 65 72 72 69 64 69 6e 67 0a 20 .database.(requires.overriding..
1560 20 67 65 74 5f 72 65 71 75 65 73 74 28 29 20 74 6f 20 72 65 74 75 72 6e 20 61 20 74 61 62 6c 65 .get_request().to.return.a.table
1580 20 65 6e 74 72 79 20 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 29 2e 0a 20 20 65 6e 74 .entry.from.the.database)....ent
15a0 72 79 20 69 73 20 70 72 6f 63 65 73 73 65 64 20 62 79 20 61 20 52 65 71 75 65 73 74 48 61 6e 64 ry.is.processed.by.a.RequestHand
15c0 6c 65 72 43 6c 61 73 73 2e 0a 0a 73 03 00 00 00 30 2e 34 69 ff ff ff ff 4e 74 09 00 00 00 54 43 lerClass...s....0.4i....Nt....TC
15e0 50 53 65 72 76 65 72 74 09 00 00 00 55 44 50 53 65 72 76 65 72 74 10 00 00 00 46 6f 72 6b 69 6e PServert....UDPServert....Forkin
1600 67 55 44 50 53 65 72 76 65 72 74 10 00 00 00 46 6f 72 6b 69 6e 67 54 43 50 53 65 72 76 65 72 74 gUDPServert....ForkingTCPServert
1620 12 00 00 00 54 68 72 65 61 64 69 6e 67 55 44 50 53 65 72 76 65 72 74 12 00 00 00 54 68 72 65 61 ....ThreadingUDPServert....Threa
1640 64 69 6e 67 54 43 50 53 65 72 76 65 72 74 12 00 00 00 42 61 73 65 52 65 71 75 65 73 74 48 61 6e dingTCPServert....BaseRequestHan
1660 64 6c 65 72 74 14 00 00 00 53 74 72 65 61 6d 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 74 16 00 dlert....StreamRequestHandlert..
1680 00 00 44 61 74 61 67 72 61 6d 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 74 0e 00 00 00 54 68 72 ..DatagramRequestHandlert....Thr
16a0 65 61 64 69 6e 67 4d 69 78 49 6e 74 0c 00 00 00 46 6f 72 6b 69 6e 67 4d 69 78 49 6e 74 07 00 00 eadingMixInt....ForkingMixInt...
16c0 00 41 46 5f 55 4e 49 58 74 10 00 00 00 55 6e 69 78 53 74 72 65 61 6d 53 65 72 76 65 72 74 12 00 .AF_UNIXt....UnixStreamServert..
16e0 00 00 55 6e 69 78 44 61 74 61 67 72 61 6d 53 65 72 76 65 72 74 19 00 00 00 54 68 72 65 61 64 69 ..UnixDatagramServert....Threadi
1700 6e 67 55 6e 69 78 53 74 72 65 61 6d 53 65 72 76 65 72 74 1b 00 00 00 54 68 72 65 61 64 69 6e 67 ngUnixStreamServert....Threading
1720 55 6e 69 78 44 61 74 61 67 72 61 6d 53 65 72 76 65 72 74 0a 00 00 00 42 61 73 65 53 65 72 76 65 UnixDatagramServert....BaseServe
1740 72 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 68 00 00 00 65 00 00 5a 01 00 64 00 00 rc............B...sh...e..Z..d..
1760 5a 02 00 64 01 00 84 00 00 5a 03 00 64 02 00 84 00 00 5a 04 00 64 03 00 84 00 00 5a 05 00 64 04 Z..d.....Z..d.....Z..d.....Z..d.
1780 00 84 00 00 5a 06 00 64 05 00 84 00 00 5a 07 00 64 06 00 84 00 00 5a 08 00 64 07 00 84 00 00 5a ....Z..d.....Z..d.....Z..d.....Z
17a0 09 00 64 08 00 84 00 00 5a 0a 00 64 09 00 84 00 00 5a 0b 00 64 0a 00 84 00 00 5a 0c 00 52 53 28 ..d.....Z..d.....Z..d.....Z..RS(
17c0 0b 00 00 00 73 39 03 00 00 42 61 73 65 20 63 6c 61 73 73 20 66 6f 72 20 73 65 72 76 65 72 20 63 ....s9...Base.class.for.server.c
17e0 6c 61 73 73 65 73 2e 0a 0a 20 20 20 20 4d 65 74 68 6f 64 73 20 66 6f 72 20 74 68 65 20 63 61 6c lasses.......Methods.for.the.cal
1800 6c 65 72 3a 0a 0a 20 20 20 20 2d 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 72 76 65 72 5f 61 64 64 72 ler:......-.__init__(server_addr
1820 65 73 73 2c 20 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 43 6c 61 73 73 29 0a 20 20 20 20 2d 20 ess,.RequestHandlerClass).....-.
1840 73 65 72 76 65 5f 66 6f 72 65 76 65 72 28 29 0a 20 20 20 20 2d 20 68 61 6e 64 6c 65 5f 72 65 71 serve_forever().....-.handle_req
1860 75 65 73 74 28 29 20 20 23 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 75 73 65 20 73 65 72 76 uest()..#.if.you.do.not.use.serv
1880 65 5f 66 6f 72 65 76 65 72 28 29 0a 20 20 20 20 2d 20 66 69 6c 65 6e 6f 28 29 20 2d 3e 20 69 6e e_forever().....-.fileno().->.in
18a0 74 20 20 20 23 20 66 6f 72 20 73 65 6c 65 63 74 28 29 0a 0a 20 20 20 20 4d 65 74 68 6f 64 73 20 t...#.for.select()......Methods.
18c0 74 68 61 74 20 6d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 3a 0a 0a 20 20 20 20 2d 20 73 that.may.be.overridden:......-.s
18e0 65 72 76 65 72 5f 62 69 6e 64 28 29 0a 20 20 20 20 2d 20 73 65 72 76 65 72 5f 61 63 74 69 76 61 erver_bind().....-.server_activa
1900 74 65 28 29 0a 20 20 20 20 2d 20 67 65 74 5f 72 65 71 75 65 73 74 28 29 20 2d 3e 20 72 65 71 75 te().....-.get_request().->.requ
1920 65 73 74 2c 20 63 6c 69 65 6e 74 5f 61 64 64 72 65 73 73 0a 20 20 20 20 2d 20 76 65 72 69 66 79 est,.client_address.....-.verify
1940 5f 72 65 71 75 65 73 74 28 72 65 71 75 65 73 74 2c 20 63 6c 69 65 6e 74 5f 61 64 64 72 65 73 73 _request(request,.client_address
1960 29 0a 20 20 20 20 2d 20 73 65 72 76 65 72 5f 63 6c 6f 73 65 28 29 0a 20 20 20 20 2d 20 70 72 6f ).....-.server_close().....-.pro
1980 63 65 73 73 5f 72 65 71 75 65 73 74 28 72 65 71 75 65 73 74 2c 20 63 6c 69 65 6e 74 5f 61 64 64 cess_request(request,.client_add
19a0 72 65 73 73 29 0a 20 20 20 20 2d 20 63 6c 6f 73 65 5f 72 65 71 75 65 73 74 28 72 65 71 75 65 73 ress).....-.close_request(reques
19c0 74 29 0a 20 20 20 20 2d 20 68 61 6e 64 6c 65 5f 65 72 72 6f 72 28 29 0a 0a 20 20 20 20 4d 65 74 t).....-.handle_error()......Met
19e0 68 6f 64 73 20 66 6f 72 20 64 65 72 69 76 65 64 20 63 6c 61 73 73 65 73 3a 0a 0a 20 20 20 20 2d hods.for.derived.classes:......-
1a00 20 66 69 6e 69 73 68 5f 72 65 71 75 65 73 74 28 72 65 71 75 65 73 74 2c 20 63 6c 69 65 6e 74 5f .finish_request(request,.client_
1a20 61 64 64 72 65 73 73 29 0a 0a 20 20 20 20 43 6c 61 73 73 20 76 61 72 69 61 62 6c 65 73 20 74 68 address)......Class.variables.th
1a40 61 74 20 6d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 62 79 20 64 65 72 69 76 65 64 20 at.may.be.overridden.by.derived.
1a60 63 6c 61 73 73 65 73 20 6f 72 0a 20 20 20 20 69 6e 73 74 61 6e 63 65 73 3a 0a 0a 20 20 20 20 2d classes.or.....instances:......-
1a80 20 61 64 64 72 65 73 73 5f 66 61 6d 69 6c 79 0a 20 20 20 20 2d 20 73 6f 63 6b 65 74 5f 74 79 70 .address_family.....-.socket_typ
1aa0 65 0a 20 20 20 20 2d 20 61 6c 6c 6f 77 5f 72 65 75 73 65 5f 61 64 64 72 65 73 73 0a 0a 20 20 20 e.....-.allow_reuse_address.....
1ac0 20 49 6e 73 74 61 6e 63 65 20 76 61 72 69 61 62 6c 65 73 3a 0a 0a 20 20 20 20 2d 20 52 65 71 75 .Instance.variables:......-.Requ
1ae0 65 73 74 48 61 6e 64 6c 65 72 43 6c 61 73 73 0a 20 20 20 20 2d 20 73 6f 63 6b 65 74 0a 0a 20 20 estHandlerClass.....-.socket....
1b00 20 20 63 03 00 00 00 03 00 00 00 02 00 00 00 43 00 00 00 73 16 00 00 00 7c 01 00 7c 00 00 5f 00 ..c............C...s....|..|.._.
1b20 00 7c 02 00 7c 00 00 5f 01 00 64 01 00 53 28 02 00 00 00 73 2f 00 00 00 43 6f 6e 73 74 72 75 63 .|..|.._..d..S(....s/...Construc
1b40 74 6f 72 2e 20 20 4d 61 79 20 62 65 20 65 78 74 65 6e 64 65 64 2c 20 64 6f 20 6e 6f 74 20 6f 76 tor...May.be.extended,.do.not.ov
1b60 65 72 72 69 64 65 2e 4e 28 02 00 00 00 74 0e 00 00 00 73 65 72 76 65 72 5f 61 64 64 72 65 73 73 erride.N(....t....server_address
1b80 74 13 00 00 00 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 43 6c 61 73 73 28 03 00 00 00 74 04 00 t....RequestHandlerClass(....t..
1ba0 00 00 73 65 6c 66 52 11 00 00 00 52 12 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f ..selfR....R....(....(....s..../
1bc0 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 74 08 sys/lib/python/SocketServer.pyt.
1be0 00 00 00 5f 5f 69 6e 69 74 5f 5f b9 00 00 00 73 04 00 00 00 00 02 09 01 63 01 00 00 00 01 00 00 ...__init__....s........c.......
1c00 00 01 00 00 00 43 00 00 00 73 04 00 00 00 64 01 00 53 28 02 00 00 00 73 53 00 00 00 43 61 6c 6c .....C...s....d..S(....sS...Call
1c20 65 64 20 62 79 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 74 6f 20 61 63 74 69 76 61 74 65 20 74 68 ed.by.constructor.to.activate.th
1c40 65 20 73 65 72 76 65 72 2e 0a 0a 20 20 20 20 20 20 20 20 4d 61 79 20 62 65 20 6f 76 65 72 72 69 e.server...........May.be.overri
1c60 64 64 65 6e 2e 0a 0a 20 20 20 20 20 20 20 20 4e 28 00 00 00 00 28 01 00 00 00 52 13 00 00 00 28 dden...........N(....(....R....(
1c80 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f ....(....s..../sys/lib/python/So
1ca0 63 6b 65 74 53 65 72 76 65 72 2e 70 79 74 0f 00 00 00 73 65 72 76 65 72 5f 61 63 74 69 76 61 74 cketServer.pyt....server_activat
1cc0 65 be 00 00 00 73 02 00 00 00 00 06 63 01 00 00 00 01 00 00 00 01 00 00 00 43 00 00 00 73 14 00 e....s......c............C...s..
1ce0 00 00 78 0d 00 7c 00 00 69 00 00 83 00 00 01 71 03 00 64 01 00 53 28 02 00 00 00 73 2c 00 00 00 ..x..|..i......q..d..S(....s,...
1d00 48 61 6e 64 6c 65 20 6f 6e 65 20 72 65 71 75 65 73 74 20 61 74 20 61 20 74 69 6d 65 20 75 6e 74 Handle.one.request.at.a.time.unt
1d20 69 6c 20 64 6f 6f 6d 73 64 61 79 2e 4e 28 01 00 00 00 74 0e 00 00 00 68 61 6e 64 6c 65 5f 72 65 il.doomsday.N(....t....handle_re
1d40 71 75 65 73 74 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 quest(....R....(....(....s..../s
1d60 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 74 0d 00 ys/lib/python/SocketServer.pyt..
1d80 00 00 73 65 72 76 65 5f 66 6f 72 65 76 65 72 c6 00 00 00 73 04 00 00 00 00 02 03 01 63 01 00 00 ..serve_forever....s........c...
1da0 00 03 00 00 00 09 00 00 00 43 00 00 00 73 89 00 00 00 79 16 00 7c 00 00 69 00 00 83 00 00 5c 02 .........C...s....y..|..i.....\.
1dc0 00 7d 01 00 7d 02 00 57 6e 1a 00 04 74 01 00 69 02 00 6a 0a 00 6f 0b 00 01 01 01 01 64 01 00 53 .}..}..Wn...t..i..j..o......d..S
1de0 6e 02 00 01 58 7c 00 00 69 03 00 7c 01 00 7c 02 00 83 02 00 6f 3f 00 01 79 14 00 7c 00 00 69 04 n...X|..i..|..|.....o?..y..|..i.
1e00 00 7c 01 00 7c 02 00 83 02 00 01 57 71 85 00 01 01 01 7c 00 00 69 05 00 7c 01 00 7c 02 00 83 02 .|..|......Wq.....|..i..|..|....
1e20 00 01 7c 00 00 69 06 00 7c 01 00 83 01 00 01 71 85 00 58 6e 01 00 01 64 01 00 53 28 02 00 00 00 ..|..i..|......q..Xn...d..S(....
1e40 73 26 00 00 00 48 61 6e 64 6c 65 20 6f 6e 65 20 72 65 71 75 65 73 74 2c 20 70 6f 73 73 69 62 6c s&...Handle.one.request,.possibl
1e60 79 20 62 6c 6f 63 6b 69 6e 67 2e 4e 28 07 00 00 00 74 0b 00 00 00 67 65 74 5f 72 65 71 75 65 73 y.blocking.N(....t....get_reques
1e80 74 74 06 00 00 00 73 6f 63 6b 65 74 74 05 00 00 00 65 72 72 6f 72 74 0e 00 00 00 76 65 72 69 66 tt....sockett....errort....verif
1ea0 79 5f 72 65 71 75 65 73 74 74 0f 00 00 00 70 72 6f 63 65 73 73 5f 72 65 71 75 65 73 74 74 0c 00 y_requestt....process_requestt..
1ec0 00 00 68 61 6e 64 6c 65 5f 65 72 72 6f 72 74 0d 00 00 00 63 6c 6f 73 65 5f 72 65 71 75 65 73 74 ..handle_errort....close_request
1ee0 28 03 00 00 00 52 13 00 00 00 74 07 00 00 00 72 65 71 75 65 73 74 74 0e 00 00 00 63 6c 69 65 6e (....R....t....requestt....clien
1f00 74 5f 61 64 64 72 65 73 73 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 t_address(....(....s..../sys/lib
1f20 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 16 00 00 00 d6 00 00 00 /python/SocketServer.pyR........
1f40 73 14 00 00 00 00 02 03 01 16 01 11 01 09 01 13 01 03 01 14 01 03 01 10 01 63 03 00 00 00 03 00 s........................c......
1f60 00 00 01 00 00 00 43 00 00 00 73 04 00 00 00 74 00 00 53 28 01 00 00 00 73 6e 00 00 00 56 65 72 ......C...s....t..S(....sn...Ver
1f80 69 66 79 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 4d 61 79 20 62 65 20 6f 76 65 72 72 69 64 ify.the.request...May.be.overrid
1fa0 64 65 6e 2e 0a 0a 20 20 20 20 20 20 20 20 52 65 74 75 72 6e 20 54 72 75 65 20 69 66 20 77 65 20 den...........Return.True.if.we.
1fc0 73 68 6f 75 6c 64 20 70 72 6f 63 65 65 64 20 77 69 74 68 20 74 68 69 73 20 72 65 71 75 65 73 74 should.proceed.with.this.request
1fe0 2e 0a 0a 20 20 20 20 20 20 20 20 28 01 00 00 00 74 04 00 00 00 54 72 75 65 28 03 00 00 00 52 13 ...........(....t....True(....R.
2000 00 00 00 52 1f 00 00 00 52 20 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 ...R....R....(....(....s..../sys
2020 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 1b 00 00 00 /lib/python/SocketServer.pyR....
2040 e3 00 00 00 73 02 00 00 00 00 06 63 03 00 00 00 03 00 00 00 03 00 00 00 43 00 00 00 73 21 00 00 ....s......c............C...s!..
2060 00 7c 00 00 69 00 00 7c 01 00 7c 02 00 83 02 00 01 7c 00 00 69 01 00 7c 01 00 83 01 00 01 64 01 .|..i..|..|......|..i..|......d.
2080 00 53 28 02 00 00 00 73 56 00 00 00 43 61 6c 6c 20 66 69 6e 69 73 68 5f 72 65 71 75 65 73 74 2e .S(....sV...Call.finish_request.
20a0 0a 0a 20 20 20 20 20 20 20 20 4f 76 65 72 72 69 64 64 65 6e 20 62 79 20 46 6f 72 6b 69 6e 67 4d ..........Overridden.by.ForkingM
20c0 69 78 49 6e 20 61 6e 64 20 54 68 72 65 61 64 69 6e 67 4d 69 78 49 6e 2e 0a 0a 20 20 20 20 20 20 ixIn.and.ThreadingMixIn.........
20e0 20 20 4e 28 02 00 00 00 74 0e 00 00 00 66 69 6e 69 73 68 5f 72 65 71 75 65 73 74 52 1e 00 00 00 ..N(....t....finish_requestR....
2100 28 03 00 00 00 52 13 00 00 00 52 1f 00 00 00 52 20 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f (....R....R....R....(....(....s.
2120 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e .../sys/lib/python/SocketServer.
2140 70 79 52 1c 00 00 00 eb 00 00 00 73 04 00 00 00 00 06 10 01 63 01 00 00 00 01 00 00 00 01 00 00 pyR........s........c...........
2160 00 43 00 00 00 73 04 00 00 00 64 01 00 53 28 02 00 00 00 73 44 00 00 00 43 61 6c 6c 65 64 20 74 .C...s....d..S(....sD...Called.t
2180 6f 20 63 6c 65 61 6e 2d 75 70 20 74 68 65 20 73 65 72 76 65 72 2e 0a 0a 20 20 20 20 20 20 20 20 o.clean-up.the.server...........
21a0 4d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 0a 0a 20 20 20 20 20 20 20 20 4e 28 00 00 May.be.overridden...........N(..
21c0 00 00 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f ..(....R....(....(....s..../sys/
21e0 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 74 0c 00 00 00 73 lib/python/SocketServer.pyt....s
2200 65 72 76 65 72 5f 63 6c 6f 73 65 f4 00 00 00 73 02 00 00 00 00 06 63 03 00 00 00 03 00 00 00 04 erver_close....s......c.........
2220 00 00 00 43 00 00 00 73 17 00 00 00 7c 00 00 69 00 00 7c 01 00 7c 02 00 7c 00 00 83 03 00 01 64 ...C...s....|..i..|..|..|......d
2240 01 00 53 28 02 00 00 00 73 38 00 00 00 46 69 6e 69 73 68 20 6f 6e 65 20 72 65 71 75 65 73 74 20 ..S(....s8...Finish.one.request.
2260 62 79 20 69 6e 73 74 61 6e 74 69 61 74 69 6e 67 20 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 43 by.instantiating.RequestHandlerC
2280 6c 61 73 73 2e 4e 28 01 00 00 00 52 12 00 00 00 28 03 00 00 00 52 13 00 00 00 52 1f 00 00 00 52 lass.N(....R....(....R....R....R
22a0 20 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 ....(....(....s..../sys/lib/pyth
22c0 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 22 00 00 00 fc 00 00 00 73 02 00 00 00 on/SocketServer.pyR".......s....
22e0 00 02 63 02 00 00 00 02 00 00 00 01 00 00 00 43 00 00 00 73 04 00 00 00 64 01 00 53 28 02 00 00 ..c............C...s....d..S(...
2300 00 73 29 00 00 00 43 61 6c 6c 65 64 20 74 6f 20 63 6c 65 61 6e 20 75 70 20 61 6e 20 69 6e 64 69 .s)...Called.to.clean.up.an.indi
2320 76 69 64 75 61 6c 20 72 65 71 75 65 73 74 2e 4e 28 00 00 00 00 28 02 00 00 00 52 13 00 00 00 52 vidual.request.N(....(....R....R
2340 1f 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 ....(....(....s..../sys/lib/pyth
2360 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 1e 00 00 00 00 01 00 00 73 02 00 00 00 on/SocketServer.pyR........s....
2380 00 02 63 03 00 00 00 04 00 00 00 03 00 00 00 43 00 00 00 73 35 00 00 00 64 01 00 64 02 00 14 47 ..c............C...s5...d..d...G
23a0 48 64 03 00 47 7c 02 00 47 48 64 04 00 64 05 00 6b 00 00 7d 03 00 7c 03 00 69 01 00 83 00 00 01 Hd..G|..GHd..d..k..}..|..i......
23c0 64 01 00 64 02 00 14 47 48 64 05 00 53 28 06 00 00 00 73 74 00 00 00 48 61 6e 64 6c 65 20 61 6e d..d...GHd..S(....st...Handle.an
23e0 20 65 72 72 6f 72 20 67 72 61 63 65 66 75 6c 6c 79 2e 20 20 4d 61 79 20 62 65 20 6f 76 65 72 72 .error.gracefully...May.be.overr
2400 69 64 64 65 6e 2e 0a 0a 20 20 20 20 20 20 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 74 idden...........The.default.is.t
2420 6f 20 70 72 69 6e 74 20 61 20 74 72 61 63 65 62 61 63 6b 20 61 6e 64 20 63 6f 6e 74 69 6e 75 65 o.print.a.traceback.and.continue
2440 2e 0a 0a 20 20 20 20 20 20 20 20 74 01 00 00 00 2d 69 28 00 00 00 73 34 00 00 00 45 78 63 65 70 ...........t....-i(...s4...Excep
2460 74 69 6f 6e 20 68 61 70 70 65 6e 65 64 20 64 75 72 69 6e 67 20 70 72 6f 63 65 73 73 69 6e 67 20 tion.happened.during.processing.
2480 6f 66 20 72 65 71 75 65 73 74 20 66 72 6f 6d 69 ff ff ff ff 4e 28 02 00 00 00 74 09 00 00 00 74 of.request.fromi....N(....t....t
24a0 72 61 63 65 62 61 63 6b 74 09 00 00 00 70 72 69 6e 74 5f 65 78 63 28 04 00 00 00 52 13 00 00 00 racebackt....print_exc(....R....
24c0 52 1f 00 00 00 52 20 00 00 00 52 25 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 R....R....R%...(....(....s..../s
24e0 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 1d 00 ys/lib/python/SocketServer.pyR..
2500 00 00 04 01 00 00 73 0c 00 00 00 00 06 09 01 04 01 05 01 0c 01 0a 01 28 0d 00 00 00 74 08 00 00 ......s................(....t...
2520 00 5f 5f 6e 61 6d 65 5f 5f 74 0a 00 00 00 5f 5f 6d 6f 64 75 6c 65 5f 5f 74 07 00 00 00 5f 5f 64 .__name__t....__module__t....__d
2540 6f 63 5f 5f 52 14 00 00 00 52 15 00 00 00 52 17 00 00 00 52 16 00 00 00 52 1b 00 00 00 52 1c 00 oc__R....R....R....R....R....R..
2560 00 00 52 23 00 00 00 52 22 00 00 00 52 1e 00 00 00 52 1d 00 00 00 28 00 00 00 00 28 00 00 00 00 ..R#...R"...R....R....(....(....
2580 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 (....s..../sys/lib/python/Socket
25a0 53 65 72 76 65 72 2e 70 79 52 10 00 00 00 91 00 00 00 73 16 00 00 00 06 26 06 02 09 05 09 08 09 Server.pyR........s.....&.......
25c0 10 09 0d 09 08 09 09 09 08 09 04 09 04 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 6b .............c............B...sk
25e0 00 00 00 65 00 00 5a 01 00 64 00 00 5a 02 00 65 03 00 69 04 00 5a 05 00 65 03 00 69 06 00 5a 07 ...e..Z..d..Z..e..i..Z..e..i..Z.
2600 00 64 01 00 5a 08 00 65 09 00 5a 0a 00 64 02 00 84 00 00 5a 0b 00 64 03 00 84 00 00 5a 0c 00 64 .d..Z..e..Z..d.....Z..d.....Z..d
2620 04 00 84 00 00 5a 0d 00 64 05 00 84 00 00 5a 0e 00 64 06 00 84 00 00 5a 0f 00 64 07 00 84 00 00 .....Z..d.....Z..d.....Z..d.....
2640 5a 10 00 64 08 00 84 00 00 5a 11 00 52 53 28 09 00 00 00 73 b4 03 00 00 42 61 73 65 20 63 6c 61 Z..d.....Z..RS(....s....Base.cla
2660 73 73 20 66 6f 72 20 76 61 72 69 6f 75 73 20 73 6f 63 6b 65 74 2d 62 61 73 65 64 20 73 65 72 76 ss.for.various.socket-based.serv
2680 65 72 20 63 6c 61 73 73 65 73 2e 0a 0a 20 20 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 73 79 6e er.classes.......Defaults.to.syn
26a0 63 68 72 6f 6e 6f 75 73 20 49 50 20 73 74 72 65 61 6d 20 28 69 2e 65 2e 2c 20 54 43 50 29 2e 0a chronous.IP.stream.(i.e.,.TCP)..
26c0 0a 20 20 20 20 4d 65 74 68 6f 64 73 20 66 6f 72 20 74 68 65 20 63 61 6c 6c 65 72 3a 0a 0a 20 20 .....Methods.for.the.caller:....
26e0 20 20 2d 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 72 76 65 72 5f 61 64 64 72 65 73 73 2c 20 52 65 71 ..-.__init__(server_address,.Req
2700 75 65 73 74 48 61 6e 64 6c 65 72 43 6c 61 73 73 29 0a 20 20 20 20 2d 20 73 65 72 76 65 5f 66 6f uestHandlerClass).....-.serve_fo
2720 72 65 76 65 72 28 29 0a 20 20 20 20 2d 20 68 61 6e 64 6c 65 5f 72 65 71 75 65 73 74 28 29 20 20 rever().....-.handle_request()..
2740 23 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 75 73 65 20 73 65 72 76 65 5f 66 6f 72 65 76 65 72 #.if.you.don't.use.serve_forever
2760 28 29 0a 20 20 20 20 2d 20 66 69 6c 65 6e 6f 28 29 20 2d 3e 20 69 6e 74 20 20 20 23 20 66 6f 72 ().....-.fileno().->.int...#.for
2780 20 73 65 6c 65 63 74 28 29 0a 0a 20 20 20 20 4d 65 74 68 6f 64 73 20 74 68 61 74 20 6d 61 79 20 .select()......Methods.that.may.
27a0 62 65 20 6f 76 65 72 72 69 64 64 65 6e 3a 0a 0a 20 20 20 20 2d 20 73 65 72 76 65 72 5f 62 69 6e be.overridden:......-.server_bin
27c0 64 28 29 0a 20 20 20 20 2d 20 73 65 72 76 65 72 5f 61 63 74 69 76 61 74 65 28 29 0a 20 20 20 20 d().....-.server_activate().....
27e0 2d 20 67 65 74 5f 72 65 71 75 65 73 74 28 29 20 2d 3e 20 72 65 71 75 65 73 74 2c 20 63 6c 69 65 -.get_request().->.request,.clie
2800 6e 74 5f 61 64 64 72 65 73 73 0a 20 20 20 20 2d 20 76 65 72 69 66 79 5f 72 65 71 75 65 73 74 28 nt_address.....-.verify_request(
2820 72 65 71 75 65 73 74 2c 20 63 6c 69 65 6e 74 5f 61 64 64 72 65 73 73 29 0a 20 20 20 20 2d 20 70 request,.client_address).....-.p
2840 72 6f 63 65 73 73 5f 72 65 71 75 65 73 74 28 72 65 71 75 65 73 74 2c 20 63 6c 69 65 6e 74 5f 61 rocess_request(request,.client_a
2860 64 64 72 65 73 73 29 0a 20 20 20 20 2d 20 63 6c 6f 73 65 5f 72 65 71 75 65 73 74 28 72 65 71 75 ddress).....-.close_request(requ
2880 65 73 74 29 0a 20 20 20 20 2d 20 68 61 6e 64 6c 65 5f 65 72 72 6f 72 28 29 0a 0a 20 20 20 20 4d est).....-.handle_error()......M
28a0 65 74 68 6f 64 73 20 66 6f 72 20 64 65 72 69 76 65 64 20 63 6c 61 73 73 65 73 3a 0a 0a 20 20 20 ethods.for.derived.classes:.....
28c0 20 2d 20 66 69 6e 69 73 68 5f 72 65 71 75 65 73 74 28 72 65 71 75 65 73 74 2c 20 63 6c 69 65 6e .-.finish_request(request,.clien
28e0 74 5f 61 64 64 72 65 73 73 29 0a 0a 20 20 20 20 43 6c 61 73 73 20 76 61 72 69 61 62 6c 65 73 20 t_address)......Class.variables.
2900 74 68 61 74 20 6d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 20 62 79 20 64 65 72 69 76 65 that.may.be.overridden.by.derive
2920 64 20 63 6c 61 73 73 65 73 20 6f 72 0a 20 20 20 20 69 6e 73 74 61 6e 63 65 73 3a 0a 0a 20 20 20 d.classes.or.....instances:.....
2940 20 2d 20 61 64 64 72 65 73 73 5f 66 61 6d 69 6c 79 0a 20 20 20 20 2d 20 73 6f 63 6b 65 74 5f 74 .-.address_family.....-.socket_t
2960 79 70 65 0a 20 20 20 20 2d 20 72 65 71 75 65 73 74 5f 71 75 65 75 65 5f 73 69 7a 65 20 28 6f 6e ype.....-.request_queue_size.(on
2980 6c 79 20 66 6f 72 20 73 74 72 65 61 6d 20 73 6f 63 6b 65 74 73 29 0a 20 20 20 20 2d 20 61 6c 6c ly.for.stream.sockets).....-.all
29a0 6f 77 5f 72 65 75 73 65 5f 61 64 64 72 65 73 73 0a 0a 20 20 20 20 49 6e 73 74 61 6e 63 65 20 76 ow_reuse_address......Instance.v
29c0 61 72 69 61 62 6c 65 73 3a 0a 0a 20 20 20 20 2d 20 73 65 72 76 65 72 5f 61 64 64 72 65 73 73 0a ariables:......-.server_address.
29e0 20 20 20 20 2d 20 52 65 71 75 65 73 74 48 61 6e 64 6c 65 72 43 6c 61 73 73 0a 20 20 20 20 2d 20 ....-.RequestHandlerClass.....-.
2a00 73 6f 63 6b 65 74 0a 0a 20 20 20 20 69 05 00 00 00 63 03 00 00 00 03 00 00 00 04 00 00 00 43 00 socket......i....c............C.
2a20 00 00 73 46 00 00 00 74 00 00 69 01 00 7c 00 00 7c 01 00 7c 02 00 83 03 00 01 74 02 00 69 02 00 ..sF...t..i..|..|..|......t..i..
2a40 7c 00 00 69 03 00 7c 00 00 69 04 00 83 02 00 7c 00 00 5f 02 00 7c 00 00 69 05 00 83 00 00 01 7c |..i..|..i.....|.._..|..i......|
2a60 00 00 69 06 00 83 00 00 01 64 01 00 53 28 02 00 00 00 73 2f 00 00 00 43 6f 6e 73 74 72 75 63 74 ..i......d..S(....s/...Construct
2a80 6f 72 2e 20 20 4d 61 79 20 62 65 20 65 78 74 65 6e 64 65 64 2c 20 64 6f 20 6e 6f 74 20 6f 76 65 or...May.be.extended,.do.not.ove
2aa0 72 72 69 64 65 2e 4e 28 07 00 00 00 52 10 00 00 00 52 14 00 00 00 52 19 00 00 00 74 0e 00 00 00 rride.N(....R....R....R....t....
2ac0 61 64 64 72 65 73 73 5f 66 61 6d 69 6c 79 74 0b 00 00 00 73 6f 63 6b 65 74 5f 74 79 70 65 74 0b address_familyt....socket_typet.
2ae0 00 00 00 73 65 72 76 65 72 5f 62 69 6e 64 52 15 00 00 00 28 03 00 00 00 52 13 00 00 00 52 11 00 ...server_bindR....(....R....R..
2b00 00 00 52 12 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 ..R....(....(....s..../sys/lib/p
2b20 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 14 00 00 00 45 01 00 00 73 0a ython/SocketServer.pyR....E...s.
2b40 00 00 00 00 02 13 01 0c 01 0f 01 0a 01 63 01 00 00 00 01 00 00 00 04 00 00 00 43 00 00 00 73 53 .............c............C...sS
2b60 00 00 00 7c 00 00 69 00 00 6f 20 00 01 7c 00 00 69 01 00 69 02 00 74 01 00 69 03 00 74 01 00 69 ...|..i..o...|..i..i..t..i..t..i
2b80 04 00 64 01 00 83 03 00 01 6e 01 00 01 7c 00 00 69 01 00 69 05 00 7c 00 00 69 06 00 83 01 00 01 ..d......n...|..i..i..|..i......
2ba0 7c 00 00 69 01 00 69 07 00 83 00 00 7c 00 00 5f 06 00 64 02 00 53 28 03 00 00 00 73 4f 00 00 00 |..i..i.....|.._..d..S(....sO...
2bc0 43 61 6c 6c 65 64 20 62 79 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 74 6f 20 62 69 6e 64 20 74 68 Called.by.constructor.to.bind.th
2be0 65 20 73 6f 63 6b 65 74 2e 0a 0a 20 20 20 20 20 20 20 20 4d 61 79 20 62 65 20 6f 76 65 72 72 69 e.socket...........May.be.overri
2c00 64 64 65 6e 2e 0a 0a 20 20 20 20 20 20 20 20 69 01 00 00 00 4e 28 08 00 00 00 74 13 00 00 00 61 dden...........i....N(....t....a
2c20 6c 6c 6f 77 5f 72 65 75 73 65 5f 61 64 64 72 65 73 73 52 19 00 00 00 74 0a 00 00 00 73 65 74 73 llow_reuse_addressR....t....sets
2c40 6f 63 6b 6f 70 74 74 0a 00 00 00 53 4f 4c 5f 53 4f 43 4b 45 54 74 0c 00 00 00 53 4f 5f 52 45 55 ockoptt....SOL_SOCKETt....SO_REU
2c60 53 45 41 44 44 52 74 04 00 00 00 62 69 6e 64 52 11 00 00 00 74 0b 00 00 00 67 65 74 73 6f 63 6b SEADDRt....bindR....t....getsock
2c80 6e 61 6d 65 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 name(....R....(....(....s..../sy
2ca0 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 2c 00 00 s/lib/python/SocketServer.pyR,..
2cc0 00 4d 01 00 00 73 08 00 00 00 00 06 0a 01 20 01 13 01 63 01 00 00 00 01 00 00 00 02 00 00 00 43 .M...s............c............C
2ce0 00 00 00 73 17 00 00 00 7c 00 00 69 00 00 69 01 00 7c 00 00 69 02 00 83 01 00 01 64 01 00 53 28 ...s....|..i..i..|..i......d..S(
2d00 02 00 00 00 73 53 00 00 00 43 61 6c 6c 65 64 20 62 79 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 74 ....sS...Called.by.constructor.t
2d20 6f 20 61 63 74 69 76 61 74 65 20 74 68 65 20 73 65 72 76 65 72 2e 0a 0a 20 20 20 20 20 20 20 20 o.activate.the.server...........
2d40 4d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 0a 0a 20 20 20 20 20 20 20 20 4e 28 03 00 May.be.overridden...........N(..
2d60 00 00 52 19 00 00 00 74 06 00 00 00 6c 69 73 74 65 6e 74 12 00 00 00 72 65 71 75 65 73 74 5f 71 ..R....t....listent....request_q
2d80 75 65 75 65 5f 73 69 7a 65 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 ueue_size(....R....(....(....s..
2da0 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 ../sys/lib/python/SocketServer.p
2dc0 79 52 15 00 00 00 58 01 00 00 73 02 00 00 00 00 06 63 01 00 00 00 01 00 00 00 01 00 00 00 43 00 yR....X...s......c............C.
2de0 00 00 73 11 00 00 00 7c 00 00 69 00 00 69 01 00 83 00 00 01 64 01 00 53 28 02 00 00 00 73 44 00 ..s....|..i..i......d..S(....sD.
2e00 00 00 43 61 6c 6c 65 64 20 74 6f 20 63 6c 65 61 6e 2d 75 70 20 74 68 65 20 73 65 72 76 65 72 2e ..Called.to.clean-up.the.server.
2e20 0a 0a 20 20 20 20 20 20 20 20 4d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 0a 0a 20 20 ..........May.be.overridden.....
2e40 20 20 20 20 20 20 4e 28 02 00 00 00 52 19 00 00 00 74 05 00 00 00 63 6c 6f 73 65 28 01 00 00 00 ......N(....R....t....close(....
2e60 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 R....(....(....s..../sys/lib/pyt
2e80 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 23 00 00 00 60 01 00 00 73 02 00 00 hon/SocketServer.pyR#...`...s...
2ea0 00 00 06 63 01 00 00 00 01 00 00 00 01 00 00 00 43 00 00 00 73 0d 00 00 00 7c 00 00 69 00 00 69 ...c............C...s....|..i..i
2ec0 01 00 83 00 00 53 28 01 00 00 00 73 4d 00 00 00 52 65 74 75 72 6e 20 73 6f 63 6b 65 74 20 66 69 .....S(....sM...Return.socket.fi
2ee0 6c 65 20 6e 75 6d 62 65 72 2e 0a 0a 20 20 20 20 20 20 20 20 49 6e 74 65 72 66 61 63 65 20 72 65 le.number...........Interface.re
2f00 71 75 69 72 65 64 20 62 79 20 73 65 6c 65 63 74 28 29 2e 0a 0a 20 20 20 20 20 20 20 20 28 02 00 quired.by.select()...........(..
2f20 00 00 52 19 00 00 00 74 06 00 00 00 66 69 6c 65 6e 6f 28 01 00 00 00 52 13 00 00 00 28 00 00 00 ..R....t....fileno(....R....(...
2f40 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 .(....s..../sys/lib/python/Socke
2f60 74 53 65 72 76 65 72 2e 70 79 52 36 00 00 00 68 01 00 00 73 02 00 00 00 00 06 63 01 00 00 00 01 tServer.pyR6...h...s......c.....
2f80 00 00 00 01 00 00 00 43 00 00 00 73 0d 00 00 00 7c 00 00 69 00 00 69 01 00 83 00 00 53 28 01 00 .......C...s....|..i..i.....S(..
2fa0 00 00 73 59 00 00 00 47 65 74 20 74 68 65 20 72 65 71 75 65 73 74 20 61 6e 64 20 63 6c 69 65 6e ..sY...Get.the.request.and.clien
2fc0 74 20 61 64 64 72 65 73 73 20 66 72 6f 6d 20 74 68 65 20 73 6f 63 6b 65 74 2e 0a 0a 20 20 20 20 t.address.from.the.socket.......
2fe0 20 20 20 20 4d 61 79 20 62 65 20 6f 76 65 72 72 69 64 64 65 6e 2e 0a 0a 20 20 20 20 20 20 20 20 ....May.be.overridden...........
3000 28 02 00 00 00 52 19 00 00 00 74 06 00 00 00 61 63 63 65 70 74 28 01 00 00 00 52 13 00 00 00 28 (....R....t....accept(....R....(
3020 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f ....(....s..../sys/lib/python/So
3040 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 18 00 00 00 70 01 00 00 73 02 00 00 00 00 06 63 02 00 cketServer.pyR....p...s......c..
3060 00 00 02 00 00 00 01 00 00 00 43 00 00 00 73 0e 00 00 00 7c 01 00 69 00 00 83 00 00 01 64 01 00 ..........C...s....|..i......d..
3080 53 28 02 00 00 00 73 29 00 00 00 43 61 6c 6c 65 64 20 74 6f 20 63 6c 65 61 6e 20 75 70 20 61 6e S(....s)...Called.to.clean.up.an
30a0 20 69 6e 64 69 76 69 64 75 61 6c 20 72 65 71 75 65 73 74 2e 4e 28 01 00 00 00 52 35 00 00 00 28 .individual.request.N(....R5...(
30c0 02 00 00 00 52 13 00 00 00 52 1f 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 ....R....R....(....(....s..../sy
30e0 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 1e 00 00 s/lib/python/SocketServer.pyR...
3100 00 78 01 00 00 73 02 00 00 00 00 02 28 12 00 00 00 52 27 00 00 00 52 28 00 00 00 52 29 00 00 00 .x...s......(....R'...R(...R)...
3120 52 19 00 00 00 74 07 00 00 00 41 46 5f 49 4e 45 54 52 2a 00 00 00 74 0b 00 00 00 53 4f 43 4b 5f R....t....AF_INETR*...t....SOCK_
3140 53 54 52 45 41 4d 52 2b 00 00 00 52 34 00 00 00 74 05 00 00 00 46 61 6c 73 65 52 2d 00 00 00 52 STREAMR+...R4...t....FalseR-...R
3160 14 00 00 00 52 2c 00 00 00 52 15 00 00 00 52 23 00 00 00 52 36 00 00 00 52 18 00 00 00 52 1e 00 ....R,...R....R#...R6...R....R..
3180 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 ..(....(....(....s..../sys/lib/p
31a0 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 00 00 00 00 12 01 00 00 73 18 ython/SocketServer.pyR........s.
31c0 00 00 00 06 29 06 02 09 02 09 02 06 02 06 02 09 08 09 0b 09 08 09 08 09 08 09 08 63 00 00 00 00 ....)......................c....
31e0 00 00 00 00 01 00 00 00 42 00 00 00 73 3e 00 00 00 65 00 00 5a 01 00 64 00 00 5a 02 00 65 03 00 ........B...s>...e..Z..d..Z..e..
3200 5a 04 00 65 05 00 69 06 00 5a 07 00 64 01 00 5a 08 00 64 02 00 84 00 00 5a 09 00 64 03 00 84 00 Z..e..i..Z..d..Z..d.....Z..d....
3220 00 5a 0a 00 64 04 00 84 00 00 5a 0b 00 52 53 28 05 00 00 00 73 11 00 00 00 55 44 50 20 73 65 72 .Z..d.....Z..RS(....s....UDP.ser
3240 76 65 72 20 63 6c 61 73 73 2e 69 00 20 00 00 63 01 00 00 00 03 00 00 00 02 00 00 00 43 00 00 00 ver.class.i....c............C...
3260 73 2e 00 00 00 7c 00 00 69 00 00 69 01 00 7c 00 00 69 02 00 83 01 00 5c 02 00 7d 01 00 7d 02 00 s....|..i..i..|..i.....\..}..}..
3280 7c 01 00 7c 00 00 69 00 00 66 02 00 7c 02 00 66 02 00 53 28 01 00 00 00 4e 28 03 00 00 00 52 19 |..|..i..f..|..f..S(....N(....R.
32a0 00 00 00 74 08 00 00 00 72 65 63 76 66 72 6f 6d 74 0f 00 00 00 6d 61 78 5f 70 61 63 6b 65 74 5f ...t....recvfromt....max_packet_
32c0 73 69 7a 65 28 03 00 00 00 52 13 00 00 00 74 04 00 00 00 64 61 74 61 74 0b 00 00 00 63 6c 69 65 size(....R....t....datat....clie
32e0 6e 74 5f 61 64 64 72 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 nt_addr(....(....s..../sys/lib/p
3300 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 18 00 00 00 87 01 00 00 73 04 ython/SocketServer.pyR........s.
3320 00 00 00 00 01 1b 01 63 01 00 00 00 01 00 00 00 01 00 00 00 43 00 00 00 73 04 00 00 00 64 00 00 .......c............C...s....d..
3340 53 28 01 00 00 00 4e 28 00 00 00 00 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 S(....N(....(....R....(....(....
3360 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 s..../sys/lib/python/SocketServe
3380 72 2e 70 79 52 15 00 00 00 8b 01 00 00 73 02 00 00 00 00 02 63 02 00 00 00 02 00 00 00 01 00 00 r.pyR........s......c...........
33a0 00 43 00 00 00 73 04 00 00 00 64 00 00 53 28 01 00 00 00 4e 28 00 00 00 00 28 02 00 00 00 52 13 .C...s....d..S(....N(....(....R.
33c0 00 00 00 52 1f 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f ...R....(....(....s..../sys/lib/
33e0 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 1e 00 00 00 8f 01 00 00 73 python/SocketServer.pyR........s
3400 02 00 00 00 00 02 28 0c 00 00 00 52 27 00 00 00 52 28 00 00 00 52 29 00 00 00 52 3a 00 00 00 52 ......(....R'...R(...R)...R:...R
3420 2d 00 00 00 52 19 00 00 00 74 0a 00 00 00 53 4f 43 4b 5f 44 47 52 41 4d 52 2b 00 00 00 52 3c 00 -...R....t....SOCK_DGRAMR+...R<.
3440 00 00 52 18 00 00 00 52 15 00 00 00 52 1e 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 ..R....R....R....(....(....(....
3460 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 s..../sys/lib/python/SocketServe
3480 72 2e 70 79 52 01 00 00 00 7d 01 00 00 73 0e 00 00 00 06 02 06 02 06 02 09 02 06 02 09 04 09 04 r.pyR....}...s..................
34a0 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 2c 00 00 00 65 00 00 5a 01 00 64 00 00 5a c............B...s,...e..Z..d..Z
34c0 02 00 64 04 00 5a 04 00 64 01 00 5a 05 00 64 02 00 84 00 00 5a 06 00 64 03 00 84 00 00 5a 07 00 ..d..Z..d..Z..d.....Z..d.....Z..
34e0 52 53 28 05 00 00 00 73 35 00 00 00 4d 69 78 2d 69 6e 20 63 6c 61 73 73 20 74 6f 20 68 61 6e 64 RS(....s5...Mix-in.class.to.hand
3500 6c 65 20 65 61 63 68 20 72 65 71 75 65 73 74 20 69 6e 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 le.each.request.in.a.new.process
3520 2e 69 28 00 00 00 63 01 00 00 00 04 00 00 00 06 00 00 00 43 00 00 00 73 99 00 00 00 78 92 00 7c .i(...c............C...s....x..|
3540 00 00 69 00 00 6f 87 00 01 74 01 00 7c 00 00 69 00 00 83 01 00 7c 00 00 69 02 00 6a 00 00 6f 0d ..i..o...t..|..i.....|..i..j..o.
3560 00 01 74 03 00 69 04 00 7d 01 00 6e 07 00 01 64 01 00 7d 01 00 79 1c 00 74 03 00 69 05 00 64 01 ..t..i..}..n...d..}..y..t..i..d.
3580 00 7c 01 00 83 02 00 5c 02 00 7d 02 00 7d 03 00 57 6e 1c 00 04 74 03 00 69 06 00 6a 0a 00 6f 0d .|.....\..}..}..Wn...t..i..j..o.
35a0 00 01 01 01 01 64 02 00 7d 02 00 6e 02 00 01 58 7c 02 00 70 05 00 01 50 6e 01 00 01 7c 00 00 69 .....d..}..n...X|..p...Pn...|..i
35c0 00 00 69 08 00 7c 02 00 83 01 00 01 71 03 00 01 57 64 02 00 53 28 03 00 00 00 73 2b 00 00 00 49 ..i..|......q...Wd..S(....s+...I
35e0 6e 74 65 72 6e 61 6c 20 72 6f 75 74 69 6e 65 20 74 6f 20 77 61 69 74 20 66 6f 72 20 64 69 65 64 nternal.routine.to.wait.for.died
3600 20 63 68 69 6c 64 72 65 6e 2e 69 00 00 00 00 4e 28 09 00 00 00 74 0f 00 00 00 61 63 74 69 76 65 .children.i....N(....t....active
3620 5f 63 68 69 6c 64 72 65 6e 74 03 00 00 00 6c 65 6e 74 0c 00 00 00 6d 61 78 5f 63 68 69 6c 64 72 _childrent....lent....max_childr
3640 65 6e 74 02 00 00 00 6f 73 74 07 00 00 00 57 4e 4f 48 41 4e 47 74 07 00 00 00 77 61 69 74 70 69 ent....ost....WNOHANGt....waitpi
3660 64 52 1a 00 00 00 74 04 00 00 00 4e 6f 6e 65 74 06 00 00 00 72 65 6d 6f 76 65 28 04 00 00 00 52 dR....t....Nonet....remove(....R
3680 13 00 00 00 74 07 00 00 00 6f 70 74 69 6f 6e 73 74 03 00 00 00 70 69 64 74 06 00 00 00 73 74 61 ....t....optionst....pidt....sta
36a0 74 75 73 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f tus(....(....s..../sys/lib/pytho
36c0 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 74 10 00 00 00 63 6f 6c 6c 65 63 74 5f 63 68 n/SocketServer.pyt....collect_ch
36e0 69 6c 64 72 65 6e 9a 01 00 00 73 14 00 00 00 00 02 0d 01 19 01 0d 04 06 01 03 01 1c 01 11 01 0b ildren....s.....................
3700 01 0c 01 63 03 00 00 00 04 00 00 00 06 00 00 00 43 00 00 00 73 b3 00 00 00 7c 00 00 69 00 00 83 ...c............C...s....|..i...
3720 00 00 01 74 01 00 69 02 00 83 00 00 7d 03 00 7c 03 00 6f 42 00 01 7c 00 00 69 03 00 64 01 00 6a ...t..i.....}..|..oB..|..i..d..j
3740 08 00 6f 0d 00 01 67 00 00 7c 00 00 5f 03 00 6e 01 00 01 7c 00 00 69 03 00 69 05 00 7c 03 00 83 ..o...g..|.._..n...|..i..i..|...
3760 01 00 01 7c 00 00 69 06 00 7c 01 00 83 01 00 01 64 01 00 53 6e 51 00 01 79 21 00 7c 00 00 69 07 ...|..i..|......d..SnQ..y!.|..i.
3780 00 7c 01 00 7c 02 00 83 02 00 01 74 01 00 69 08 00 64 02 00 83 01 00 01 57 6e 2c 00 01 01 01 7a .|..|......t..i..d......Wn,....z
37a0 14 00 7c 00 00 69 09 00 7c 01 00 7c 02 00 83 02 00 01 57 64 01 00 74 01 00 69 08 00 64 03 00 83 ..|..i..|..|......Wd..t..i..d...
37c0 01 00 01 58 6e 01 00 58 64 01 00 53 28 04 00 00 00 73 2d 00 00 00 46 6f 72 6b 20 61 20 6e 65 77 ...Xn..Xd..S(....s-...Fork.a.new
37e0 20 73 75 62 70 72 6f 63 65 73 73 20 74 6f 20 70 72 6f 63 65 73 73 20 74 68 65 20 72 65 71 75 65 .subprocess.to.process.the.reque
3800 73 74 2e 4e 69 00 00 00 00 69 01 00 00 00 28 0a 00 00 00 52 4b 00 00 00 52 43 00 00 00 74 04 00 st.Ni....i....(....RK...RC...t..
3820 00 00 66 6f 72 6b 52 40 00 00 00 52 46 00 00 00 74 06 00 00 00 61 70 70 65 6e 64 52 1e 00 00 00 ..forkR@...RF...t....appendR....
3840 52 22 00 00 00 74 05 00 00 00 5f 65 78 69 74 52 1d 00 00 00 28 04 00 00 00 52 13 00 00 00 52 1f R"...t...._exitR....(....R....R.
3860 00 00 00 52 20 00 00 00 52 49 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 ...R....RI...(....(....s..../sys
3880 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 1c 00 00 00 /lib/python/SocketServer.pyR....
38a0 aa 01 00 00 73 1e 00 00 00 00 02 0a 01 0c 01 07 02 10 01 0d 01 10 01 0d 01 08 04 03 01 10 01 11 ....s...........................
38c0 01 03 01 03 01 14 02 4e 28 08 00 00 00 52 27 00 00 00 52 28 00 00 00 52 29 00 00 00 52 46 00 00 .......N(....R'...R(...R)...RF..
38e0 00 52 40 00 00 00 52 42 00 00 00 52 4b 00 00 00 52 1c 00 00 00 28 00 00 00 00 28 00 00 00 00 28 .R@...RB...RK...R....(....(....(
3900 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 ....s..../sys/lib/python/SocketS
3920 65 72 76 65 72 2e 70 79 52 0a 00 00 00 93 01 00 00 73 0a 00 00 00 06 02 06 02 06 01 06 02 09 10 erver.pyR........s..............
3940 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 26 00 00 00 65 00 00 5a 01 00 64 00 00 5a c............B...s&...e..Z..d..Z
3960 02 00 65 03 00 5a 04 00 64 01 00 84 00 00 5a 05 00 64 02 00 84 00 00 5a 06 00 52 53 28 03 00 00 ..e..Z..d.....Z..d.....Z..RS(...
3980 00 73 34 00 00 00 4d 69 78 2d 69 6e 20 63 6c 61 73 73 20 74 6f 20 68 61 6e 64 6c 65 20 65 61 63 .s4...Mix-in.class.to.handle.eac
39a0 68 20 72 65 71 75 65 73 74 20 69 6e 20 61 20 6e 65 77 20 74 68 72 65 61 64 2e 63 03 00 00 00 03 h.request.in.a.new.thread.c.....
39c0 00 00 00 06 00 00 00 43 00 00 00 73 4c 00 00 00 79 21 00 7c 00 00 69 00 00 7c 01 00 7c 02 00 83 .......C...sL...y!.|..i..|..|...
39e0 02 00 01 7c 00 00 69 01 00 7c 01 00 83 01 00 01 57 6e 24 00 01 01 01 7c 00 00 69 02 00 7c 01 00 ...|..i..|......Wn$....|..i..|..
3a00 7c 02 00 83 02 00 01 7c 00 00 69 01 00 7c 01 00 83 01 00 01 6e 01 00 58 64 01 00 53 28 02 00 00 |......|..i..|......n..Xd..S(...
3a20 00 73 67 00 00 00 53 61 6d 65 20 61 73 20 69 6e 20 42 61 73 65 53 65 72 76 65 72 20 62 75 74 20 .sg...Same.as.in.BaseServer.but.
3a40 61 73 20 61 20 74 68 72 65 61 64 2e 0a 0a 20 20 20 20 20 20 20 20 49 6e 20 61 64 64 69 74 69 6f as.a.thread...........In.additio
3a60 6e 2c 20 65 78 63 65 70 74 69 6f 6e 20 68 61 6e 64 6c 69 6e 67 20 69 73 20 64 6f 6e 65 20 68 65 n,.exception.handling.is.done.he
3a80 72 65 2e 0a 0a 20 20 20 20 20 20 20 20 4e 28 03 00 00 00 52 22 00 00 00 52 1e 00 00 00 52 1d 00 re...........N(....R"...R....R..
3aa0 00 00 28 03 00 00 00 52 13 00 00 00 52 1f 00 00 00 52 20 00 00 00 28 00 00 00 00 28 00 00 00 00 ..(....R....R....R....(....(....
3ac0 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 s..../sys/lib/python/SocketServe
3ae0 72 2e 70 79 74 16 00 00 00 70 72 6f 63 65 73 73 5f 72 65 71 75 65 73 74 5f 74 68 72 65 61 64 c9 r.pyt....process_request_thread.
3b00 01 00 00 73 0c 00 00 00 00 06 03 01 10 01 11 01 03 01 10 01 63 03 00 00 00 05 00 00 00 07 00 00 ...s................c...........
3b20 00 43 00 00 00 73 56 00 00 00 64 01 00 64 02 00 6b 00 00 7d 03 00 7c 03 00 69 01 00 64 03 00 7c .C...sV...d..d..k..}..|..i..d..|
3b40 00 00 69 02 00 64 04 00 7c 01 00 7c 02 00 66 02 00 83 00 02 7d 04 00 7c 00 00 69 03 00 6f 11 00 ..i..d..|..|..f.....}..|..i..o..
3b60 01 7c 04 00 69 04 00 64 05 00 83 01 00 01 6e 01 00 01 7c 04 00 69 05 00 83 00 00 01 64 02 00 53 .|..i..d......n...|..i......d..S
3b80 28 06 00 00 00 73 2a 00 00 00 53 74 61 72 74 20 61 20 6e 65 77 20 74 68 72 65 61 64 20 74 6f 20 (....s*...Start.a.new.thread.to.
3ba0 70 72 6f 63 65 73 73 20 74 68 65 20 72 65 71 75 65 73 74 2e 69 ff ff ff ff 4e 74 06 00 00 00 74 process.the.request.i....Nt....t
3bc0 61 72 67 65 74 74 04 00 00 00 61 72 67 73 69 01 00 00 00 28 06 00 00 00 74 09 00 00 00 74 68 72 argett....argsi....(....t....thr
3be0 65 61 64 69 6e 67 74 06 00 00 00 54 68 72 65 61 64 52 4f 00 00 00 74 0e 00 00 00 64 61 65 6d 6f eadingt....ThreadRO...t....daemo
3c00 6e 5f 74 68 72 65 61 64 73 74 09 00 00 00 73 65 74 44 61 65 6d 6f 6e 74 05 00 00 00 73 74 61 72 n_threadst....setDaemont....star
3c20 74 28 05 00 00 00 52 13 00 00 00 52 1f 00 00 00 52 20 00 00 00 52 52 00 00 00 74 01 00 00 00 74 t(....R....R....R....RR...t....t
3c40 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 (....(....s..../sys/lib/python/S
3c60 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 1c 00 00 00 d6 01 00 00 73 0c 00 00 00 00 02 0c 01 ocketServer.pyR........s........
3c80 12 01 0f 01 0a 01 11 01 28 07 00 00 00 52 27 00 00 00 52 28 00 00 00 52 29 00 00 00 52 3a 00 00 ........(....R'...R(...R)...R:..
3ca0 00 52 54 00 00 00 52 4f 00 00 00 52 1c 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 .RT...RO...R....(....(....(....s
3cc0 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 ..../sys/lib/python/SocketServer
3ce0 2e 70 79 52 09 00 00 00 c2 01 00 00 73 08 00 00 00 06 01 06 04 06 02 09 0d 63 00 00 00 00 00 00 .pyR........s............c......
3d00 00 00 01 00 00 00 42 00 00 00 73 08 00 00 00 65 00 00 5a 01 00 52 53 28 00 00 00 00 28 02 00 00 ......B...s....e..Z..RS(....(...
3d20 00 52 27 00 00 00 52 28 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f .R'...R(...(....(....(....s..../
3d40 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 02 sys/lib/python/SocketServer.pyR.
3d60 00 00 00 e0 01 00 00 73 00 00 00 00 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 08 00 .......s....c............B...s..
3d80 00 00 65 00 00 5a 01 00 52 53 28 00 00 00 00 28 02 00 00 00 52 27 00 00 00 52 28 00 00 00 28 00 ..e..Z..RS(....(....R'...R(...(.
3da0 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f ...(....(....s..../sys/lib/pytho
3dc0 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 03 00 00 00 e1 01 00 00 73 00 00 00 00 63 n/SocketServer.pyR........s....c
3de0 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 08 00 00 00 65 00 00 5a 01 00 52 53 28 00 00 ............B...s....e..Z..RS(..
3e00 00 00 28 02 00 00 00 52 27 00 00 00 52 28 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 ..(....R'...R(...(....(....(....
3e20 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 s..../sys/lib/python/SocketServe
3e40 72 2e 70 79 52 04 00 00 00 e3 01 00 00 73 00 00 00 00 63 00 00 00 00 00 00 00 00 01 00 00 00 42 r.pyR........s....c............B
3e60 00 00 00 73 08 00 00 00 65 00 00 5a 01 00 52 53 28 00 00 00 00 28 02 00 00 00 52 27 00 00 00 52 ...s....e..Z..RS(....(....R'...R
3e80 28 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 (...(....(....(....s..../sys/lib
3ea0 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 05 00 00 00 e4 01 00 00 /python/SocketServer.pyR........
3ec0 73 00 00 00 00 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 11 00 00 00 65 00 00 5a 01 s....c............B...s....e..Z.
3ee0 00 65 02 00 69 03 00 5a 04 00 52 53 28 00 00 00 00 28 05 00 00 00 52 27 00 00 00 52 28 00 00 00 .e..i..Z..RS(....(....R'...R(...
3f00 52 19 00 00 00 52 0b 00 00 00 52 2a 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f R....R....R*...(....(....(....s.
3f20 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e .../sys/lib/python/SocketServer.
3f40 70 79 52 0c 00 00 00 e8 01 00 00 73 02 00 00 00 06 01 63 00 00 00 00 00 00 00 00 01 00 00 00 42 pyR........s......c............B
3f60 00 00 00 73 11 00 00 00 65 00 00 5a 01 00 65 02 00 69 03 00 5a 04 00 52 53 28 00 00 00 00 28 05 ...s....e..Z..e..i..Z..RS(....(.
3f80 00 00 00 52 27 00 00 00 52 28 00 00 00 52 19 00 00 00 52 0b 00 00 00 52 2a 00 00 00 28 00 00 00 ...R'...R(...R....R....R*...(...
3fa0 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f .(....(....s..../sys/lib/python/
3fc0 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 0d 00 00 00 eb 01 00 00 73 02 00 00 00 06 01 63 SocketServer.pyR........s......c
3fe0 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 08 00 00 00 65 00 00 5a 01 00 52 53 28 00 00 ............B...s....e..Z..RS(..
4000 00 00 28 02 00 00 00 52 27 00 00 00 52 28 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 ..(....R'...R(...(....(....(....
4020 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 s..../sys/lib/python/SocketServe
4040 72 2e 70 79 52 0e 00 00 00 ee 01 00 00 73 00 00 00 00 63 00 00 00 00 00 00 00 00 01 00 00 00 42 r.pyR........s....c............B
4060 00 00 00 73 08 00 00 00 65 00 00 5a 01 00 52 53 28 00 00 00 00 28 02 00 00 00 52 27 00 00 00 52 ...s....e..Z..RS(....(....R'...R
4080 28 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 (...(....(....(....s..../sys/lib
40a0 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 0f 00 00 00 f0 01 00 00 /python/SocketServer.pyR........
40c0 73 00 00 00 00 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 32 00 00 00 65 00 00 5a 01 s....c............B...s2...e..Z.
40e0 00 64 00 00 5a 02 00 64 01 00 84 00 00 5a 03 00 64 02 00 84 00 00 5a 04 00 64 03 00 84 00 00 5a .d..Z..d.....Z..d.....Z..d.....Z
4100 05 00 64 04 00 84 00 00 5a 06 00 52 53 28 05 00 00 00 73 a8 02 00 00 42 61 73 65 20 63 6c 61 73 ..d.....Z..RS(....s....Base.clas
4120 73 20 66 6f 72 20 72 65 71 75 65 73 74 20 68 61 6e 64 6c 65 72 20 63 6c 61 73 73 65 73 2e 0a 0a s.for.request.handler.classes...
4140 20 20 20 20 54 68 69 73 20 63 6c 61 73 73 20 69 73 20 69 6e 73 74 61 6e 74 69 61 74 65 64 20 66 ....This.class.is.instantiated.f
4160 6f 72 20 65 61 63 68 20 72 65 71 75 65 73 74 20 74 6f 20 62 65 20 68 61 6e 64 6c 65 64 2e 20 20 or.each.request.to.be.handled...
4180 54 68 65 0a 20 20 20 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 73 65 74 73 20 74 68 65 20 69 6e 73 The.....constructor.sets.the.ins
41a0 74 61 6e 63 65 20 76 61 72 69 61 62 6c 65 73 20 72 65 71 75 65 73 74 2c 20 63 6c 69 65 6e 74 5f tance.variables.request,.client_
41c0 61 64 64 72 65 73 73 0a 20 20 20 20 61 6e 64 20 73 65 72 76 65 72 2c 20 61 6e 64 20 74 68 65 6e address.....and.server,.and.then
41e0 20 63 61 6c 6c 73 20 74 68 65 20 68 61 6e 64 6c 65 28 29 20 6d 65 74 68 6f 64 2e 20 20 54 6f 20 .calls.the.handle().method...To.
4200 69 6d 70 6c 65 6d 65 6e 74 20 61 0a 20 20 20 20 73 70 65 63 69 66 69 63 20 73 65 72 76 69 63 65 implement.a.....specific.service
4220 2c 20 61 6c 6c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 64 6f 20 69 73 20 74 6f 20 64 65 72 69 76 ,.all.you.need.to.do.is.to.deriv
4240 65 20 61 20 63 6c 61 73 73 20 77 68 69 63 68 0a 20 20 20 20 64 65 66 69 6e 65 73 20 61 20 68 61 e.a.class.which.....defines.a.ha
4260 6e 64 6c 65 28 29 20 6d 65 74 68 6f 64 2e 0a 0a 20 20 20 20 54 68 65 20 68 61 6e 64 6c 65 28 29 ndle().method.......The.handle()
4280 20 6d 65 74 68 6f 64 20 63 61 6e 20 66 69 6e 64 20 74 68 65 20 72 65 71 75 65 73 74 20 61 73 20 .method.can.find.the.request.as.
42a0 73 65 6c 66 2e 72 65 71 75 65 73 74 2c 20 74 68 65 0a 20 20 20 20 63 6c 69 65 6e 74 20 61 64 64 self.request,.the.....client.add
42c0 72 65 73 73 20 61 73 20 73 65 6c 66 2e 63 6c 69 65 6e 74 5f 61 64 64 72 65 73 73 2c 20 61 6e 64 ress.as.self.client_address,.and
42e0 20 74 68 65 20 73 65 72 76 65 72 20 28 69 6e 20 63 61 73 65 20 69 74 0a 20 20 20 20 6e 65 65 64 .the.server.(in.case.it.....need
4300 73 20 61 63 63 65 73 73 20 74 6f 20 70 65 72 2d 73 65 72 76 65 72 20 69 6e 66 6f 72 6d 61 74 69 s.access.to.per-server.informati
4320 6f 6e 29 20 61 73 20 73 65 6c 66 2e 73 65 72 76 65 72 2e 20 20 53 69 6e 63 65 20 61 0a 20 20 20 on).as.self.server...Since.a....
4340 20 73 65 70 61 72 61 74 65 20 69 6e 73 74 61 6e 63 65 20 69 73 20 63 72 65 61 74 65 64 20 66 6f .separate.instance.is.created.fo
4360 72 20 65 61 63 68 20 72 65 71 75 65 73 74 2c 20 74 68 65 20 68 61 6e 64 6c 65 28 29 20 6d 65 74 r.each.request,.the.handle().met
4380 68 6f 64 0a 20 20 20 20 63 61 6e 20 64 65 66 69 6e 65 20 61 72 62 69 74 72 61 72 79 20 6f 74 68 hod.....can.define.arbitrary.oth
43a0 65 72 20 69 6e 73 74 61 6e 63 65 20 76 61 72 69 61 72 69 61 62 6c 65 73 2e 0a 0a 20 20 20 20 63 er.instance.variariables.......c
43c0 04 00 00 00 04 00 00 00 06 00 00 00 43 00 00 00 73 4e 00 00 00 7c 01 00 7c 00 00 5f 00 00 7c 02 ............C...sN...|..|.._..|.
43e0 00 7c 00 00 5f 01 00 7c 03 00 7c 00 00 5f 02 00 7a 22 00 7c 00 00 69 03 00 83 00 00 01 7c 00 00 .|.._..|..|.._..z".|..i......|..
4400 69 04 00 83 00 00 01 7c 00 00 69 05 00 83 00 00 01 57 64 00 00 64 00 00 74 07 00 5f 08 00 58 64 i......|..i......Wd..d..t.._..Xd
4420 00 00 53 28 01 00 00 00 4e 28 09 00 00 00 52 1f 00 00 00 52 20 00 00 00 74 06 00 00 00 73 65 72 ..S(....N(....R....R....t....ser
4440 76 65 72 74 05 00 00 00 73 65 74 75 70 74 06 00 00 00 68 61 6e 64 6c 65 74 06 00 00 00 66 69 6e vert....setupt....handlet....fin
4460 69 73 68 52 46 00 00 00 74 03 00 00 00 73 79 73 74 0d 00 00 00 65 78 63 5f 74 72 61 63 65 62 61 ishRF...t....syst....exc_traceba
4480 63 6b 28 04 00 00 00 52 13 00 00 00 52 1f 00 00 00 52 20 00 00 00 52 58 00 00 00 28 00 00 00 00 ck(....R....R....R....RX...(....
44a0 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 (....s..../sys/lib/python/Socket
44c0 53 65 72 76 65 72 2e 70 79 52 14 00 00 00 04 02 00 00 73 10 00 00 00 00 01 09 01 09 01 09 01 03 Server.pyR........s.............
44e0 01 0a 01 0a 01 0e 02 63 01 00 00 00 01 00 00 00 01 00 00 00 43 00 00 00 73 04 00 00 00 64 00 00 .......c............C...s....d..
4500 53 28 01 00 00 00 4e 28 00 00 00 00 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 S(....N(....(....R....(....(....
4520 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 s..../sys/lib/python/SocketServe
4540 72 2e 70 79 52 59 00 00 00 0f 02 00 00 73 02 00 00 00 00 01 63 01 00 00 00 01 00 00 00 01 00 00 r.pyRY.......s......c...........
4560 00 43 00 00 00 73 04 00 00 00 64 00 00 53 28 01 00 00 00 4e 28 00 00 00 00 28 01 00 00 00 52 13 .C...s....d..S(....N(....(....R.
4580 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f ...(....(....s..../sys/lib/pytho
45a0 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 5a 00 00 00 12 02 00 00 73 02 00 00 00 00 n/SocketServer.pyRZ.......s.....
45c0 01 63 01 00 00 00 01 00 00 00 01 00 00 00 43 00 00 00 73 04 00 00 00 64 00 00 53 28 01 00 00 00 .c............C...s....d..S(....
45e0 4e 28 00 00 00 00 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f N(....(....R....(....(....s..../
4600 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 5b sys/lib/python/SocketServer.pyR[
4620 00 00 00 15 02 00 00 73 02 00 00 00 00 01 28 07 00 00 00 52 27 00 00 00 52 28 00 00 00 52 29 00 .......s......(....R'...R(...R).
4640 00 00 52 14 00 00 00 52 59 00 00 00 52 5a 00 00 00 52 5b 00 00 00 28 00 00 00 00 28 00 00 00 00 ..R....RY...RZ...R[...(....(....
4660 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 (....s..../sys/lib/python/Socket
4680 53 65 72 76 65 72 2e 70 79 52 06 00 00 00 f2 01 00 00 73 0a 00 00 00 06 10 06 02 09 0b 09 03 09 Server.pyR........s.............
46a0 03 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 2c 00 00 00 65 00 00 5a 01 00 64 00 00 .c............B...s,...e..Z..d..
46c0 5a 02 00 64 01 00 5a 03 00 64 02 00 5a 04 00 64 03 00 84 00 00 5a 05 00 64 04 00 84 00 00 5a 06 Z..d..Z..d..Z..d.....Z..d.....Z.
46e0 00 52 53 28 05 00 00 00 73 34 00 00 00 44 65 66 69 6e 65 20 73 65 6c 66 2e 72 66 69 6c 65 20 61 .RS(....s4...Define.self.rfile.a
4700 6e 64 20 73 65 6c 66 2e 77 66 69 6c 65 20 66 6f 72 20 73 74 72 65 61 6d 20 73 6f 63 6b 65 74 73 nd.self.wfile.for.stream.sockets
4720 2e 69 ff ff ff ff 69 00 00 00 00 63 01 00 00 00 01 00 00 00 03 00 00 00 43 00 00 00 73 46 00 00 .i....i....c............C...sF..
4740 00 7c 00 00 69 00 00 7c 00 00 5f 01 00 7c 00 00 69 01 00 69 02 00 64 01 00 7c 00 00 69 03 00 83 .|..i..|.._..|..i..i..d..|..i...
4760 02 00 7c 00 00 5f 04 00 7c 00 00 69 01 00 69 02 00 64 02 00 7c 00 00 69 05 00 83 02 00 7c 00 00 ..|.._..|..i..i..d..|..i.....|..
4780 5f 06 00 64 00 00 53 28 03 00 00 00 4e 74 02 00 00 00 72 62 74 02 00 00 00 77 62 28 07 00 00 00 _..d..S(....Nt....rbt....wb(....
47a0 52 1f 00 00 00 74 0a 00 00 00 63 6f 6e 6e 65 63 74 69 6f 6e 74 08 00 00 00 6d 61 6b 65 66 69 6c R....t....connectiont....makefil
47c0 65 74 08 00 00 00 72 62 75 66 73 69 7a 65 74 05 00 00 00 72 66 69 6c 65 74 08 00 00 00 77 62 75 et....rbufsizet....rfilet....wbu
47e0 66 73 69 7a 65 74 05 00 00 00 77 66 69 6c 65 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 fsizet....wfile(....R....(....(.
4800 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 ...s..../sys/lib/python/SocketSe
4820 72 76 65 72 2e 70 79 52 59 00 00 00 2f 02 00 00 73 06 00 00 00 00 01 0c 01 1b 01 63 01 00 00 00 rver.pyRY.../...s..........c....
4840 01 00 00 00 01 00 00 00 43 00 00 00 73 3c 00 00 00 7c 00 00 69 00 00 69 01 00 70 11 00 01 7c 00 ........C...s<...|..i..i..p...|.
4860 00 69 00 00 69 02 00 83 00 00 01 6e 01 00 01 7c 00 00 69 00 00 69 03 00 83 00 00 01 7c 00 00 69 .i..i......n...|..i..i......|..i
4880 04 00 69 03 00 83 00 00 01 64 00 00 53 28 01 00 00 00 4e 28 05 00 00 00 52 65 00 00 00 74 06 00 ..i......d..S(....N(....Re...t..
48a0 00 00 63 6c 6f 73 65 64 74 05 00 00 00 66 6c 75 73 68 52 35 00 00 00 52 63 00 00 00 28 01 00 00 ..closedt....flushR5...Rc...(...
48c0 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 .R....(....(....s..../sys/lib/py
48e0 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 5b 00 00 00 34 02 00 00 73 08 00 thon/SocketServer.pyR[...4...s..
4900 00 00 00 01 0d 01 11 01 0d 01 28 07 00 00 00 52 27 00 00 00 52 28 00 00 00 52 29 00 00 00 52 62 ..........(....R'...R(...R)...Rb
4920 00 00 00 52 64 00 00 00 52 59 00 00 00 52 5b 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 ...Rd...RY...R[...(....(....(...
4940 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 .s..../sys/lib/python/SocketServ
4960 65 72 2e 70 79 52 07 00 00 00 21 02 00 00 73 0a 00 00 00 06 02 06 09 06 01 06 02 09 05 63 00 00 er.pyR....!...s..............c..
4980 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 20 00 00 00 65 00 00 5a 01 00 64 00 00 5a 02 00 64 ..........B...s....e..Z..d..Z..d
49a0 01 00 84 00 00 5a 03 00 64 02 00 84 00 00 5a 04 00 52 53 28 03 00 00 00 73 36 00 00 00 44 65 66 .....Z..d.....Z..RS(....s6...Def
49c0 69 6e 65 20 73 65 6c 66 2e 72 66 69 6c 65 20 61 6e 64 20 73 65 6c 66 2e 77 66 69 6c 65 20 66 6f ine.self.rfile.and.self.wfile.fo
49e0 72 20 64 61 74 61 67 72 61 6d 20 73 6f 63 6b 65 74 73 2e 63 01 00 00 00 02 00 00 00 07 00 00 00 r.datagram.sockets.c............
4a00 43 00 00 00 73 71 00 00 00 79 14 00 64 01 00 64 02 00 6b 00 00 6c 01 00 7d 01 00 01 57 6e 23 00 C...sq...y..d..d..k..l..}...Wn#.
4a20 04 74 02 00 6a 0a 00 6f 17 00 01 01 01 01 64 01 00 64 02 00 6b 01 00 6c 01 00 7d 01 00 01 6e 02 .t..j..o......d..d..k..l..}...n.
4a40 00 01 58 7c 00 00 69 03 00 5c 02 00 7c 00 00 5f 04 00 7c 00 00 5f 05 00 7c 01 00 7c 00 00 69 04 ..X|..i..\..|.._..|.._..|..|..i.
4a60 00 83 01 00 7c 00 00 5f 06 00 7c 01 00 83 00 00 7c 00 00 5f 07 00 64 00 00 53 28 03 00 00 00 4e ....|.._..|.....|.._..d..S(....N
4a80 69 ff ff ff ff 28 01 00 00 00 74 08 00 00 00 53 74 72 69 6e 67 49 4f 28 08 00 00 00 74 09 00 00 i....(....t....StringIO(....t...
4aa0 00 63 53 74 72 69 6e 67 49 4f 52 68 00 00 00 74 0b 00 00 00 49 6d 70 6f 72 74 45 72 72 6f 72 52 .cStringIORh...t....ImportErrorR
4ac0 1f 00 00 00 74 06 00 00 00 70 61 63 6b 65 74 52 19 00 00 00 52 63 00 00 00 52 65 00 00 00 28 02 ....t....packetR....Rc...Re...(.
4ae0 00 00 00 52 13 00 00 00 52 68 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 ...R....Rh...(....(....s..../sys
4b00 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 59 00 00 00 /lib/python/SocketServer.pyRY...
4b20 42 02 00 00 73 0e 00 00 00 00 01 03 01 14 01 0e 01 15 01 15 01 12 01 63 01 00 00 00 01 00 00 00 B...s..................c........
4b40 03 00 00 00 43 00 00 00 73 23 00 00 00 7c 00 00 69 00 00 69 01 00 7c 00 00 69 02 00 69 03 00 83 ....C...s#...|..i..i..|..i..i...
4b60 00 00 7c 00 00 69 04 00 83 02 00 01 64 00 00 53 28 01 00 00 00 4e 28 05 00 00 00 52 19 00 00 00 ..|..i......d..S(....N(....R....
4b80 74 06 00 00 00 73 65 6e 64 74 6f 52 65 00 00 00 74 08 00 00 00 67 65 74 76 61 6c 75 65 52 20 00 t....sendtoRe...t....getvalueR..
4ba0 00 00 28 01 00 00 00 52 13 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f ..(....R....(....(....s..../sys/
4bc0 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 5b 00 00 00 4b lib/python/SocketServer.pyR[...K
4be0 02 00 00 73 02 00 00 00 00 01 28 05 00 00 00 52 27 00 00 00 52 28 00 00 00 52 29 00 00 00 52 59 ...s......(....R'...R(...R)...RY
4c00 00 00 00 52 5b 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 ...R[...(....(....(....s..../sys
4c20 2f 6c 69 62 2f 70 79 74 68 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 52 08 00 00 00 /lib/python/SocketServer.pyR....
4c40 3b 02 00 00 73 06 00 00 00 06 05 06 02 09 09 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 ;...s..........(....(....(....(.
4c60 00 00 00 28 18 00 00 00 52 29 00 00 00 74 0b 00 00 00 5f 5f 76 65 72 73 69 6f 6e 5f 5f 52 19 00 ...(....R)...t....__version__R..
4c80 00 00 52 5c 00 00 00 52 43 00 00 00 74 07 00 00 00 5f 5f 61 6c 6c 5f 5f 74 07 00 00 00 68 61 73 ..R\...RC...t....__all__t....has
4ca0 61 74 74 72 74 06 00 00 00 65 78 74 65 6e 64 52 10 00 00 00 52 00 00 00 00 52 01 00 00 00 52 0a attrt....extendR....R....R....R.
4cc0 00 00 00 52 09 00 00 00 52 02 00 00 00 52 03 00 00 00 52 04 00 00 00 52 05 00 00 00 52 0c 00 00 ...R....R....R....R....R....R...
4ce0 00 52 0d 00 00 00 52 0e 00 00 00 52 0f 00 00 00 52 06 00 00 00 52 07 00 00 00 52 08 00 00 00 28 .R....R....R....R....R....R....(
4d00 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 1f 00 00 00 2f 73 79 73 2f 6c 69 62 2f 70 79 74 68 ....(....(....s..../sys/lib/pyth
4d20 6f 6e 2f 53 6f 63 6b 65 74 53 65 72 76 65 72 2e 70 79 73 08 00 00 00 3c 6d 6f 64 75 6c 65 3e 78 on/SocketServer.pys....<module>x
4d40 00 00 00 73 3a 00 00 00 06 09 06 03 0c 01 0c 01 0c 02 0c 01 09 01 06 01 0c 01 10 01 0c 01 03 01 ...s:...........................
4d60 0e 02 13 81 16 6b 16 16 13 2f 13 1e 19 01 19 02 19 01 19 02 10 02 16 03 16 03 19 02 1d 02 13 2f .....k.../...................../
4d80 16 1a ..