ofs | hex dump | ascii |
---|
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 | .. |