home *** CD-ROM | disk | FTP | other *** search
Unknown | 1996-09-27 | 11.6 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was not able to be converted.
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| file
| data
| default
| |
100%
| xdgMime
| image/x-tga
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 10 f4 20 3e 53 | 6f 63 6b 65 74 4c 69 62 |..... >S|ocketLib|
|00000010| 0d 00 14 17 f4 20 a9 20 | 4a 75 73 74 69 6e 20 46 |..... . |Justin F|
|00000020| 6c 65 74 63 68 65 72 0d | 00 1e 22 f4 20 56 65 72 |letcher.|..". Ver|
|00000030| 73 69 6f 6e 20 3a 20 31 | 2e 30 33 20 28 32 37 20 |sion : 1|.03 (27 |
|00000040| 53 65 70 20 31 39 39 36 | 29 0d 00 28 27 f4 20 54 |Sep 1996|)..('. T|
|00000050| 65 73 74 65 64 20 77 69 | 74 68 20 41 63 6f 72 6e |ested wi|th Acorn|
|00000060| 20 21 49 6e 74 65 72 6e | 65 74 20 73 75 69 74 65 | !Intern|et suite|
|00000070| 0d 00 32 40 f4 20 4d 61 | 73 73 69 76 65 6c 79 20 |..2@. Ma|ssively |
|00000080| 62 75 67 2d 66 69 78 65 | 64 20 62 79 20 44 61 76 |bug-fixe|d by Dav|
|00000090| 65 20 54 68 6f 6d 61 73 | 20 2d 20 41 20 72 65 61 |e Thomas| - A rea|
|000000a0| 6c 20 67 72 6f 6f 76 65 | 79 20 64 75 64 65 20 21 |l groove|y dude !|
|000000b0| 0d 00 3c 44 f4 20 20 20 | 48 69 73 20 63 6f 6d 6d |..<D. |His comm|
|000000c0| 65 6e 74 73 20 28 77 65 | 6c 6c 2c 20 6c 65 74 27 |ents (we|ll, let'|
|000000d0| 73 20 6a 75 73 74 20 73 | 61 79 20 74 68 61 74 20 |s just s|ay that |
|000000e0| 69 74 20 77 61 73 20 56 | 45 52 59 20 62 72 6f 6b |it was V|ERY brok|
|000000f0| 65 6e 21 29 0d 00 46 2a | 85 20 26 38 30 33 2c 22 |en!)..F*|. &803,"|
|00000100| 44 6f 20 6e 6f 74 20 72 | 75 6e 20 74 68 65 20 53 |Do not r|un the S|
|00000110| 6f 63 6b 65 74 20 4c 69 | 62 72 61 72 79 22 0d 00 |ocket Li|brary"..|
|00000120| 50 05 3a 0d 00 5a 36 f4 | 20 50 52 4f 43 69 6e 69 |P.:..Z6.| PROCini|
|00000130| 74 73 6f 63 6b 65 74 73 | 20 3a 20 49 6e 69 74 69 |tsockets| : Initi|
|00000140| 61 6c 69 73 65 20 74 68 | 65 20 73 6f 63 6b 65 74 |alise th|e socket|
|00000150| 73 20 6c 69 62 72 61 72 | 79 0d 00 64 11 dd f2 69 |s librar|y..d...i|
|00000160| 6e 69 74 73 6f 63 6b 65 | 74 73 0d 00 6e 38 c8 99 |nitsocke|ts..n8..|
|00000170| 20 22 58 4f 53 5f 53 57 | 49 4e 75 6d 62 65 72 46 | "XOS_SW|INumberF|
|00000180| 72 6f 6d 53 74 72 69 6e | 67 22 2c 2c 22 53 6f 63 |romStrin|g",,"Soc|
|00000190| 6b 65 74 5f 43 72 65 61 | 74 22 20 b8 3b 66 6c 61 |ket_Crea|t" .;fla|
|000001a0| 67 73 0d 00 78 73 e7 20 | 28 66 6c 61 67 73 20 80 |gs..xs. |(flags .|
|000001b0| 31 29 20 8c 72 65 70 6c | 79 3d a4 65 72 72 6f 72 |1) .repl|y=.error|
|000001c0| 62 6f 78 28 22 53 6f 63 | 6b 65 74 4c 69 62 22 2c |box("Soc|ketLib",|
|000001d0| 22 54 68 69 73 20 61 70 | 70 6c 69 63 61 74 69 6f |"This ap|plicatio|
|000001e0| 6e 20 72 65 71 75 69 72 | 65 73 20 61 6e 20 69 6e |n requir|es an in|
|000001f0| 74 65 72 6e 65 74 20 73 | 75 69 74 65 20 74 6f 20 |ternet s|uite to |
|00000200| 62 65 20 69 6e 73 74 61 | 6c 6c 65 64 2e 22 2c 25 |be insta|lled.",%|
|00000210| 31 30 29 3a e0 0d 00 82 | 1c f4 20 49 6e 69 74 69 |10):....|.. Initi|
|00000220| 61 6c 69 73 65 20 65 72 | 72 6f 72 20 73 74 75 66 |alise er|ror stuf|
|00000230| 66 0d 00 8c 11 73 6f 63 | 6b 65 72 72 25 3d 26 38 |f....soc|kerr%=&8|
|00000240| 30 35 0d 00 96 42 f4 20 | 48 61 6e 64 6c 65 73 20 |05...B. |Handles |
|00000250| 70 6f 69 6e 74 20 74 6f | 20 74 68 65 20 64 65 73 |point to| the des|
|00000260| 63 72 69 70 74 6f 72 20 | 62 6c 6f 63 6b 73 20 77 |criptor |blocks w|
|00000270| 68 69 63 68 20 67 69 76 | 65 20 75 73 20 64 65 74 |hich giv|e us det|
|00000280| 61 69 6c 73 0d 00 a0 17 | f4 20 61 62 6f 75 74 20 |ails....|. about |
|00000290| 74 68 65 20 73 6f 63 6b | 65 74 73 0d 00 aa 2b de |the sock|ets...+.|
|000002a0| 20 73 6f 63 6b 25 28 32 | 35 36 29 2c 73 6f 63 6b | sock%(2|56),sock|
|000002b0| 61 64 64 72 25 20 31 36 | 2c 73 6f 63 6b 74 65 6d |addr% 16|,socktem|
|000002c0| 70 25 20 32 35 36 0d 00 | b4 0e 73 6f 63 6b 25 28 |p% 256..|..sock%(|
|000002d0| 29 3d 2d 31 0d 00 be 15 | f4 20 53 6f 63 6b 65 74 |)=-1....|. Socket|
|000002e0| 20 62 6c 6f 63 6b 73 20 | 3a 0d 00 c8 1a f4 20 20 | blocks |:..... |
|000002f0| 21 30 20 20 3d 20 73 6f | 63 6b 65 74 20 68 61 6e |!0 = so|cket han|
|00000300| 64 6c 65 0d 00 d2 1d f4 | 20 20 21 34 20 20 3d 20 |dle.....| !4 = |
|00000310| 42 75 66 66 65 72 65 64 | 20 61 64 64 72 65 73 73 |Buffered| address|
|00000320| 0d 00 dc 23 f4 20 20 21 | 38 20 20 3d 20 53 69 7a |...#. !|8 = Siz|
|00000330| 65 20 6f 66 20 64 61 74 | 61 20 69 6e 20 62 75 66 |e of dat|a in buf|
|00000340| 66 65 72 0d 00 e6 14 f4 | 20 20 21 43 20 20 3d 20 |fer.....| !C = |
|00000350| 66 6c 61 67 73 20 3a 0d | 00 f0 3a f4 20 20 20 20 |flags :.|..:. |
|00000360| 20 20 20 20 20 62 30 20 | 3d 20 4c 69 73 74 65 6e | b0 |= Listen|
|00000370| 69 6e 67 20 28 30 20 3d | 20 53 70 65 61 6b 69 6e |ing (0 =| Speakin|
|00000380| 67 2c 20 31 20 3d 20 4c | 69 73 74 65 6e 69 6e 67 |g, 1 = L|istening|
|00000390| 29 0d 00 fa 1b f4 20 20 | 20 20 20 20 20 20 20 62 |)..... | b|
|000003a0| 31 20 3d 20 42 75 66 66 | 65 72 65 64 0d 01 04 14 |1 = Buff|ered....|
|000003b0| f4 20 54 6f 74 61 6c 20 | 73 69 7a 65 20 26 31 30 |. Total |size &10|
|000003c0| 0d 01 0e 11 73 6f 63 6b | 73 69 7a 65 25 3d 26 31 |....sock|size%=&1|
|000003d0| 30 0d 01 18 1f f4 20 49 | 6e 69 74 69 61 6c 69 73 |0..... I|nitialis|
|000003e0| 65 20 62 75 66 66 65 72 | 65 64 20 73 74 75 66 66 |e buffer|ed stuff|
|000003f0| 0d 01 22 3c 73 6f 63 6b | 62 75 66 6c 65 6e 25 3d |.."<sock|buflen%=|
|00000400| 31 30 32 34 2a 32 3a f4 | 20 32 6b 20 73 68 6f 75 |1024*2:.| 2k shou|
|00000410| 6c 64 20 62 65 20 65 6e | 6f 75 67 68 20 66 6f 72 |ld be en|ough for|
|00000420| 20 6d 6f 73 74 20 74 68 | 69 6e 67 73 0d 01 2c 3f | most th|ings..,?|
|00000430| 73 6f 63 6b 6c 69 6e 65 | 25 3d a4 63 6c 61 69 6d |sockline|%=.claim|
|00000440| 28 73 6f 63 6b 62 75 66 | 6c 65 6e 25 29 3a f4 20 |(sockbuf|len%):. |
|00000450| 46 6f 72 20 63 6f 70 79 | 69 6e 67 20 74 68 65 20 |For copy|ing the |
|00000460| 73 74 72 69 6e 67 20 69 | 6e 74 6f 0d 01 36 2a f4 |string i|nto..6*.|
|00000470| 20 52 65 61 64 20 74 68 | 65 20 6e 75 6d 62 65 72 | Read th|e number|
|00000480| 20 6f 66 20 68 61 6e 64 | 6c 65 73 20 61 76 61 69 | of hand|les avai|
|00000490| 6c 61 62 6c 65 0d 01 40 | 25 c8 99 20 22 53 6f 63 |lable..@|%.. "Soc|
|000004a0| 6b 65 74 5f 47 65 74 74 | 73 69 7a 65 22 20 b8 20 |ket_Gett|size" . |
|000004b0| 73 6f 63 6b 74 73 69 7a | 65 25 0d 01 4a 1a f4 20 |socktsiz|e%..J.. |
|000004c0| 49 6e 69 74 69 61 6c 69 | 73 65 20 63 6f 6e 73 74 |Initiali|se const|
|000004d0| 61 6e 74 73 0d 01 54 16 | 46 49 4f 4e 52 45 41 44 |ants..T.|FIONREAD|
|000004e0| 3d 26 34 30 30 34 36 36 | 37 46 0d 01 5e 15 46 49 |=&400466|7F..^.FI|
|000004f0| 4f 4e 42 49 4f 3d 26 38 | 30 30 34 36 36 37 45 0d |ONBIO=&8|004667E.|
|00000500| 01 68 13 53 4f 5f 53 4e | 44 42 55 46 3d 26 31 30 |.h.SO_SN|DBUF=&10|
|00000510| 30 31 0d 01 72 13 53 4f | 5f 52 43 56 42 55 46 3d |01..r.SO|_RCVBUF=|
|00000520| 26 31 30 30 32 0d 01 7c | 0d 41 46 5f 49 4e 45 54 |&1002..||.AF_INET|
|00000530| 3d 32 0d 01 86 05 e1 0d | 01 90 05 3a 0d 01 9a 40 |=2......|...:...@|
|00000540| f4 20 46 4e 73 6f 63 6b | 65 74 5f 66 69 6e 64 68 |. FNsock|et_findh|
|00000550| 61 6e 64 6c 65 20 3a 20 | 46 69 6e 64 20 61 20 73 |andle : |Find a s|
|00000560| 6f 63 6b 65 74 20 68 61 | 6e 64 6c 65 20 61 6e 64 |ocket ha|ndle and|
|00000570| 20 63 6c 61 69 6d 20 73 | 70 61 63 65 0d 01 a4 17 | claim s|pace....|
|00000580| dd a4 73 6f 63 6b 65 74 | 5f 66 69 6e 64 68 61 6e |..socket|_findhan|
|00000590| 64 6c 65 0d 01 ae 0d ea | 73 6f 63 6b 25 2c 6f 25 |dle.....|sock%,o%|
|000005a0| 0d 01 b8 35 73 6f 63 6b | 25 3d 2d 31 3a f5 3a 73 |...5sock|%=-1:.:s|
|000005b0| 6f 63 6b 25 2b 3d 31 3a | fd 20 73 6f 63 6b 25 28 |ock%+=1:|. sock%(|
|000005c0| 73 6f 63 6b 25 29 3d 2d | 31 20 84 20 73 6f 63 6b |sock%)=-|1 . sock|
|000005d0| 25 3d 32 35 36 0d 01 c2 | 14 e7 20 73 6f 63 6b 25 |%=256...|.. sock%|
|000005e0| 3d 32 35 36 20 8c 3d 2d | 31 0d 01 cc 22 73 6f 63 |=256 .=-|1..."soc|
|000005f0| 6b 25 28 73 6f 63 6b 25 | 29 3d a4 63 6c 61 69 6d |k%(sock%|)=.claim|
|00000600| 28 73 6f 63 6b 73 69 7a | 65 25 29 0d 01 d6 19 e7 |(socksiz|e%).....|
|00000610| 20 73 6f 63 6b 25 28 73 | 6f 63 6b 25 29 3c 30 20 | sock%(s|ock%)<0 |
|00000620| 8c 3d 2d 31 0d 01 e0 2c | e3 6f 25 3d 30 b8 73 6f |.=-1...,|.o%=0.so|
|00000630| 63 6b 73 69 7a 65 25 2d | 34 20 88 34 3a 73 6f 63 |cksize%-|4 .4:soc|
|00000640| 6b 25 28 73 6f 63 6b 25 | 29 21 6f 25 3d 30 3a ed |k%(sock%|)!o%=0:.|
|00000650| 0d 01 ea 0a 3d 73 6f 63 | 6b 25 0d 01 f4 05 3a 0d |....=soc|k%....:.|
|00000660| 01 fe 3a f4 20 46 4e 73 | 6f 63 6b 65 74 5f 63 72 |..:. FNs|ocket_cr|
|00000670| 65 61 74 65 69 6e 65 74 | 20 3a 20 4d 61 6b 65 20 |eateinet| : Make |
|00000680| 61 20 73 6f 63 6b 65 74 | 20 66 6f 72 20 69 6e 74 |a socket| for int|
|00000690| 65 72 6e 65 74 20 75 73 | 65 0d 02 08 17 dd a4 73 |ernet us|e......s|
|000006a0| 6f 63 6b 65 74 5f 63 72 | 65 61 74 65 69 6e 65 74 |ocket_cr|eateinet|
|000006b0| 0d 02 12 23 ea 73 6f 63 | 6b 25 3a 73 6f 63 6b 25 |...#.soc|k%:sock%|
|000006c0| 3d a4 73 6f 63 6b 65 74 | 5f 66 69 6e 64 68 61 6e |=.socket|_findhan|
|000006d0| 64 6c 65 0d 02 1c 13 e7 | 20 73 6f 63 6b 25 3d 2d |dle.....| sock%=-|
|000006e0| 31 20 8c 3d 2d 31 0d 02 | 26 30 f4 20 50 46 5f 49 |1 .=-1..|&0. PF_I|
|000006f0| 4e 45 54 2c 20 53 4f 43 | 4b 5f 53 54 52 45 41 4d |NET, SOC|K_STREAM|
|00000700| 2c 20 61 6e 64 20 64 65 | 66 61 75 6c 74 20 70 72 |, and de|fault pr|
|00000710| 6f 74 6f 63 6f 6c 0d 02 | 30 2c c8 99 20 22 53 6f |otocol..|0,.. "So|
|00000720| 63 6b 65 74 5f 43 72 65 | 61 74 22 2c 32 2c 31 2c |cket_Cre|at",2,1,|
|00000730| 30 20 b8 20 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |0 . sock|%(sock%)|
|00000740| 21 30 0d 02 3a 34 e7 20 | 73 6f 63 6b 25 28 73 6f |!0..:4. |sock%(so|
|00000750| 63 6b 25 29 21 30 3d 2d | 31 20 8c 20 f2 72 65 6c |ck%)!0=-|1 . .rel|
|00000760| 65 61 73 65 28 73 6f 63 | 6b 25 28 73 6f 63 6b 25 |ease(soc|k%(sock%|
|00000770| 29 29 3a 3d 2d 31 0d 02 | 44 0a 3d 73 6f 63 6b 25 |)):=-1..|D.=sock%|
|00000780| 0d 02 4e 05 3a 0d 02 58 | 1c dd f2 73 6f 63 6b 65 |..N.:..X|...socke|
|00000790| 74 5f 63 68 65 63 6b 28 | 73 6f 63 6b 25 2c 72 24 |t_check(|sock%,r$|
|000007a0| 29 0d 02 62 3f e7 20 73 | 6f 63 6b 25 3c 30 20 84 |)..b?. s|ock%<0 .|
|000007b0| 73 6f 63 6b 25 3e 32 35 | 36 20 8c 85 20 73 6f 63 |sock%>25|6 .. soc|
|000007c0| 6b 65 72 72 25 2c 72 24 | 2b 22 3a 20 53 6f 63 6b |kerr%,r$|+": Sock|
|000007d0| 65 74 20 6f 75 74 20 6f | 66 20 72 61 6e 67 65 22 |et out o|f range"|
|000007e0| 0d 02 6c 3f e7 20 73 6f | 63 6b 25 28 73 6f 63 6b |..l?. so|ck%(sock|
|000007f0| 25 29 3d 2d 31 20 8c 85 | 20 73 6f 63 6b 65 72 72 |%)=-1 ..| sockerr|
|00000800| 25 2c 72 24 2b 22 3a 20 | 53 6f 63 6b 65 74 20 68 |%,r$+": |Socket h|
|00000810| 61 73 20 62 65 65 6e 20 | 63 6c 6f 73 65 64 22 0d |as been |closed".|
|00000820| 02 76 05 e1 0d 02 80 05 | 3a 0d 02 8a 37 f4 20 50 |.v......|:...7. P|
|00000830| 52 4f 43 73 6f 63 6b 65 | 74 5f 6c 69 73 74 65 6e |ROCsocke|t_listen|
|00000840| 20 3a 20 4c 69 73 74 65 | 6e 20 6f 6e 20 61 20 70 | : Liste|n on a p|
|00000850| 61 72 74 69 63 75 6c 61 | 72 20 73 6f 63 6b 65 74 |articula|r socket|
|00000860| 0d 02 94 24 dd f2 73 6f | 63 6b 65 74 5f 6c 69 73 |...$..so|cket_lis|
|00000870| 74 65 6e 28 73 6f 63 6b | 25 2c 69 70 25 2c 70 6f |ten(sock|%,ip%,po|
|00000880| 72 74 25 29 0d 02 9e 0d | ea 66 6c 61 67 73 2c 72 |rt%)....|.flags,r|
|00000890| 30 0d 02 a8 21 f2 73 6f | 63 6b 65 74 5f 63 68 65 |0...!.so|cket_che|
|000008a0| 63 6b 28 73 6f 63 6b 25 | 2c 22 4c 69 73 74 65 6e |ck(sock%|,"Listen|
|000008b0| 22 29 0d 02 b2 3f 73 6f | 63 6b 61 64 64 72 25 21 |")...?so|ckaddr%!|
|000008c0| 30 3d 41 46 5f 49 4e 45 | 54 20 84 28 28 70 6f 72 |0=AF_INE|T .((por|
|000008d0| 74 25 20 81 32 35 36 29 | 3c 3c 31 36 29 20 84 28 |t% .256)|<<16) .(|
|000008e0| 28 70 6f 72 74 25 20 83 | 32 35 36 29 3c 3c 32 34 |(port% .|256)<<24|
|000008f0| 29 0d 02 bc 26 73 6f 63 | 6b 61 64 64 72 25 21 34 |)...&soc|kaddr%!4|
|00000900| 3d 69 70 25 3a f4 20 49 | 6e 20 72 65 76 65 72 73 |=ip%:. I|n revers|
|00000910| 65 20 6f 72 64 65 72 0d | 02 c6 2b 73 6f 63 6b 61 |e order.|..+socka|
|00000920| 64 64 72 25 21 38 3d 30 | 3a 73 6f 63 6b 61 64 64 |ddr%!8=0|:sockadd|
|00000930| 72 25 21 31 32 3d 30 3a | f4 20 52 65 73 65 72 76 |r%!12=0:|. Reserv|
|00000940| 65 64 0d 02 d0 3b c8 99 | 20 22 58 53 6f 63 6b 65 |ed...;..| "XSocke|
|00000950| 74 5f 42 69 6e 64 22 2c | 73 6f 63 6b 25 28 73 6f |t_Bind",|sock%(so|
|00000960| 63 6b 25 29 21 30 2c 73 | 6f 63 6b 61 64 64 72 25 |ck%)!0,s|ockaddr%|
|00000970| 2c 31 36 20 b8 72 30 3b | 66 6c 61 67 73 0d 02 da |,16 .r0;|flags...|
|00000980| 36 e7 20 28 66 6c 61 67 | 73 20 80 31 29 3d 31 20 |6. (flag|s .1)=1 |
|00000990| 8c 85 20 73 6f 63 6b 65 | 72 72 25 2c 22 42 69 6e |.. socke|rr%,"Bin|
|000009a0| 64 3a 20 22 2b a4 73 74 | 72 69 6e 67 30 28 72 30 |d: "+.st|ring0(r0|
|000009b0| 2b 34 29 0d 02 e4 23 f4 | 20 4d 61 72 6b 20 61 73 |+4)...#.| Mark as|
|000009c0| 20 61 20 6e 6f 6e 2d 62 | 6c 6f 63 6b 69 6e 67 20 | a non-b|locking |
|000009d0| 73 6f 63 6b 65 74 0d 02 | ee 45 21 73 6f 63 6b 74 |socket..|.E!sockt|
|000009e0| 65 6d 70 25 3d 2d 31 3a | c8 99 20 22 58 53 6f 63 |emp%=-1:|.. "XSoc|
|000009f0| 6b 65 74 5f 49 6f 63 74 | 6c 22 2c 73 6f 63 6b 25 |ket_Ioct|l",sock%|
|00000a00| 28 73 6f 63 6b 25 29 21 | 30 2c 46 49 4f 4e 42 49 |(sock%)!|0,FIONBI|
|00000a10| 4f 2c 73 6f 63 6b 74 65 | 6d 70 25 0d 02 f8 14 f4 |O,sockte|mp%.....|
|00000a20| 20 4d 61 6b 65 20 69 74 | 20 6c 69 73 74 65 6e 0d | Make it| listen.|
|00000a30| 03 02 3c c8 99 20 22 58 | 53 6f 63 6b 65 74 5f 4c |..<.. "X|Socket_L|
|00000a40| 69 73 74 65 6e 22 2c 73 | 6f 63 6b 25 28 73 6f 63 |isten",s|ock%(soc|
|00000a50| 6b 25 29 21 30 2c 35 20 | 3a f4 20 35 20 69 73 20 |k%)!0,5 |:. 5 is |
|00000a60| 74 68 65 20 62 61 63 6b | 6c 6f 67 0d 03 0c 2c f4 |the back|log...,.|
|00000a70| 20 4d 61 72 6b 20 61 73 | 20 6c 69 73 74 65 6e 69 | Mark as| listeni|
|00000a80| 6e 67 20 28 69 65 20 77 | 65 27 72 65 20 61 6e 73 |ng (ie w|e're ans|
|00000a90| 77 65 72 69 6e 67 29 0d | 03 16 2f 73 6f 63 6b 25 |wering).|../sock%|
|00000aa0| 28 73 6f 63 6b 25 29 21 | 26 43 3d 28 73 6f 63 6b |(sock%)!|&C=(sock|
|00000ab0| 25 28 73 6f 63 6b 25 29 | 21 26 43 20 80 20 ac 20 |%(sock%)|!&C . . |
|00000ac0| 31 29 20 84 20 31 0d 03 | 20 05 e1 0d 03 2a 05 3a |1) . 1..| ....*.:|
|00000ad0| 0d 03 34 43 f4 20 46 4e | 73 6f 63 6b 65 74 5f 66 |..4C. FN|socket_f|
|00000ae0| 69 6e 64 6c 69 73 74 65 | 6e 20 3a 20 4c 69 73 74 |indliste|n : List|
|00000af0| 65 6e 20 6f 6e 20 61 20 | 73 6f 63 6b 65 74 2c 20 |en on a |socket, |
|00000b00| 6a 75 6d 70 69 6e 67 20 | 6f 6e 20 69 66 20 65 72 |jumping |on if er|
|00000b10| 72 6f 72 0d 03 3e 2f dd | a4 73 6f 63 6b 65 74 5f |ror..>/.|.socket_|
|00000b20| 66 69 6e 64 6c 69 73 74 | 65 6e 28 73 6f 63 6b 25 |findlist|en(sock%|
|00000b30| 2c 69 70 25 2c 70 6f 72 | 74 25 2c 6c 69 6d 69 74 |,ip%,por|t%,limit|
|00000b40| 25 29 0d 03 48 0d ea 66 | 6c 61 67 73 2c 72 30 0d |%)..H..f|lags,r0.|
|00000b50| 03 52 25 f2 73 6f 63 6b | 65 74 5f 63 68 65 63 6b |.R%.sock|et_check|
|00000b60| 28 73 6f 63 6b 25 2c 22 | 46 69 6e 64 4c 69 73 74 |(sock%,"|FindList|
|00000b70| 65 6e 22 29 0d 03 5c 05 | f5 0d 03 66 40 20 73 6f |en")..\.|...f@ so|
|00000b80| 63 6b 61 64 64 72 25 21 | 30 3d 41 46 5f 49 4e 45 |ckaddr%!|0=AF_INE|
|00000b90| 54 20 84 28 28 70 6f 72 | 74 25 20 81 32 35 36 29 |T .((por|t% .256)|
|00000ba0| 3c 3c 31 36 29 20 84 28 | 28 70 6f 72 74 25 20 83 |<<16) .(|(port% .|
|00000bb0| 32 35 36 29 3c 3c 32 34 | 29 0d 03 70 27 20 73 6f |256)<<24|)..p' so|
|00000bc0| 63 6b 61 64 64 72 25 21 | 34 3d 69 70 25 3a f4 20 |ckaddr%!|4=ip%:. |
|00000bd0| 49 6e 20 72 65 76 65 72 | 73 65 20 6f 72 64 65 72 |In rever|se order|
|00000be0| 0d 03 7a 2c 20 73 6f 63 | 6b 61 64 64 72 25 21 38 |..z, soc|kaddr%!8|
|00000bf0| 3d 30 3a 73 6f 63 6b 61 | 64 64 72 25 21 31 32 3d |=0:socka|ddr%!12=|
|00000c00| 30 3a f4 20 52 65 73 65 | 72 76 65 64 0d 03 84 3c |0:. Rese|rved...<|
|00000c10| 20 c8 99 20 22 58 53 6f | 63 6b 65 74 5f 42 69 6e | .. "XSo|cket_Bin|
|00000c20| 64 22 2c 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 |d",sock%|(sock%)!|
|00000c30| 30 2c 73 6f 63 6b 61 64 | 64 72 25 2c 31 36 20 b8 |0,sockad|dr%,16 .|
|00000c40| 72 30 3b 66 6c 61 67 73 | 0d 03 8e 27 20 e7 20 28 |r0;flags|...' . (|
|00000c50| 66 6c 61 67 73 20 80 31 | 29 3d 31 20 8c 70 6f 72 |flags .1|)=1 .por|
|00000c60| 74 25 2b 3d 31 3a 6c 69 | 6d 69 74 25 2d 3d 31 0d |t%+=1:li|mit%-=1.|
|00000c70| 03 98 1d fd 20 28 66 6c | 61 67 73 20 80 31 29 3d |.... (fl|ags .1)=|
|00000c80| 30 20 84 20 6c 69 6d 69 | 74 25 3c 30 0d 03 a2 13 |0 . limi|t%<0....|
|00000c90| e7 20 6c 69 6d 69 74 25 | 3c 30 20 8c 3d 2d 31 0d |. limit%|<0 .=-1.|
|00000ca0| 03 ac 23 f4 20 4d 61 72 | 6b 20 61 73 20 61 20 6e |..#. Mar|k as a n|
|00000cb0| 6f 6e 2d 62 6c 6f 63 6b | 69 6e 67 20 73 6f 63 6b |on-block|ing sock|
|00000cc0| 65 74 0d 03 b6 45 21 73 | 6f 63 6b 74 65 6d 70 25 |et...E!s|ocktemp%|
|00000cd0| 3d 2d 31 3a c8 99 20 22 | 58 53 6f 63 6b 65 74 5f |=-1:.. "|XSocket_|
|00000ce0| 49 6f 63 74 6c 22 2c 73 | 6f 63 6b 25 28 73 6f 63 |Ioctl",s|ock%(soc|
|00000cf0| 6b 25 29 21 30 2c 46 49 | 4f 4e 42 49 4f 2c 73 6f |k%)!0,FI|ONBIO,so|
|00000d00| 63 6b 74 65 6d 70 25 0d | 03 c0 14 f4 20 4d 61 6b |cktemp%.|.... Mak|
|00000d10| 65 20 69 74 20 6c 69 73 | 74 65 6e 0d 03 ca 3c c8 |e it lis|ten...<.|
|00000d20| 99 20 22 58 53 6f 63 6b | 65 74 5f 4c 69 73 74 65 |. "XSock|et_Liste|
|00000d30| 6e 22 2c 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 |n",sock%|(sock%)!|
|00000d40| 30 2c 35 20 3a f4 20 35 | 20 69 73 20 74 68 65 20 |0,5 :. 5| is the |
|00000d50| 62 61 63 6b 6c 6f 67 0d | 03 d4 2c f4 20 4d 61 72 |backlog.|..,. Mar|
|00000d60| 6b 20 61 73 20 6c 69 73 | 74 65 6e 69 6e 67 20 28 |k as lis|tening (|
|00000d70| 69 65 20 77 65 27 72 65 | 20 61 6e 73 77 65 72 69 |ie we're| answeri|
|00000d80| 6e 67 29 0d 03 de 2f 73 | 6f 63 6b 25 28 73 6f 63 |ng).../s|ock%(soc|
|00000d90| 6b 25 29 21 26 43 3d 28 | 73 6f 63 6b 25 28 73 6f |k%)!&C=(|sock%(so|
|00000da0| 63 6b 25 29 21 26 43 20 | 80 20 ac 20 31 29 20 84 |ck%)!&C |. . 1) .|
|00000db0| 20 31 0d 03 e8 0a 3d 70 | 6f 72 74 25 0d 03 f2 05 | 1....=p|ort%....|
|00000dc0| 3a 0d 03 fc 31 f4 20 46 | 4e 73 6f 63 6b 65 74 5f |:...1. F|Nsocket_|
|00000dd0| 63 6f 6e 6e 65 63 74 20 | 3a 20 43 6f 6e 6e 65 63 |connect |: Connec|
|00000de0| 74 20 74 6f 20 61 20 72 | 65 6d 6f 74 65 20 68 6f |t to a r|emote ho|
|00000df0| 73 74 0d 04 06 25 dd a4 | 73 6f 63 6b 65 74 5f 63 |st...%..|socket_c|
|00000e00| 6f 6e 6e 65 63 74 28 73 | 6f 63 6b 25 2c 69 70 25 |onnect(s|ock%,ip%|
|00000e10| 2c 70 6f 72 74 25 29 0d | 04 10 0d ea 66 6c 61 67 |,port%).|....flag|
|00000e20| 73 2c 72 30 0d 04 1a 22 | f2 73 6f 63 6b 65 74 5f |s,r0..."|.socket_|
|00000e30| 63 68 65 63 6b 28 73 6f | 63 6b 25 2c 22 43 6f 6e |check(so|ck%,"Con|
|00000e40| 6e 65 63 74 22 29 0d 04 | 24 1d f4 20 41 46 5f 49 |nect")..|$.. AF_I|
|00000e50| 4e 45 54 20 61 6e 64 20 | 70 6f 72 74 20 6e 75 6d |NET and |port num|
|00000e60| 62 65 72 0d 04 2e 3b 73 | 6f 63 6b 61 64 64 72 25 |ber...;s|ockaddr%|
|00000e70| 21 30 3d 32 20 84 20 28 | 28 70 6f 72 74 25 20 81 |!0=2 . (|(port% .|
|00000e80| 32 35 36 29 3c 3c 31 36 | 29 20 84 20 28 28 70 6f |256)<<16|) . ((po|
|00000e90| 72 74 25 20 83 32 35 36 | 29 3c 3c 32 34 29 0d 04 |rt% .256|)<<24)..|
|00000ea0| 38 26 73 6f 63 6b 61 64 | 64 72 25 21 34 3d 69 70 |8&sockad|dr%!4=ip|
|00000eb0| 25 3a f4 20 49 6e 20 72 | 65 76 65 72 73 65 20 6f |%:. In r|everse o|
|00000ec0| 72 64 65 72 0d 04 42 2b | 73 6f 63 6b 61 64 64 72 |rder..B+|sockaddr|
|00000ed0| 25 21 38 3d 30 3a 73 6f | 63 6b 61 64 64 72 25 21 |%!8=0:so|ckaddr%!|
|00000ee0| 31 32 3d 30 3a f4 20 52 | 65 73 65 72 76 65 64 0d |12=0:. R|eserved.|
|00000ef0| 04 4c 3e c8 99 20 22 58 | 53 6f 63 6b 65 74 5f 43 |.L>.. "X|Socket_C|
|00000f00| 6f 6e 6e 65 63 74 22 2c | 73 6f 63 6b 25 28 73 6f |onnect",|sock%(so|
|00000f10| 63 6b 25 29 21 30 2c 73 | 6f 63 6b 61 64 64 72 25 |ck%)!0,s|ockaddr%|
|00000f20| 2c 31 36 20 b8 72 30 3b | 66 6c 61 67 73 0d 04 56 |,16 .r0;|flags..V|
|00000f30| 16 e7 20 28 66 6c 61 67 | 73 20 80 31 29 3d 31 20 |.. (flag|s .1)=1 |
|00000f40| 8c 3d a3 0d 04 60 23 f4 | 20 4d 61 72 6b 20 61 73 |.=...`#.| Mark as|
|00000f50| 20 61 20 6e 6f 6e 2d 62 | 6c 6f 63 6b 69 6e 67 20 | a non-b|locking |
|00000f60| 73 6f 63 6b 65 74 0d 04 | 6a 45 21 73 6f 63 6b 74 |socket..|jE!sockt|
|00000f70| 65 6d 70 25 3d 2d 31 3a | c8 99 20 22 58 53 6f 63 |emp%=-1:|.. "XSoc|
|00000f80| 6b 65 74 5f 49 6f 63 74 | 6c 22 2c 73 6f 63 6b 25 |ket_Ioct|l",sock%|
|00000f90| 28 73 6f 63 6b 25 29 21 | 30 2c 46 49 4f 4e 42 49 |(sock%)!|0,FIONBI|
|00000fa0| 4f 2c 73 6f 63 6b 74 65 | 6d 70 25 0d 04 74 35 f4 |O,sockte|mp%..t5.|
|00000fb0| 20 4d 61 72 6b 20 61 73 | 20 74 61 6c 6b 69 6e 67 | Mark as| talking|
|00000fc0| 20 28 69 65 20 77 65 27 | 72 65 20 64 6f 69 6e 67 | (ie we'|re doing|
|00000fd0| 20 74 68 65 20 63 6f 6e | 6e 65 63 74 69 6e 67 29 | the con|necting)|
|00000fe0| 0d 04 7e 2b 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |..~+sock|%(sock%)|
|00000ff0| 21 26 43 3d 28 73 6f 63 | 6b 25 28 73 6f 63 6b 25 |!&C=(soc|k%(sock%|
|00001000| 29 21 26 43 20 80 20 ac | 20 31 29 0d 04 88 06 3d |)!&C . .| 1)....=|
|00001010| b9 0d 04 92 05 3a 0d 04 | 9c 2b f4 20 46 4e 73 6f |.....:..|.+. FNso|
|00001020| 63 6b 65 74 5f 61 63 63 | 65 70 74 20 3a 20 41 63 |cket_acc|ept : Ac|
|00001030| 63 65 70 74 20 61 20 63 | 6f 6e 6e 65 63 74 69 6f |cept a c|onnectio|
|00001040| 6e 0d 04 a6 1a dd a4 73 | 6f 63 6b 65 74 5f 61 63 |n......s|ocket_ac|
|00001050| 63 65 70 74 28 6d 61 69 | 6e 25 29 0d 04 b0 21 f2 |cept(mai|n%)...!.|
|00001060| 73 6f 63 6b 65 74 5f 63 | 68 65 63 6b 28 6d 61 69 |socket_c|heck(mai|
|00001070| 6e 25 2c 22 41 63 63 65 | 70 74 22 29 0d 04 ba 2b |n%,"Acce|pt")...+|
|00001080| ea 20 73 6b 74 25 2c 73 | 6f 63 6b 25 2c 4f 3a 73 |. skt%,s|ock%,O:s|
|00001090| 6f 63 6b 25 3d a4 73 6f | 63 6b 65 74 5f 66 69 6e |ock%=.so|cket_fin|
|000010a0| 64 68 61 6e 64 6c 65 0d | 04 c4 13 e7 20 73 6f 63 |dhandle.|.... soc|
|000010b0| 6b 25 3d 2d 31 20 8c 3d | 2d 31 0d 04 ce 11 21 73 |k%=-1 .=|-1....!s|
|000010c0| 6f 63 6b 74 65 6d 70 25 | 3d 31 36 0d 04 d8 47 c8 |ocktemp%|=16...G.|
|000010d0| 99 20 22 58 53 6f 63 6b | 65 74 5f 41 63 63 65 70 |. "XSock|et_Accep|
|000010e0| 74 22 2c 73 6f 63 6b 25 | 28 6d 61 69 6e 25 29 21 |t",sock%|(main%)!|
|000010f0| 30 2c 73 6f 63 6b 61 64 | 64 72 25 2c 73 6f 63 6b |0,sockad|dr%,sock|
|00001100| 74 65 6d 70 25 20 b8 20 | 73 6b 74 25 3b 66 6c 61 |temp% . |skt%;fla|
|00001110| 67 73 0d 04 e2 39 e7 20 | 28 66 6c 61 67 73 20 80 |gs...9. |(flags .|
|00001120| 20 31 29 3d 31 20 84 20 | 73 6b 74 25 3d 2d 31 20 | 1)=1 . |skt%=-1 |
|00001130| 8c f2 72 65 6c 65 61 73 | 65 28 73 6f 63 6b 25 28 |..releas|e(sock%(|
|00001140| 73 6f 63 6b 25 29 29 3a | 3d 2d 31 0d 04 ec 17 73 |sock%)):|=-1....s|
|00001150| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 30 3d 73 6b |ock%(soc|k%)!0=sk|
|00001160| 74 25 0d 04 f6 1b f4 20 | 43 6f 70 79 20 74 68 65 |t%..... |Copy the|
|00001170| 20 73 6f 63 6b 65 74 20 | 62 6c 6f 63 6b 0d 05 00 | socket |block...|
|00001180| 39 e3 4f 3d 34 b8 20 73 | 6f 63 6b 73 69 7a 65 25 |9.O=4. s|ocksize%|
|00001190| 2d 34 20 88 20 34 3a 73 | 6f 63 6b 25 28 73 6f 63 |-4 . 4:s|ock%(soc|
|000011a0| 6b 25 29 21 4f 3d 73 6f | 63 6b 25 28 6d 61 69 6e |k%)!O=so|ck%(main|
|000011b0| 25 29 21 4f 3a ed 0d 05 | 0a 3e f4 20 49 66 20 69 |%)!O:...|.>. If i|
|000011c0| 74 20 69 73 20 61 20 62 | 75 66 66 65 72 65 64 20 |t is a b|uffered |
|000011d0| 73 6f 63 6b 65 74 20 74 | 68 65 6e 20 63 6c 61 69 |socket t|hen clai|
|000011e0| 6d 20 73 6f 6d 65 20 6d | 65 6d 6f 72 79 20 66 6f |m some m|emory fo|
|000011f0| 72 20 69 74 0d 05 14 21 | e7 20 28 28 73 6f 63 6b |r it...!|. ((sock|
|00001200| 25 28 73 6f 63 6b 25 29 | 21 26 43 29 20 80 20 32 |%(sock%)|!&C) . 2|
|00001210| 29 3d 32 20 8c 0d 05 1e | 27 20 73 6f 63 6b 25 28 |)=2 ....|' sock%(|
|00001220| 73 6f 63 6b 25 29 21 34 | 3d a4 63 6c 61 69 6d 28 |sock%)!4|=.claim(|
|00001230| 73 6f 63 6b 62 75 66 6c | 65 6e 25 29 0d 05 28 19 |sockbufl|en%)..(.|
|00001240| 20 e7 20 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 | . sock%|(sock%)!|
|00001250| 34 3c 30 20 8c 0d 05 32 | 22 20 20 f4 20 4e 6f 74 |4<0 ...2|" . Not|
|00001260| 20 65 6e 6f 75 67 68 20 | 6d 65 6d 6f 72 79 20 74 | enough |memory t|
|00001270| 6f 20 63 6c 61 69 6d 0d | 05 3c 1c 20 20 f2 72 65 |o claim.|.<. .re|
|00001280| 6c 65 61 73 65 28 73 6f | 63 6b 25 28 73 6f 63 6b |lease(so|ck%(sock|
|00001290| 25 29 29 0d 05 46 09 20 | 20 3d 2d 31 0d 05 50 06 |%))..F. | =-1..P.|
|000012a0| 20 cd 0d 05 5a 2a 20 73 | 6f 63 6b 25 28 73 6f 63 | ...Z* s|ock%(soc|
|000012b0| 6b 25 29 21 38 3d 30 3a | f4 20 4e 6f 20 62 79 74 |k%)!8=0:|. No byt|
|000012c0| 65 73 20 69 6e 20 62 75 | 66 66 65 72 0d 05 64 05 |es in bu|ffer..d.|
|000012d0| cd 0d 05 6e 0a 3d 73 6f | 63 6b 25 0d 05 78 05 3a |...n.=so|ck%..x.:|
|000012e0| 0d 05 82 1a f4 20 2a 2a | 2a 2a 2a 2a 2a 2a 20 4e |..... **|****** N|
|000012f0| 4f 54 45 20 2a 2a 2a 2a | 2a 2a 0d 05 8c 40 f4 20 |OTE ****|**...@. |
|00001300| 54 77 6f 20 63 61 6c 6c | 73 20 6e 6f 74 20 69 6e |Two call|s not in|
|00001310| 63 6c 75 64 65 64 20 69 | 6e 20 74 68 65 20 53 48 |cluded i|n the SH|
|00001320| 20 6d 61 6e 75 61 6c 20 | 6f 72 20 64 69 73 74 72 | manual |or distr|
|00001330| 69 62 75 74 65 64 20 79 | 65 74 0d 05 96 41 f4 20 |ibuted y|et...A. |
|00001340| 50 52 4f 43 73 6f 63 6b | 65 74 5f 72 65 63 76 62 |PROCsock|et_recvb|
|00001350| 75 66 66 65 72 20 3a 20 | 53 65 74 73 20 74 68 65 |uffer : |Sets the|
|00001360| 20 73 69 7a 65 20 6f 66 | 20 74 68 65 20 72 65 63 | size of| the rec|
|00001370| 65 69 76 65 20 62 75 66 | 66 65 72 0d 05 a0 29 dd |eive buf|fer...).|
|00001380| f2 73 6f 63 6b 65 74 5f | 72 65 63 76 62 75 66 66 |.socket_|recvbuff|
|00001390| 65 72 28 73 6f 63 6b 25 | 2c 21 73 6f 63 6b 74 65 |er(sock%|,!sockte|
|000013a0| 6d 70 25 29 0d 05 aa 25 | f2 73 6f 63 6b 65 74 5f |mp%)...%|.socket_|
|000013b0| 63 68 65 63 6b 28 73 6f | 63 6b 25 2c 22 52 65 63 |check(so|ck%,"Rec|
|000013c0| 76 42 75 66 66 65 72 22 | 29 0d 05 b4 45 c8 99 20 |vBuffer"|)...E.. |
|000013d0| 22 53 6f 63 6b 65 74 5f | 53 65 74 73 6f 63 6b 6f |"Socket_|Setsocko|
|000013e0| 70 74 22 2c 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |pt",sock|%(sock%)|
|000013f0| 21 30 2c 26 46 46 46 46 | 2c 53 4f 5f 52 43 56 42 |!0,&FFFF|,SO_RCVB|
|00001400| 55 46 2c 73 6f 63 6b 74 | 65 6d 70 25 2c 34 0d 05 |UF,sockt|emp%,4..|
|00001410| be 05 e1 0d 05 c8 05 3a | 0d 05 d2 3e f4 20 50 52 |.......:|...>. PR|
|00001420| 4f 43 73 6f 63 6b 65 74 | 5f 73 65 6e 64 62 75 66 |OCsocket|_sendbuf|
|00001430| 66 65 72 20 3a 20 53 65 | 74 73 20 74 68 65 20 73 |fer : Se|ts the s|
|00001440| 69 7a 65 20 6f 66 20 74 | 68 65 20 73 65 6e 64 20 |ize of t|he send |
|00001450| 62 75 66 66 65 72 0d 05 | dc 29 dd f2 73 6f 63 6b |buffer..|.)..sock|
|00001460| 65 74 5f 73 65 6e 64 62 | 75 66 66 65 72 28 73 6f |et_sendb|uffer(so|
|00001470| 63 6b 25 2c 21 73 6f 63 | 6b 74 65 6d 70 25 29 0d |ck%,!soc|ktemp%).|
|00001480| 05 e6 25 f2 73 6f 63 6b | 65 74 5f 63 68 65 63 6b |..%.sock|et_check|
|00001490| 28 73 6f 63 6b 25 2c 22 | 52 65 63 76 42 75 66 66 |(sock%,"|RecvBuff|
|000014a0| 65 72 22 29 0d 05 f0 45 | c8 99 20 22 53 6f 63 6b |er")...E|.. "Sock|
|000014b0| 65 74 5f 53 65 74 73 6f | 63 6b 6f 70 74 22 2c 73 |et_Setso|ckopt",s|
|000014c0| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 30 2c 26 46 |ock%(soc|k%)!0,&F|
|000014d0| 46 46 46 2c 53 4f 5f 53 | 4e 44 42 55 46 2c 73 6f |FFF,SO_S|NDBUF,so|
|000014e0| 63 6b 74 65 6d 70 25 2c | 34 0d 05 fa 05 e1 0d 06 |cktemp%,|4.......|
|000014f0| 04 05 3a 0d 06 0e 41 f4 | 20 50 52 4f 43 73 6f 63 |..:...A.| PROCsoc|
|00001500| 6b 65 74 5f 6d 61 6b 65 | 62 75 66 66 65 72 65 64 |ket_make|buffered|
|00001510| 20 3a 20 45 6e 73 75 72 | 65 73 20 74 68 61 74 20 | : Ensur|es that |
|00001520| 61 20 73 6f 63 6b 65 74 | 20 69 73 20 62 75 66 66 |a socket| is buff|
|00001530| 65 72 65 64 0d 06 18 20 | dd f2 73 6f 63 6b 65 74 |ered... |..socket|
|00001540| 5f 6d 61 6b 65 62 75 66 | 66 65 72 65 64 28 73 6f |_makebuf|fered(so|
|00001550| 63 6b 25 29 0d 06 22 27 | f2 73 6f 63 6b 65 74 5f |ck%).."'|.socket_|
|00001560| 63 68 65 63 6b 28 73 6f | 63 6b 25 2c 22 4d 61 6b |check(so|ck%,"Mak|
|00001570| 65 42 75 66 66 65 72 65 | 64 22 29 0d 06 2c 22 e7 |eBuffere|d")..,".|
|00001580| 20 28 28 73 6f 63 6b 25 | 28 73 6f 63 6b 25 29 21 | ((sock%|(sock%)!|
|00001590| 26 43 29 20 80 20 32 29 | 3d 32 20 8c e1 0d 06 36 |&C) . 2)|=2 ....6|
|000015a0| 26 73 6f 63 6b 25 28 73 | 6f 63 6b 25 29 21 34 3d |&sock%(s|ock%)!4=|
|000015b0| a4 63 6c 61 69 6d 28 73 | 6f 63 6b 62 75 66 6c 65 |.claim(s|ockbufle|
|000015c0| 6e 25 29 0d 06 40 50 e7 | 20 73 6f 63 6b 25 28 73 |n%)..@P.| sock%(s|
|000015d0| 6f 63 6b 25 29 21 34 3c | 30 20 8c 85 20 73 6f 63 |ock%)!4<|0 .. soc|
|000015e0| 6b 65 72 72 25 2c 22 4d | 61 6b 65 42 75 66 66 65 |kerr%,"M|akeBuffe|
|000015f0| 72 65 64 3a 20 43 6f 75 | 6c 64 20 6e 6f 74 20 63 |red: Cou|ld not c|
|00001600| 6c 61 69 6d 20 65 6e 6f | 75 67 68 20 6d 65 6d 6f |laim eno|ugh memo|
|00001610| 72 79 22 0d 06 4a 29 73 | 6f 63 6b 25 28 73 6f 63 |ry"..J)s|ock%(soc|
|00001620| 6b 25 29 21 38 3d 30 3a | f4 20 4e 6f 20 62 79 74 |k%)!8=0:|. No byt|
|00001630| 65 73 20 69 6e 20 62 75 | 66 66 65 72 0d 06 54 27 |es in bu|ffer..T'|
|00001640| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 26 43 3d |sock%(so|ck%)!&C=|
|00001650| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 26 43 20 |sock%(so|ck%)!&C |
|00001660| 84 20 32 0d 06 5e 05 e1 | 0d 06 68 05 3a 0d 06 72 |. 2..^..|..h.:..r|
|00001670| 3f f4 20 50 52 4f 43 73 | 6f 63 6b 65 74 5f 6d 61 |?. PROCs|ocket_ma|
|00001680| 6b 65 6c 69 6e 67 65 72 | 20 3a 20 53 6f 63 6b 65 |kelinger| : Socke|
|00001690| 74 20 77 69 6c 6c 20 28 | 6e 6f 74 29 20 6c 69 6e |t will (|not) lin|
|000016a0| 67 65 72 20 6f 6e 20 63 | 6c 6f 73 65 0d 06 7c 24 |ger on c|lose..|$|
|000016b0| dd f2 73 6f 63 6b 65 74 | 5f 6d 61 6b 65 6c 69 6e |..socket|_makelin|
|000016c0| 67 65 72 28 73 6f 63 6b | 25 2c 74 69 6d 65 25 29 |ger(sock|%,time%)|
|000016d0| 0d 06 86 25 f2 73 6f 63 | 6b 65 74 5f 63 68 65 63 |...%.soc|ket_chec|
|000016e0| 6b 28 73 6f 63 6b 25 2c | 22 4d 61 6b 65 4c 69 6e |k(sock%,|"MakeLin|
|000016f0| 67 65 72 22 29 0d 06 90 | 2d 73 6f 63 6b 74 65 6d |ger")...|-socktem|
|00001700| 70 25 21 30 3d 31 2b 28 | 74 69 6d 65 25 3d 30 29 |p%!0=1+(|time%=0)|
|00001710| 3a 73 6f 63 6b 74 65 6d | 70 25 21 34 3d 74 69 6d |:socktem|p%!4=tim|
|00001720| 65 25 0d 06 9a 40 c8 99 | 20 22 58 53 6f 63 6b 65 |e%...@..| "XSocke|
|00001730| 74 5f 53 65 74 73 6f 63 | 6b 6f 70 74 22 2c 73 6f |t_Setsoc|kopt",so|
|00001740| 63 6b 25 28 73 6f 63 6b | 25 29 21 30 2c 26 46 46 |ck%(sock|%)!0,&FF|
|00001750| 46 46 2c 26 38 30 2c 73 | 6f 63 6b 74 65 6d 70 25 |FF,&80,s|ocktemp%|
|00001760| 2c 38 0d 06 a4 05 e1 0d | 06 ae 05 3a 0d 06 b8 40 |,8......|...:...@|
|00001770| f4 20 50 52 4f 43 73 6f | 63 6b 65 74 5f 6d 61 6b |. PROCso|cket_mak|
|00001780| 65 72 65 75 73 61 62 6c | 65 20 3a 20 53 6f 63 6b |ereusabl|e : Sock|
|00001790| 65 74 20 63 61 6e 20 62 | 65 20 72 65 75 73 65 64 |et can b|e reused|
|000017a0| 20 77 68 65 6e 20 63 6c | 6f 73 65 64 0d 06 c2 26 | when cl|osed...&|
|000017b0| dd f2 73 6f 63 6b 65 74 | 5f 6d 61 6b 65 72 65 75 |..socket|_makereu|
|000017c0| 73 61 62 6c 65 28 73 6f | 63 6b 25 2c 66 6c 61 67 |sable(so|ck%,flag|
|000017d0| 25 29 0d 06 cc 27 f2 73 | 6f 63 6b 65 74 5f 63 68 |%)...'.s|ocket_ch|
|000017e0| 65 63 6b 28 73 6f 63 6b | 25 2c 22 4d 61 6b 65 52 |eck(sock|%,"MakeR|
|000017f0| 65 75 73 61 62 6c 65 22 | 29 0d 06 d6 1b 73 6f 63 |eusable"|)....soc|
|00001800| 6b 74 65 6d 70 25 21 30 | 3d 2d 28 66 6c 61 67 25 |ktemp%!0|=-(flag%|
|00001810| 3c 3e 30 29 0d 06 e0 3f | c8 99 20 22 58 53 6f 63 |<>0)...?|.. "XSoc|
|00001820| 6b 65 74 5f 53 65 74 73 | 6f 63 6b 6f 70 74 22 2c |ket_Sets|ockopt",|
|00001830| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 30 2c 26 |sock%(so|ck%)!0,&|
|00001840| 46 46 46 46 2c 26 34 2c | 73 6f 63 6b 74 65 6d 70 |FFFF,&4,|socktemp|
|00001850| 25 2c 34 0d 06 ea 41 c8 | 99 20 22 58 53 6f 63 6b |%,4...A.|. "XSock|
|00001860| 65 74 5f 53 65 74 73 6f | 63 6b 6f 70 74 22 2c 73 |et_Setso|ckopt",s|
|00001870| 6f 63 6b 25 28 73 6f 63 | 6b 25 29 21 30 2c 26 46 |ock%(soc|k%)!0,&F|
|00001880| 46 46 46 2c 26 32 30 30 | 2c 73 6f 63 6b 74 65 6d |FFF,&200|,socktem|
|00001890| 70 25 2c 34 0d 06 f4 05 | e1 0d 06 fe 05 3a 0d 07 |p%,4....|.....:..|
|000018a0| 08 3e f4 20 50 52 4f 43 | 63 6c 6f 73 65 73 6f 63 |.>. PROC|closesoc|
|000018b0| 6b 65 74 73 20 3a 20 4b | 69 6c 6c 20 61 6c 6c 20 |kets : K|ill all |
|000018c0| 61 63 74 69 76 65 20 73 | 6f 63 6b 65 74 73 20 61 |active s|ockets a|
|000018d0| 6e 64 20 63 6c 6f 73 65 | 64 6f 77 6e 0d 07 12 12 |nd close|down....|
|000018e0| dd f2 63 6c 6f 73 65 73 | 6f 63 6b 65 74 73 0d 07 |..closes|ockets..|
|000018f0| 1c 09 ea 20 49 2c 73 0d | 07 26 23 e3 49 3d 30 b8 |... I,s.|.&#.I=0.|
|00001900| 32 35 36 3a 73 3d 49 3a | f2 73 6f 63 6b 65 74 5f |256:s=I:|.socket_|
|00001910| 63 6c 6f 73 65 28 73 29 | 3a ed 0d 07 30 17 f2 72 |close(s)|:...0..r|
|00001920| 65 6c 65 61 73 65 28 73 | 6f 63 6b 6c 69 6e 65 25 |elease(s|ockline%|
|00001930| 29 0d 07 3a 05 e1 0d 07 | 44 05 3a 0d 07 4e 2c f4 |)..:....|D.:..N,.|
|00001940| 20 50 52 4f 43 73 6f 63 | 6b 65 74 5f 63 6c 6f 73 | PROCsoc|ket_clos|
|00001950| 65 20 3a 20 43 6c 6f 73 | 65 20 61 20 73 6f 63 6b |e : Clos|e a sock|
|00001960| 65 74 20 64 6f 77 6e 0d | 07 58 1b dd f2 73 6f 63 |et down.|.X...soc|
|00001970| 6b 65 74 5f 63 6c 6f 73 | 65 28 f8 20 73 6f 63 6b |ket_clos|e(. sock|
|00001980| 25 29 0d 07 62 1d e7 20 | 73 6f 63 6b 25 3e 3d 30 |%)..b.. |sock%>=0|
|00001990| 20 80 20 73 6f 63 6b 25 | 3c 3d 32 35 36 20 8c 0d | . sock%|<=256 ..|
|000019a0| 07 6c 19 20 e7 20 73 6f | 63 6b 25 28 73 6f 63 6b |.l. . so|ck%(sock|
|000019b0| 25 29 3c 3e 2d 31 20 8c | 0d 07 76 2c 20 20 c8 99 |%)<>-1 .|..v, ..|
|000019c0| 20 22 58 53 6f 63 6b 65 | 74 5f 53 68 75 74 64 6f | "XSocke|t_Shutdo|
|000019d0| 77 6e 22 2c 73 6f 63 6b | 25 28 73 6f 63 6b 25 29 |wn",sock|%(sock%)|
|000019e0| 21 30 2c 32 0d 07 80 27 | 20 20 c8 99 20 22 58 53 |!0,2...'| .. "XS|
|000019f0| 6f 63 6b 65 74 5f 43 6c | 6f 73 65 22 2c 73 6f 63 |ocket_Cl|ose",soc|
|00001a00| 6b 25 28 73 6f 63 6b 25 | 29 21 30 0d 07 8a 3c 20 |k%(sock%|)!0...< |
|00001a10| 20 e7 20 28 28 73 6f 63 | 6b 25 28 73 6f 63 6b 25 | . ((soc|k%(sock%|
|00001a20| 29 21 26 43 29 20 80 20 | 32 29 3d 32 20 8c f2 72 |)!&C) . |2)=2 ..r|
|00001a30| 65 6c 65 61 73 65 28 73 | 6f 63 6b 25 28 73 6f 63 |elease(s|ock%(soc|
|00001a40| 6b 25 29 21 26 34 29 0d | 07 94 1c 20 20 f2 72 65 |k%)!&4).|... .re|
|00001a50| 6c 65 61 73 65 28 73 6f | 63 6b 25 28 73 6f 63 6b |lease(so|ck%(sock|
|00001a60| 25 29 29 0d 07 9e 06 20 | cd 0d 07 a8 05 cd 0d 07 |%)).... |........|
|00001a70| b2 0c 73 6f 63 6b 25 3d | 2d 31 0d 07 bc 05 e1 0d |..sock%=|-1......|
|00001a80| 07 c6 05 3a 0d 07 d0 3d | f4 20 46 4e 73 6f 63 6b |...:...=|. FNsock|
|00001a90| 65 74 5f 69 6e 62 75 66 | 66 65 72 20 3a 20 52 65 |et_inbuf|fer : Re|
|00001aa0| 61 64 20 61 6d 6f 75 6e | 74 20 6f 66 20 64 61 74 |ad amoun|t of dat|
|00001ab0| 61 20 69 6e 20 69 6e 70 | 75 74 20 62 75 66 66 65 |a in inp|ut buffe|
|00001ac0| 72 0d 07 da 1c dd a4 73 | 6f 63 6b 65 74 5f 69 6e |r......s|ocket_in|
|00001ad0| 62 75 66 66 65 72 28 73 | 6f 63 6b 25 29 0d 07 e4 |buffer(s|ock%)...|
|00001ae0| 23 f2 73 6f 63 6b 65 74 | 5f 63 68 65 63 6b 28 73 |#.socket|_check(s|
|00001af0| 6f 63 6b 25 2c 22 49 6e | 42 75 66 66 65 72 22 29 |ock%,"In|Buffer")|
|00001b00| 0d 07 ee 38 c8 99 20 22 | 58 53 6f 63 6b 65 74 5f |...8.. "|XSocket_|
|00001b10| 49 6f 63 74 6c 22 2c 73 | 6f 63 6b 25 28 73 6f 63 |Ioctl",s|ock%(soc|
|00001b20| 6b 25 29 21 30 2c 46 49 | 4f 4e 52 45 41 44 2c 73 |k%)!0,FI|ONREAD,s|
|00001b30| 6f 63 6b 74 65 6d 70 25 | 0d 07 f8 0f 3d 21 73 6f |ocktemp%|....=!so|
|00001b40| 63 6b 74 65 6d 70 25 0d | 08 02 05 3a 0d 08 0c 3c |cktemp%.|...:...<|
|00001b50| f4 20 46 4e 73 6f 63 6b | 65 74 5f 65 6f 66 20 3a |. FNsock|et_eof :|
|00001b60| 20 52 65 74 75 72 6e 20 | 54 52 55 45 20 69 66 20 | Return |TRUE if |
|00001b70| 74 68 65 20 6f 74 68 65 | 72 20 65 6e 64 20 68 61 |the othe|r end ha|
|00001b80| 73 20 63 6c 6f 73 65 64 | 0d 08 16 17 dd a4 73 6f |s closed|......so|
|00001b90| 63 6b 65 74 5f 65 6f 66 | 28 73 6f 63 6b 25 29 0d |cket_eof|(sock%).|
|00001ba0| 08 20 1e f2 73 6f 63 6b | 65 74 5f 63 68 65 63 6b |. ..sock|et_check|
|00001bb0| 28 73 6f 63 6b 25 2c 22 | 45 6f 66 22 29 0d 08 2a |(sock%,"|Eof")..*|
|00001bc0| 34 ea 20 49 2c 66 25 2c | 66 64 25 2c 62 25 2c 6f |4. I,f%,|fd%,b%,o|
|00001bd0| 6b 3a 66 64 25 3d 73 6f | 63 6b 25 28 73 6f 63 6b |k:fd%=so|ck%(sock|
|00001be0| 25 29 21 30 3a 62 25 3d | 73 6f 63 6b 74 65 6d 70 |%)!0:b%=|socktemp|
|00001bf0| 25 0d 08 34 39 e3 20 49 | 3d 30 20 b8 20 28 28 73 |%..49. I|=0 . ((s|
|00001c00| 6f 63 6b 74 73 69 7a 65 | 25 2f 38 2b 33 29 20 80 |ocktsize|%/8+3) .|
|00001c10| 20 ac 33 29 2d 31 20 88 | 20 34 3a 73 6f 63 6b 74 | .3)-1 .| 4:sockt|
|00001c20| 65 6d 70 25 21 49 3d 30 | 3a ed 0d 08 3e 31 c8 95 |emp%!I=0|:...>1..|
|00001c30| 20 66 64 25 3e 3d 33 32 | 3a 62 25 2b 3d 34 3a 66 | fd%>=32|:b%+=4:f|
|00001c40| 64 25 2d 3d 33 32 3a ce | 3a 21 62 25 3d 21 62 25 |d%-=32:.|:!b%=!b%|
|00001c50| 20 84 20 28 31 3c 3c 66 | 64 25 29 0d 08 48 32 62 | . (1<<f|d%)..H2b|
|00001c60| 25 3d 73 6f 63 6b 74 65 | 6d 70 25 2b 49 3a 21 62 |%=sockte|mp%+I:!b|
|00001c70| 25 3d 30 3a 62 25 21 34 | 3d 30 3a f4 20 69 6d 6d |%=0:b%!4|=0:. imm|
|00001c80| 65 64 69 61 74 65 20 72 | 65 74 75 72 6e 0d 08 52 |ediate r|eturn..R|
|00001c90| 37 c8 99 20 22 53 6f 63 | 6b 65 74 5f 53 65 6c 65 |7.. "Soc|ket_Sele|
|00001ca0| 63 74 22 2c 73 6f 63 6b | 74 73 69 7a 65 25 2c 73 |ct",sock|tsize%,s|
|00001cb0| 6f 63 6b 74 65 6d 70 25 | 2c 30 2c 30 2c 62 25 20 |ocktemp%|,0,0,b% |
|00001cc0| b8 20 6f 6b 0d 08 5c 0d | e7 20 6f 6b 3c 3e 30 20 |. ok..\.|. ok<>0 |
|00001cd0| 8c 0d 08 66 1e 20 f4 20 | 4d 53 47 5f 50 45 45 4b |...f. . |MSG_PEEK|
|00001ce0| 20 2b 20 4d 53 47 5f 44 | 4f 4e 54 57 41 49 54 0d | + MSG_D|ONTWAIT.|
|00001cf0| 08 70 40 20 c8 99 20 22 | 58 53 6f 63 6b 65 74 5f |.p@ .. "|XSocket_|
|00001d00| 52 65 63 76 22 2c 73 6f | 63 6b 25 28 73 6f 63 6b |Recv",so|ck%(sock|
|00001d10| 25 29 21 30 2c 73 6f 63 | 6b 74 65 6d 70 25 2c 31 |%)!0,soc|ktemp%,1|
|00001d20| 2c 26 32 2b 26 38 30 20 | b8 20 6f 6b 3b 66 25 0d |,&2+&80 |. ok;f%.|
|00001d30| 08 7a 1a 20 6f 6b 3d 28 | 6f 6b 3d 30 29 20 84 20 |.z. ok=(|ok=0) . |
|00001d40| 28 66 25 20 80 31 29 3d | 31 0d 08 84 05 cd 0d 08 |(f% .1)=|1.......|
|00001d50| 8e 07 3d 6f 6b 0d 08 98 | 05 3a 0d 08 a2 2f f4 20 |..=ok...|.:.../. |
|00001d60| 46 4e 73 6f 63 6b 65 74 | 5f 72 65 61 64 64 61 74 |FNsocket|_readdat|
|00001d70| 61 20 3a 20 52 65 61 64 | 20 64 61 74 61 20 69 6e |a : Read| data in|
|00001d80| 74 6f 20 62 75 66 66 65 | 72 0d 08 ac 25 dd a4 73 |to buffe|r...%..s|
|00001d90| 6f 63 6b 65 74 5f 72 65 | 61 64 64 61 74 61 28 73 |ocket_re|addata(s|
|00001da0| 6f 63 6b 25 2c f8 20 73 | 74 61 72 74 25 29 0d 08 |ock%,. s|tart%)..|
|00001db0| b6 13 ea 20 72 65 61 64 | 25 3a 72 65 61 64 25 3d |... read|%:read%=|
|00001dc0| 30 0d 08 c0 23 f2 73 6f | 63 6b 65 74 5f 63 68 65 |0...#.so|cket_che|
|00001dd0| 63 6b 28 73 6f 63 6b 25 | 2c 22 52 65 61 64 44 61 |ck(sock%|,"ReadDa|
|00001de0| 74 61 22 29 0d 08 ca 44 | f4 20 52 65 61 64 20 64 |ta")...D|. Read d|
|00001df0| 61 74 61 20 66 72 6f 6d | 20 73 6f 63 6b 65 74 20 |ata from| socket |
|00001e00| 74 6f 20 6f 75 72 20 62 | 75 66 66 65 72 20 69 66 |to our b|uffer if|
|00001e10| 20 62 75 66 66 65 72 65 | 64 2c 20 65 6c 73 65 20 | buffere|d, else |
|00001e20| 74 6f 20 75 73 65 72 73 | 0d 08 d4 36 e7 20 28 28 |to users|...6. ((|
|00001e30| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 26 43 29 |sock%(so|ck%)!&C)|
|00001e40| 20 80 20 32 29 3d 32 20 | 8c 73 74 61 72 74 25 3d | . 2)=2 |.start%=|
|00001e50| 73 6f 63 6b 25 28 73 6f | 63 6b 25 29 21 34 0d 08 |sock%(so|ck%)!4..|
|00001e60| de 79 e7 20 73 74 61 72 | 74 25 3c 26 38 30 30 30 |.y. star|t%<&8000|
|00001e70| 20 8c 85 20 73 6f 63 6b | 65 72 72 25 2c 22 52 65 | .. sock|err%,"Re|
|00001e80| 61 64 44 61 74 61 3a 20 | 53 74 75 70 69 64 20 61 |adData: |Stupid a|
|00001e90| 64 64 72 65 73 73 20 66 | 6f 72 20 73 6f 63 6b 65 |ddress f|or socke|
|00001ea0| 74 5f 72 65 61 64 64 61 | 74 61 20 28 22 2b c3 7e |t_readda|ta ("+.~|
|00001eb0| 73 74 61 72 74 25 2b 22 | 29 2c 20 66 6c 61 67 73 |start%+"|), flags|
|00001ec0| 20 3d 20 22 2b c3 28 73 | 6f 63 6b 25 28 73 6f 63 | = "+.(s|ock%(soc|
|00001ed0| 6b 25 29 21 26 43 29 0d | 08 e8 21 e7 20 a4 73 6f |k%)!&C).|..!. .so|
|00001ee0| 63 6b 65 74 5f 69 6e 62 | 75 66 66 65 72 28 73 6f |cket_inb|uffer(so|
|00001ef0| 63 6b 25 29 3e 30 20 8c | 0d 08 f2 3f 20 c8 99 20 |ck%)>0 .|...? .. |
|00001f00| 22 53 6f 63 6b 65 74 5f | 52 65 61 64 22 2c 73 6f |"Socket_|Read",so|
|00001f10| 63 6b 25 28 73 6f 63 6b | 25 29 21 30 2c 73 74 61 |ck%(sock|%)!0,sta|
|00001f20| 72 74 25 2c 73 6f 63 6b | 62 75 66 6c 65 6e 25 20 |rt%,sock|buflen% |
|00001f30| b8 20 72 65 61 64 25 0d | 08 fc 05 cd 0d 09 06 0a |. read%.|........|
|00001f40| 3d 72 65 61 64 25 0d 09 | 10 05 3a 0d 09 1a 3d f4 |=read%..|..:...=.|
|00001f50| 20 46 4e 73 6f 63 6b 65 | 74 5f 72 65 61 64 6c 69 | FNsocke|t_readli|
|00001f60| 6e 65 20 3a 20 52 65 61 | 64 20 61 20 6c 69 6e 65 |ne : Rea|d a line|
|00001f70| 20 69 6e 74 6f 20 61 20 | 74 65 6d 70 6f 72 61 72 | into a |temporar|
|00001f80| 79 20 62 75 66 66 65 72 | 0d 09 24 39 f4 20 4c 69 |y buffer|..$9. Li|
|00001f90| 6e 65 20 77 69 6c 6c 20 | 62 65 20 69 6e 20 61 20 |ne will |be in a |
|00001fa0| 74 65 6d 70 6f 72 61 72 | 79 20 62 75 66 66 65 72 |temporar|y buffer|
|00001fb0| 2c 20 74 65 72 6d 69 6e | 61 74 65 64 20 62 79 20 |, termin|ated by |
|00001fc0| 30 0d 09 2e 3f f4 20 2d | 31 20 77 69 6c 6c 20 62 |0...?. -|1 will b|
|00001fd0| 65 20 72 65 74 75 72 6e | 65 64 20 69 66 20 6e 6f |e return|ed if no|
|00001fe0| 20 63 6f 6d 70 6c 65 74 | 65 20 6c 69 6e 65 20 68 | complet|e line h|
|00001ff0| 61 73 20 62 65 65 6e 20 | 72 65 63 65 69 76 65 64 |as been |received|
|00002000| 0d 09 38 25 dd a4 73 6f | 63 6b 65 74 5f 72 65 61 |..8%..so|cket_rea|
|00002010| 64 6c 69 6e 65 28 73 6f | 63 6b 25 2c f8 20 73 74 |dline(so|ck%,. st|
|00002020| 61 72 74 25 29 0d 09 42 | 1b ea 20 62 75 66 25 2c |art%)..B|.. buf%,|
|00002030| 6f 66 73 25 2c 49 25 2c | 4f 25 2c 72 65 61 64 25 |ofs%,I%,|O%,read%|
|00002040| 0d 09 4c 23 f2 73 6f 63 | 6b 65 74 5f 63 68 65 63 |..L#.soc|ket_chec|
|00002050| 6b 28 73 6f 63 6b 25 2c | 22 52 65 61 64 4c 69 6e |k(sock%,|"ReadLin|
|00002060| 65 22 29 0d 09 56 5c e7 | 20 28 73 6f 63 6b 25 28 |e")..V\.| (sock%(|
|00002070| 73 6f 63 6b 25 29 21 26 | 43 20 80 20 32 29 3d 30 |sock%)!&|C . 2)=0|
|00002080| 20 8c 85 20 73 6f 63 6b | 65 72 72 25 2c 22 52 65 | .. sock|err%,"Re|
|00002090| 61 64 4c 69 6e 65 3a 20 | 4e 6f 6e 2d 62 75 66 66 |adLine: |Non-buff|
|000020a0| 65 72 65 64 20 73 6f 63 | 6b 65 74 5f 72 65 61 64 |ered soc|ket_read|
|000020b0| 6c 69 6e 65 20 61 74 74 | 65 6d 70 74 65 64 22 0d |line att|empted".|
|000020c0| 09 60 0d 73 74 61 72 74 | 25 3d 2d 31 0d 09 6a 29 |.`.start|%=-1..j)|
|000020d0| f4 20 52 65 61 64 20 64 | 61 74 61 20 66 72 6f 6d |. Read d|ata from|
|000020e0| 20 73 6f 63 6b 65 74 20 | 74 6f 20 6f 75 72 20 62 | socket |to our b|
|000020f0| 75 66 66 65 72 0d 09 74 | 2b 62 75 66 25 3d 73 6f |uffer..t|+buf%=so|
|00002100| 63 6b 25 28 73 6f 63 6b | 25 29 21 34 3a 6f 66 73 |ck%(sock|%)!4:ofs|
|00002110| 25 3d 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 21 38 |%=sock%(|sock%)!8|
|00002120| 0d 09 7e 21 e7 20 a4 73 | 6f 63 6b 65 74 5f 69 6e |..~!. .s|ocket_in|
|00002130| 62 75 66 66 65 72 28 73 | 6f 63 6b 25 29 3e 30 20 |buffer(s|ock%)>0 |
|00002140| 8c 0d 09 88 5b 20 e7 20 | 62 75 66 25 3c 26 38 30 |....[ . |buf%<&80|
|00002150| 30 30 20 8c 85 20 73 6f | 63 6b 65 72 72 25 2c 22 |00 .. so|ckerr%,"|
|00002160| 52 65 61 64 4c 69 6e 65 | 3a 20 53 74 75 70 69 64 |ReadLine|: Stupid|
|00002170| 20 61 64 64 72 65 73 73 | 20 66 6f 72 20 73 6f 63 | address| for soc|
|00002180| 6b 65 74 5f 72 65 61 64 | 64 61 74 61 20 28 22 2b |ket_read|data ("+|
|00002190| c3 7e 73 74 61 72 74 25 | 2b 22 29 22 0d 09 92 47 |.~start%|+")"...G|
|000021a0| 20 c8 99 20 22 53 6f 63 | 6b 65 74 5f 52 65 61 64 | .. "Soc|ket_Read|
|000021b0| 22 2c 73 6f 63 6b 25 28 | 73 6f 63 6b 25 29 21 30 |",sock%(|sock%)!0|
|000021c0| 2c 62 75 66 25 2b 6f 66 | 73 25 2c 73 6f 63 6b 62 |,buf%+of|s%,sockb|
|000021d0| 75 66 6c 65 6e 25 2d 6f | 66 73 25 20 b8 20 72 65 |uflen%-o|fs% . re|
|000021e0| 61 64 25 0d 09 9c 45 20 | e7 20 72 65 61 64 25 3c |ad%...E |. read%<|
|000021f0| 31 20 8c 85 20 73 6f 63 | 6b 65 72 72 25 2c 22 52 |1 .. soc|kerr%,"R|
|00002200| 65 61 64 4c 69 6e 65 3a | 20 44 69 64 6e 27 74 20 |eadLine:| Didn't |
|00002210| 72 65 61 64 20 61 6e 79 | 74 68 69 6e 67 20 3f 20 |read any|thing ? |
|00002220| 22 2b c3 72 65 61 64 25 | 0d 09 a6 14 20 6f 66 73 |"+.read%|.... ofs|
|00002230| 25 3d 6f 66 73 25 2b 72 | 65 61 64 25 0d 09 b0 05 |%=ofs%+r|ead%....|
|00002240| cd 0d 09 ba 11 e7 20 6f | 66 73 25 3d 30 20 8c 3d |...... o|fs%=0 .=|
|00002250| 2d 31 0d 09 c4 12 e3 20 | 49 25 3d 30 b8 20 6f 66 |-1..... |I%=0. of|
|00002260| 73 25 2d 31 0d 09 ce 1c | 20 e7 20 62 75 66 25 3f |s%-1....| . buf%?|
|00002270| 49 25 3d 30 20 8c 62 75 | 66 25 3f 49 25 3d 31 33 |I%=0 .bu|f%?I%=13|
|00002280| 0d 09 d8 20 20 e7 20 62 | 75 66 25 3f 49 25 3d 31 |... . b|uf%?I%=1|
|00002290| 30 20 84 20 62 75 66 25 | 3f 49 25 3d 31 33 20 8c |0 . buf%|?I%=13 .|
|000022a0| 0d 09 e2 29 20 20 f4 20 | 43 6f 70 79 20 6c 69 6e |...) . |Copy lin|
|000022b0| 65 20 74 6f 20 62 75 66 | 66 65 72 20 61 6e 64 20 |e to buf|fer and |
|000022c0| 74 65 72 6d 69 6e 61 74 | 65 0d 09 ec 25 20 20 e3 |terminat|e...% .|
|000022d0| 4f 25 3d 30 b8 49 25 3a | 73 6f 63 6b 6c 69 6e 65 |O%=0.I%:|sockline|
|000022e0| 25 3f 4f 25 3d 62 75 66 | 25 3f 4f 25 3a ed 0d 09 |%?O%=buf|%?O%:...|
|000022f0| f6 14 20 20 73 6f 63 6b | 6c 69 6e 65 25 3f 49 25 |.. sock|line%?I%|
|00002300| 3d 30 0d 0a 00 33 20 20 | f4 20 43 6f 70 79 20 72 |=0...3 |. Copy r|
|00002310| 65 6d 61 69 6e 64 65 72 | 20 6f 66 20 62 75 66 66 |emainder| of buff|
|00002320| 65 72 20 74 6f 20 73 74 | 61 72 74 20 6f 66 20 62 |er to st|art of b|
|00002330| 75 66 66 65 72 0d 0a 0a | 30 20 20 e3 4f 25 3d 49 |uffer...|0 .O%=I|
|00002340| 25 2b 31 20 b8 20 6f 66 | 73 25 2d 31 3a 62 75 66 |%+1 . of|s%-1:buf|
|00002350| 25 3f 28 4f 25 2d 49 25 | 2d 31 29 3d 62 75 66 25 |%?(O%-I%|-1)=buf%|
|00002360| 3f 4f 25 3a ed 0d 0a 14 | 24 20 20 6f 66 73 25 2d |?O%:....|$ ofs%-|
|00002370| 3d 49 25 2b 31 3a 73 6f | 63 6b 25 28 73 6f 63 6b |=I%+1:so|ck%(sock|
|00002380| 25 29 21 38 3d 6f 66 73 | 25 0d 0a 1e 25 20 20 f4 |%)!8=ofs|%...% .|
|00002390| 20 52 65 74 75 72 6e 20 | 77 69 74 68 20 62 75 66 | Return |with buf|
|000023a0| 66 65 72 20 61 6e 64 20 | 6c 65 6e 67 74 68 0d 0a |fer and |length..|
|000023b0| 28 1c 20 20 73 74 61 72 | 74 25 3d 73 6f 63 6b 6c |(. star|t%=sockl|
|000023c0| 69 6e 65 25 3a 3d 49 25 | 2b 31 0d 0a 32 06 20 cd |ine%:=I%|+1..2. .|
|000023d0| 0d 0a 3c 05 ed 0d 0a 46 | 17 73 6f 63 6b 25 28 73 |..<....F|.sock%(s|
|000023e0| 6f 63 6b 25 29 21 38 3d | 6f 66 73 25 0d 0a 50 07 |ock%)!8=|ofs%..P.|
|000023f0| 3d 2d 31 0d 0a 5a 05 3a | 0d 0a 64 35 f4 20 50 52 |=-1..Z.:|..d5. PR|
|00002400| 4f 43 73 6f 63 6b 65 74 | 5f 73 65 6e 64 6c 69 6e |OCsocket|_sendlin|
|00002410| 65 20 3a 20 53 65 6e 64 | 20 61 20 73 74 72 69 6e |e : Send| a strin|
|00002420| 67 20 74 6f 20 61 20 73 | 6f 63 6b 65 74 0d 0a 6e |g to a s|ocket..n|
|00002430| 1f dd f2 73 6f 63 6b 65 | 74 5f 73 65 6e 64 6c 69 |...socke|t_sendli|
|00002440| 6e 65 28 73 6f 63 6b 25 | 2c 6d 24 29 0d 0a 78 0e |ne(sock%|,m$)..x.|
|00002450| ea 20 72 30 2c 66 6c 61 | 67 73 0d 0a 82 23 f2 73 |. r0,fla|gs...#.s|
|00002460| 6f 63 6b 65 74 5f 63 68 | 65 63 6b 28 73 6f 63 6b |ocket_ch|eck(sock|
|00002470| 25 2c 22 53 65 6e 64 4c | 69 6e 65 22 29 0d 0a 8c |%,"SendL|ine")...|
|00002480| 17 24 28 73 6f 63 6b 74 | 65 6d 70 25 29 3d 6d 24 |.$(sockt|emp%)=m$|
|00002490| 2b bd 31 30 0d 0a 96 41 | c8 99 20 22 58 53 6f 63 |+.10...A|.. "XSoc|
|000024a0| 6b 65 74 5f 57 72 69 74 | 65 22 2c 73 6f 63 6b 25 |ket_Writ|e",sock%|
|000024b0| 28 73 6f 63 6b 25 29 21 | 30 2c 73 6f 63 6b 74 65 |(sock%)!|0,sockte|
|000024c0| 6d 70 25 2c a9 28 6d 24 | 29 2b 31 20 b8 72 30 3b |mp%,.(m$|)+1 .r0;|
|000024d0| 66 6c 61 67 73 0d 0a a0 | 45 f4 20 49 46 20 28 66 |flags...|E. IF (f|
|000024e0| 6c 61 67 73 20 41 4e 44 | 20 31 29 3d 31 20 54 48 |lags AND| 1)=1 TH|
|000024f0| 45 4e 45 52 52 4f 52 20 | 73 6f 63 6b 65 72 72 25 |ENERROR |sockerr%|
|00002500| 2c 22 57 72 69 74 65 3a | 20 22 2b 46 4e 73 74 72 |,"Write:| "+FNstr|
|00002510| 69 6e 67 30 28 72 30 2b | 34 29 0d 0a aa 05 e1 0d |ing0(r0+|4)......|
|00002520| 0a b4 05 3a 0d 0a be 31 | f4 20 50 52 4f 43 73 6f |...:...1|. PROCso|
|00002530| 63 6b 65 74 5f 73 65 6e | 64 64 61 74 61 20 3a 20 |cket_sen|ddata : |
|00002540| 53 65 6e 64 20 64 61 74 | 61 20 74 6f 20 61 20 73 |Send dat|a to a s|
|00002550| 6f 63 6b 65 74 0d 0a c8 | 24 dd f2 73 6f 63 6b 65 |ocket...|$..socke|
|00002560| 74 5f 73 65 6e 64 64 61 | 74 61 28 73 6f 63 6b 25 |t_sendda|ta(sock%|
|00002570| 2c 62 25 2c 6c 65 6e 25 | 29 0d 0a d2 0e ea 20 72 |,b%,len%|)..... r|
|00002580| 30 2c 66 6c 61 67 73 0d | 0a dc 23 f2 73 6f 63 6b |0,flags.|..#.sock|
|00002590| 65 74 5f 63 68 65 63 6b | 28 73 6f 63 6b 25 2c 22 |et_check|(sock%,"|
|000025a0| 53 65 6e 64 44 61 74 61 | 22 29 0d 0a e6 37 c8 99 |SendData|")...7..|
|000025b0| 20 22 58 53 6f 63 6b 65 | 74 5f 57 72 69 74 65 22 | "XSocke|t_Write"|
|000025c0| 2c 73 6f 63 6b 25 28 73 | 6f 63 6b 25 29 21 30 2c |,sock%(s|ock%)!0,|
|000025d0| 62 25 2c 6c 65 6e 25 20 | b8 72 30 3b 66 6c 61 67 |b%,len% |.r0;flag|
|000025e0| 73 0d 0a f0 38 e7 20 28 | 66 6c 61 67 73 20 80 20 |s...8. (|flags . |
|000025f0| 31 29 3d 31 20 8c 85 20 | 73 6f 63 6b 65 72 72 25 |1)=1 .. |sockerr%|
|00002600| 2c 22 57 72 69 74 65 3a | 20 22 2b a4 73 74 72 69 |,"Write:| "+.stri|
|00002610| 6e 67 30 28 72 30 2b 34 | 29 0d 0a fa 05 e1 0d 0b |ng0(r0+4|).......|
|00002620| 04 05 3a 0d 0b 0e 3b f4 | 20 46 4e 73 6f 63 6b 65 |..:...;.| FNsocke|
|00002630| 74 5f 67 65 74 70 65 65 | 72 6e 61 6d 65 20 3a 20 |t_getpee|rname : |
|00002640| 52 65 61 64 20 74 68 65 | 20 6e 61 6d 65 20 6f 66 |Read the| name of|
|00002650| 20 74 68 65 20 6f 74 68 | 65 72 20 65 6e 64 0d 0b | the oth|er end..|
|00002660| 18 1f dd a4 73 6f 63 6b | 65 74 5f 67 65 74 70 65 |....sock|et_getpe|
|00002670| 65 72 6e 61 6d 65 28 73 | 6f 63 6b 25 29 0d 0b 22 |ername(s|ock%).."|
|00002680| 0b ea 20 72 30 2c 72 31 | 0d 0b 2c 26 f2 73 6f 63 |.. r0,r1|..,&.soc|
|00002690| 6b 65 74 5f 63 68 65 63 | 6b 28 73 6f 63 6b 25 2c |ket_chec|k(sock%,|
|000026a0| 22 47 65 74 50 65 65 72 | 4e 61 6d 65 22 29 0d 0b |"GetPeer|Name")..|
|000026b0| 36 11 21 73 6f 63 6b 74 | 65 6d 70 25 3d 31 36 0d |6.!sockt|emp%=16.|
|000026c0| 0b 40 3e c8 99 20 22 53 | 6f 63 6b 65 74 5f 47 65 |.@>.. "S|ocket_Ge|
|000026d0| 74 70 65 65 72 6e 61 6d | 65 22 2c 73 6f 63 6b 25 |tpeernam|e",sock%|
|000026e0| 28 73 6f 63 6b 25 29 21 | 30 2c 73 6f 63 6b 61 64 |(sock%)!|0,sockad|
|000026f0| 64 72 25 2c 73 6f 63 6b | 74 65 6d 70 25 0d 0b 4a |dr%,sock|temp%..J|
|00002700| 1f f4 20 22 58 49 6e 74 | 65 72 6e 65 74 5f 47 65 |.. "XInt|ernet_Ge|
|00002710| 74 48 6f 73 74 42 79 41 | 64 64 72 22 0d 0b 54 31 |tHostByA|ddr"..T1|
|00002720| c8 99 20 26 36 36 30 30 | 31 2c 30 2c 73 6f 63 6b |.. &6600|1,0,sock|
|00002730| 61 64 64 72 25 2b 34 2c | 34 2c 41 46 5f 49 4e 45 |addr%+4,|4,AF_INE|
|00002740| 54 20 b8 20 2c 72 31 3b | 66 6c 61 67 73 0d 0b 5e |T . ,r1;|flags..^|
|00002750| 2a e7 20 28 66 6c 61 67 | 73 20 80 31 29 3d 30 20 |*. (flag|s .1)=0 |
|00002760| 80 20 72 31 3c 3e 30 20 | 8c 3d a4 73 74 72 69 6e |. r1<>0 |.=.strin|
|00002770| 67 30 28 21 72 31 29 0d | 0b 68 4c 3d c3 28 73 6f |g0(!r1).|.hL=.(so|
|00002780| 63 6b 61 64 64 72 25 3f | 34 29 2b 22 2e 22 2b c3 |ckaddr%?|4)+"."+.|
|00002790| 28 73 6f 63 6b 61 64 64 | 72 25 3f 35 29 2b 22 2e |(sockadd|r%?5)+".|
|000027a0| 22 2b c3 28 73 6f 63 6b | 61 64 64 72 25 3f 36 29 |"+.(sock|addr%?6)|
|000027b0| 2b 22 2e 22 2b c3 28 73 | 6f 63 6b 61 64 64 72 25 |+"."+.(s|ockaddr%|
|000027c0| 3f 37 29 0d 0b 72 05 3a | 0d 0b 7c 41 f4 20 2a 2a |?7)..r.:|..|A. **|
|000027d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 20 48 |********|****** H|
|000027e0| 6f 73 74 20 61 6e 64 20 | 73 65 72 76 69 63 65 20 |ost and |service |
|000027f0| 73 70 65 63 69 66 69 63 | 20 2a 2a 2a 2a 2a 2a 2a |specific| *******|
|00002800| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 0d 0b 86 05 3a 0d 0b |********|*....:..|
|00002810| 90 3c f4 20 46 4e 69 6e | 65 74 5f 67 65 74 73 65 |.<. FNin|et_getse|
|00002820| 72 76 62 79 6e 61 6d 65 | 20 3a 20 52 65 61 64 20 |rvbyname| : Read |
|00002830| 74 68 65 20 70 6f 72 74 | 20 66 72 6f 6d 20 73 65 |the port| from se|
|00002840| 72 76 69 63 65 20 6e 61 | 6d 65 0d 0b 9a 26 dd a4 |rvice na|me...&..|
|00002850| 69 6e 65 74 5f 67 65 74 | 73 65 72 76 62 79 6e 61 |inet_get|servbyna|
|00002860| 6d 65 28 6e 61 6d 65 24 | 2c 70 72 6f 74 6f 24 29 |me(name$|,proto$)|
|00002870| 0d 0b a4 14 ea 20 73 65 | 72 76 65 6e 74 25 2c 70 |..... se|rvent%,p|
|00002880| 6f 72 74 25 0d 0b ae 1c | e7 20 bb 28 6e 61 6d 65 |ort%....|. .(name|
|00002890| 24 29 3c 3e 30 20 8c 3d | bb 28 6e 61 6d 65 24 29 |$)<>0 .=|.(name$)|
|000028a0| 0d 0b b8 3b c8 99 20 22 | 49 6e 74 65 72 6e 65 74 |...;.. "|Internet|
|000028b0| 5f 47 65 74 53 65 72 76 | 69 63 65 42 79 4e 61 6d |_GetServ|iceByNam|
|000028c0| 65 22 2c 6e 61 6d 65 24 | 2c 70 72 6f 74 6f 24 20 |e",name$|,proto$ |
|000028d0| b8 20 2c 73 65 72 76 65 | 6e 74 25 0d 0b c2 2b e7 |. ,serve|nt%...+.|
|000028e0| 20 73 65 72 76 65 6e 74 | 25 3d 30 20 8c 70 6f 72 | servent|%=0 .por|
|000028f0| 74 25 3d 30 20 8b 70 6f | 72 74 25 3d 73 65 72 76 |t%=0 .po|rt%=serv|
|00002900| 65 6e 74 25 21 38 0d 0b | cc 0a 3d 70 6f 72 74 25 |ent%!8..|..=port%|
|00002910| 0d 0b d6 05 3a 0d 0b e0 | 3c f4 20 46 4e 69 6e 65 |....:...|<. FNine|
|00002920| 74 5f 67 65 74 73 65 72 | 76 62 79 70 6f 72 74 20 |t_getser|vbyport |
|00002930| 3a 20 52 65 61 64 20 74 | 68 65 20 73 65 72 76 69 |: Read t|he servi|
|00002940| 63 65 20 6e 61 6d 65 20 | 66 72 6f 6d 20 70 6f 72 |ce name |from por|
|00002950| 74 0d 0b ea 26 dd a4 69 | 6e 65 74 5f 67 65 74 73 |t...&..i|net_gets|
|00002960| 65 72 76 62 79 70 6f 72 | 74 28 70 6f 72 74 25 2c |ervbypor|t(port%,|
|00002970| 70 72 6f 74 6f 24 29 0d | 0b f4 11 ea 20 73 65 72 |proto$).|.... ser|
|00002980| 76 65 6e 74 25 2c 73 24 | 0d 0b fe 3b c8 99 20 22 |vent%,s$|...;.. "|
|00002990| 49 6e 74 65 72 6e 65 74 | 5f 47 65 74 53 65 72 76 |Internet|_GetServ|
|000029a0| 69 63 65 42 79 50 6f 72 | 74 22 2c 70 6f 72 74 25 |iceByPor|t",port%|
|000029b0| 2c 70 72 6f 74 6f 24 20 | b8 20 2c 73 65 72 76 65 |,proto$ |. ,serve|
|000029c0| 6e 74 25 0d 0c 08 33 e7 | 20 73 65 72 76 65 6e 74 |nt%...3.| servent|
|000029d0| 25 3d 30 20 8c 73 24 3d | c3 70 6f 72 74 25 20 8b |%=0 .s$=|.port% .|
|000029e0| 73 24 3d a4 73 74 72 69 | 6e 67 30 28 21 73 65 72 |s$=.stri|ng0(!ser|
|000029f0| 76 65 6e 74 25 29 0d 0c | 12 07 3d 73 24 0d 0c 1c |vent%)..|..=s$...|
|00002a00| 05 3a 0d 0c 26 39 f4 20 | 46 4e 69 6e 65 74 5f 67 |.:..&9. |FNinet_g|
|00002a10| 65 74 68 6f 73 74 62 79 | 6e 61 6d 65 20 3a 20 52 |ethostby|name : R|
|00002a20| 65 74 75 72 6e 20 61 64 | 64 72 65 73 73 20 6f 66 |eturn ad|dress of|
|00002a30| 20 6e 61 6d 65 64 20 68 | 6f 73 74 0d 0c 30 1f dd | named h|ost..0..|
|00002a40| a4 69 6e 65 74 5f 67 65 | 74 68 6f 73 74 62 79 6e |.inet_ge|thostbyn|
|00002a50| 61 6d 65 28 68 6f 73 74 | 24 29 0d 0c 3a 0f ea 20 |ame(host|$)..:.. |
|00002a60| 70 74 72 2c 66 6c 61 67 | 73 0d 0c 44 1f f4 20 22 |ptr,flag|s..D.. "|
|00002a70| 58 49 6e 74 65 72 6e 65 | 74 5f 47 65 74 48 6f 73 |XInterne|t_GetHos|
|00002a80| 74 42 79 4e 61 6d 65 22 | 0d 0c 4e 21 c8 99 20 26 |tByName"|..N!.. &|
|00002a90| 36 36 30 30 30 2c 30 2c | 68 6f 73 74 24 20 b8 2c |66000,0,|host$ .,|
|00002aa0| 70 74 72 3b 66 6c 61 67 | 73 0d 0c 58 4d e7 20 70 |ptr;flag|s..XM. p|
|00002ab0| 74 72 3d 30 20 84 20 28 | 66 6c 61 67 73 20 80 20 |tr=0 . (|flags . |
|00002ac0| 31 29 3d 31 20 8c 3d 30 | 20 8b 3d 21 21 28 70 74 |1)=1 .=0| .=!!(pt|
|00002ad0| 72 21 31 36 29 3a f4 20 | 59 65 73 2c 20 74 68 61 |r!16):. |Yes, tha|
|00002ae0| 74 20 69 73 20 72 69 67 | 68 74 2c 20 68 6f 6e 65 |t is rig|ht, hone|
|00002af0| 73 74 20 3b 2d 29 0d 0c | 62 05 3a 0d 0c 6c 43 f4 |st ;-)..|b.:..lC.|
|00002b00| 20 46 4e 69 6e 65 74 5f | 67 65 74 68 6f 73 74 62 | FNinet_|gethostb|
|00002b10| 79 61 64 64 72 20 3a 20 | 52 65 74 75 72 6e 20 6e |yaddr : |Return n|
|00002b20| 61 6d 65 20 6f 66 20 68 | 6f 73 74 20 77 69 74 68 |ame of h|ost with|
|00002b30| 20 67 69 76 65 6e 20 61 | 64 64 72 65 73 73 0d 0c | given a|ddress..|
|00002b40| 76 1f dd a4 69 6e 65 74 | 5f 67 65 74 68 6f 73 74 |v...inet|_gethost|
|00002b50| 62 79 61 64 64 72 28 61 | 64 64 72 25 29 0d 0c 80 |byaddr(a|ddr%)...|
|00002b60| 20 ea 20 70 74 72 2c 66 | 6c 61 67 73 3a 21 73 6f | . ptr,f|lags:!so|
|00002b70| 63 6b 74 65 6d 70 25 3d | 61 64 64 72 25 0d 0c 8a |cktemp%=|addr%...|
|00002b80| 1f f4 20 22 58 49 6e 74 | 65 72 6e 65 74 5f 47 65 |.. "XInt|ernet_Ge|
|00002b90| 74 48 6f 73 74 42 79 41 | 64 64 72 22 0d 0c 94 2f |tHostByA|ddr".../|
|00002ba0| c8 99 20 26 36 36 30 30 | 31 2c 30 2c 73 6f 63 6b |.. &6600|1,0,sock|
|00002bb0| 74 65 6d 70 25 2c 34 2c | 41 46 5f 49 4e 45 54 20 |temp%,4,|AF_INET |
|00002bc0| b8 2c 70 74 72 3b 66 6c | 61 67 73 0d 0c 9e 31 e7 |.,ptr;fl|ags...1.|
|00002bd0| 20 70 74 72 3d 30 20 84 | 20 28 66 6c 61 67 73 20 | ptr=0 .| (flags |
|00002be0| 80 20 31 29 3d 31 20 8c | 3d 22 22 20 8b 3d a4 73 |. 1)=1 .|="" .=.s|
|00002bf0| 74 72 69 6e 67 30 28 21 | 70 74 72 29 0d 0c a8 05 |tring0(!|ptr)....|
|00002c00| 3a 0d 0c b2 41 f4 20 2a | 2a 2a 2a 2a 2a 2a 2a 2a |:...A. *|********|
|00002c10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 20 42 75 66 66 |********|*** Buff|
|00002c20| 65 72 20 72 6f 75 74 69 | 6e 65 73 20 2a 2a 2a 2a |er routi|nes ****|
|00002c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c40| 2a 2a 0d 0c bc 05 3a 0d | 0c c6 3a f4 20 46 4e 62 |**....:.|..:. FNb|
|00002c50| 75 66 66 65 72 5f 67 65 | 74 77 6f 72 64 20 3a 20 |uffer_ge|tword : |
|00002c60| 52 65 61 64 20 74 68 65 | 20 66 69 72 73 74 20 77 |Read the| first w|
|00002c70| 6f 72 64 20 66 72 6f 6d | 20 61 20 62 75 66 66 65 |ord from| a buffe|
|00002c80| 72 0d 0c d0 28 dd a4 62 | 75 66 66 65 72 5f 67 65 |r...(..b|uffer_ge|
|00002c90| 74 77 6f 72 64 28 73 74 | 61 72 74 25 2c 6c 65 6e |tword(st|art%,len|
|00002ca0| 25 2c f8 20 70 74 72 25 | 29 0d 0c da 0e ea 20 61 |%,. ptr%|)..... a|
|00002cb0| 24 3a 61 24 3d 22 22 0d | 0c e4 2b c8 95 20 73 74 |$:a$="".|..+.. st|
|00002cc0| 61 72 74 25 3f 70 74 72 | 25 3d 33 32 20 80 20 70 |art%?ptr|%=32 . p|
|00002cd0| 74 72 25 3c 6c 65 6e 25 | 3a 70 74 72 25 2b 3d 31 |tr%<len%|:ptr%+=1|
|00002ce0| 3a ce 0d 0c ee 14 e7 20 | 70 74 72 25 3d 6c 65 6e |:...... |ptr%=len|
|00002cf0| 25 20 8c 3d 22 22 0d 0c | f8 05 f5 0d 0d 02 1f 20 |% .=""..|....... |
|00002d00| 61 24 2b 3d bd 28 73 74 | 61 72 74 25 3f 70 74 72 |a$+=.(st|art%?ptr|
|00002d10| 25 29 3a 70 74 72 25 2b | 3d 31 0d 0d 0c 4e fd 20 |%):ptr%+|=1...N. |
|00002d20| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 33 32 20 84 |start%?p|tr%=32 .|
|00002d30| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 31 30 20 84 |start%?p|tr%=10 .|
|00002d40| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 31 33 20 84 |start%?p|tr%=13 .|
|00002d50| 73 74 61 72 74 25 3f 70 | 74 72 25 3d 30 20 84 70 |start%?p|tr%=0 .p|
|00002d60| 74 72 25 3d 6c 65 6e 25 | 0d 0d 16 2a e7 20 73 74 |tr%=len%|...*. st|
|00002d70| 61 72 74 25 3f 70 74 72 | 25 3d 33 32 20 80 20 70 |art%?ptr|%=32 . p|
|00002d80| 74 72 25 3c 3e 6c 65 6e | 25 20 8c 70 74 72 25 2b |tr%<>len|% .ptr%+|
|00002d90| 3d 31 0d 0d 20 07 3d 61 | 24 0d 0d 2a 05 3a 0d 0d |=1.. .=a|$..*.:..|
|00002da0| 34 40 f4 20 46 4e 62 75 | 66 66 65 72 5f 67 65 74 |4@. FNbu|ffer_get|
|00002db0| 72 65 73 74 20 3a 20 52 | 65 61 64 20 74 68 65 20 |rest : R|ead the |
|00002dc0| 72 65 73 74 20 6f 66 20 | 74 68 65 20 62 75 66 66 |rest of |the buff|
|00002dd0| 65 72 20 74 6f 20 61 20 | 73 74 72 69 6e 67 0d 0d |er to a |string..|
|00002de0| 3e 28 dd a4 62 75 66 66 | 65 72 5f 67 65 74 72 65 |>(..buff|er_getre|
|00002df0| 73 74 28 73 74 61 72 74 | 25 2c 6c 65 6e 25 2c f8 |st(start|%,len%,.|
|00002e00| 20 70 74 72 25 29 0d 0d | 48 08 ea 20 61 24 0d 0d | ptr%)..|H.. a$..|
|00002e10| 52 44 c8 95 20 ac 20 28 | 73 74 61 72 74 25 3f 70 |RD.. . (|start%?p|
|00002e20| 74 72 25 3d 31 30 20 84 | 73 74 61 72 74 25 3f 70 |tr%=10 .|start%?p|
|00002e30| 74 72 25 3d 31 33 20 84 | 20 73 74 61 72 74 25 3f |tr%=13 .| start%?|
|00002e40| 70 74 72 25 3d 30 20 84 | 70 74 72 25 3d 6c 65 6e |ptr%=0 .|ptr%=len|
|00002e50| 25 29 0d 0d 5c 1f 20 61 | 24 2b 3d bd 28 73 74 61 |%)..\. a|$+=.(sta|
|00002e60| 72 74 25 3f 70 74 72 25 | 29 3a 70 74 72 25 2b 3d |rt%?ptr%|):ptr%+=|
|00002e70| 31 0d 0d 66 05 ce 0d 0d | 70 07 3d 61 24 0d ff |1..f....|p.=a$.. |
+--------+-------------------------+-------------------------+--------+--------+