home *** CD-ROM | disk | FTP | other *** search
Unknown | 1997-10-21 | 1.8 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%
| gt2
| Kopftext: ';The following example shows how to make a daemon server'
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 54 68 65 20 66 6f 6c | 6c 6f 77 69 6e 67 20 65 |;The fol|lowing e|
|00000010| 78 61 6d 70 6c 65 20 73 | 68 6f 77 73 20 68 6f 77 |xample s|hows how|
|00000020| 20 74 6f 20 6d 61 6b 65 | 20 61 20 64 61 65 6d 6f | to make| a daemo|
|00000030| 6e 20 73 65 72 76 65 72 | 00 3b 74 68 61 74 20 63 |n server|.;that c|
|00000040| 61 6e 20 62 65 20 63 61 | 6c 6c 65 64 20 62 79 20 |an be ca|lled by |
|00000050| 69 6e 65 74 64 20 6f 6e | 20 73 74 61 72 74 69 6e |inetd on| startin|
|00000060| 67 20 41 6d 69 54 43 50 | 00 00 3b 46 69 6e 64 20 |g AmiTCP|..;Find |
|00000070| 6f 75 72 20 74 61 73 6b | 00 54 61 73 6b 2e 6c 3d |our task|.Task.l=|
|00000080| fe a7 28 30 29 00 00 3b | 47 65 74 20 74 68 65 20 |..(0)..;|Get the |
|00000090| 44 61 65 6d 6f 6e 20 4d | 65 73 73 61 67 65 20 70 |Daemon M|essage p|
|000000a0| 6f 69 6e 74 65 72 20 66 | 72 6f 6d 20 6f 75 72 20 |ointer f|rom our |
|000000b0| 74 61 73 6b 00 44 61 65 | 6d 6f 6e 4d 73 67 2e 6c |task.Dae|monMsg.l|
|000000c0| 3d da 02 2e 6c 28 54 61 | 73 6b 2e 6c 2b 32 30 30 |=...l(Ta|sk.l+200|
|000000d0| 29 00 00 3b 47 65 74 20 | 73 6f 6d 65 20 69 6d 70 |)..;Get |some imp|
|000000e0| 6f 72 74 61 6e 74 20 69 | 6e 66 6f 20 6f 6e 20 74 |ortant i|nfo on t|
|000000f0| 68 65 20 53 6f 63 6b 65 | 74 20 74 68 61 74 20 69 |he Socke|t that i|
|00000100| 6e 65 74 64 00 3b 70 72 | 65 70 61 72 65 64 20 66 |netd.;pr|epared f|
|00000110| 6f 72 20 75 73 20 73 6f | 20 74 68 61 74 20 77 65 |or us so| that we|
|00000120| 20 63 61 6e 20 6f 62 74 | 61 69 6e 20 74 68 65 20 | can obt|ain the |
|00000130| 73 6f 63 6b 65 74 00 00 | 44 61 65 6d 49 44 2e 6c |socket..|DaemID.l|
|00000140| 3d da 02 2e 6c 28 44 61 | 65 6d 6f 6e 4d 73 67 2e |=...l(Da|emonMsg.|
|00000150| 6c 2b 32 38 29 20 20 20 | 20 20 20 20 20 20 3b 47 |l+28) | ;G|
|00000160| 65 74 20 49 44 20 6f 66 | 20 53 6f 63 6b 65 74 00 |et ID of| Socket.|
|00000170| 44 61 65 6d 46 61 6d 69 | 6c 79 2e 6c 3d da 02 2e |DaemFami|ly.l=...|
|00000180| 62 28 44 61 65 6d 6f 6e | 4d 73 67 2e 6c 2b 33 36 |b(Daemon|Msg.l+36|
|00000190| 29 20 20 20 20 20 3b 47 | 65 74 20 46 61 6d 69 6c |) ;G|et Famil|
|000001a0| 79 00 44 61 65 6d 54 79 | 70 65 2e 6c 3d da 02 2e |y.DaemTy|pe.l=...|
|000001b0| 62 28 44 61 65 6d 6f 6e | 4d 73 67 2e 6c 2b 33 37 |b(Daemon|Msg.l+37|
|000001c0| 29 20 20 20 20 20 20 20 | 3b 47 65 74 20 54 79 70 |) |;Get Typ|
|000001d0| 65 00 00 3b 4f 62 74 61 | 69 6e 20 74 68 65 20 73 |e..;Obta|in the s|
|000001e0| 6f 63 6b 65 74 20 66 72 | 6f 6d 20 69 6e 65 74 64 |ocket fr|om inetd|
|000001f0| 20 75 73 69 6e 67 20 74 | 68 65 20 61 62 6f 76 65 | using t|he above|
|00000200| 20 69 6e 66 6f 00 73 6f | 63 6b 2e 6c 3d ec 94 28 | info.so|ck.l=..(|
|00000210| 44 61 65 6d 49 44 2e 6c | 2c 44 61 65 6d 46 61 6d |DaemID.l|,DaemFam|
|00000220| 69 6c 79 2e 6c 2c 44 61 | 65 6d 54 79 70 65 2e 6c |ily.l,Da|emType.l|
|00000230| 2c 30 29 00 00 3b 41 6c | 6c 6f 63 61 74 65 20 62 |,0)..;Al|locate b|
|00000240| 75 66 66 65 72 00 6d 65 | 6d 2e 6c 3d fe 97 28 24 |uffer.me|m.l=..($|
|00000250| 32 30 30 30 2c 31 29 00 | 00 3b 45 6e 64 6c 65 73 |2000,1).|.;Endles|
|00000260| 73 20 6c 6f 6f 70 00 80 | bb 00 00 3b 4e 6f 77 20 |s loop..|...;Now |
|00000270| 6c 65 74 20 75 73 20 77 | 61 69 74 20 74 69 6c 6c |let us w|ait till|
|00000280| 20 73 6f 6d 65 20 64 61 | 74 61 20 63 6f 6d 65 73 | some da|ta comes|
|00000290| 20 6f 6e 20 6f 75 72 20 | 73 6f 63 6b 65 74 00 80 | on our |socket..|
|000002a0| 06 20 72 65 61 64 65 72 | 00 00 3b 49 66 20 75 73 |. reader|..;If us|
|000002b0| 65 72 20 65 6e 74 65 72 | 73 20 27 45 78 69 74 27 |er enter|s 'Exit'|
|000002c0| 20 74 68 65 6e 20 65 6e | 64 00 80 0b 20 63 24 3d | then en|d... c$=|
|000002d0| 22 45 78 69 74 22 20 80 | 21 20 80 05 20 66 69 6e |"Exit" .|! .. fin|
|000002e0| 69 73 68 00 00 3b 4c 65 | 74 20 75 73 20 69 6e 66 |ish..;Le|t us inf|
|000002f0| 6f 72 6d 20 75 73 65 72 | 20 74 68 61 74 20 77 65 |orm user| that we|
|00000300| 20 72 65 63 65 69 76 65 | 64 20 68 69 73 20 77 6f | receive|d his wo|
|00000310| 72 64 00 64 24 3d 22 59 | 6f 75 20 74 79 70 65 64 |rd.d$="Y|ou typed|
|00000320| 3a 20 22 2b 63 24 00 80 | 06 20 77 72 69 74 65 72 |: "+c$..|. writer|
|00000330| 00 00 80 c7 20 20 20 20 | 20 3b 48 65 72 65 20 65 |.... | ;Here e|
|00000340| 6e 64 20 74 68 65 20 65 | 6e 64 6c 65 73 73 20 6c |nd the e|ndless l|
|00000350| 6f 6f 70 00 00 3b 46 72 | 65 65 20 6d 65 6d 6f 72 |oop..;Fr|ee memor|
|00000360| 79 20 61 6c 6c 6f 63 61 | 74 65 64 20 61 6e 64 20 |y alloca|ted and |
|00000370| 65 78 69 74 00 2e 66 69 | 6e 69 73 68 00 64 3d fe |exit..fi|nish.d=.|
|00000380| 99 28 6d 65 6d 2e 6c 2c | 24 32 30 30 30 29 00 80 |.(mem.l,|$2000)..|
|00000390| 02 00 00 3b 54 68 69 73 | 20 72 6f 75 74 69 6e 65 |...;This| routine|
|000003a0| 20 72 65 61 64 73 20 64 | 61 74 61 20 66 72 6f 6d | reads d|ata from|
|000003b0| 20 73 6f 63 6b 65 74 00 | 2e 72 65 61 64 65 72 00 | socket.|.reader.|
|000003c0| 73 6f 63 6b 72 65 61 64 | 2e 6c 3d 30 20 20 20 20 |sockread|.l=0 |
|000003d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000003e0| 20 20 20 20 20 20 3b 43 | 6c 65 61 72 20 52 65 61 | ;C|lear Rea|
|000003f0| 64 6d 61 73 6b 00 73 6f | 63 6b 72 65 61 64 2e 6c |dmask.so|ckread.l|
|00000400| 20 80 ce 20 73 6f 63 6b | 2e 6c 20 20 20 20 20 20 | .. sock|.l |
|00000410| 20 20 20 20 20 20 20 20 | 3b 53 65 74 20 52 65 61 | |;Set Rea|
|00000420| 64 6d 61 73 6b 20 6f 6e | 20 6f 75 72 20 73 6f 63 |dmask on| our soc|
|00000430| 6b 65 74 00 67 3d ec 91 | 28 32 2c 26 73 6f 63 6b |ket.g=..|(2,&sock|
|00000440| 72 65 61 64 2e 6c 2c 30 | 2c 30 2c 30 2c 30 29 20 |read.l,0|,0,0,0) |
|00000450| 20 3b 57 61 69 74 20 75 | 6e 74 69 6c 20 74 68 65 | ;Wait u|ntil the|
|00000460| 72 65 20 69 73 20 73 6f | 6d 65 20 64 61 74 61 20 |re is so|me data |
|00000470| 74 6f 20 72 65 61 64 00 | 61 72 2e 6c 3d 24 34 30 |to read.|ar.l=$40|
|00000480| 30 34 36 36 37 66 20 20 | 20 20 20 20 20 20 20 20 |04667f | |
|00000490| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 46 | | ;F|
|000004a0| 49 4f 4e 52 45 41 44 00 | 65 3d ec 8f 28 73 6f 63 |IONREAD.|e=..(soc|
|000004b0| 6b 2e 6c 2c 61 72 2e 6c | 2c 6d 65 6d 2e 6c 29 20 |k.l,ar.l|,mem.l) |
|000004c0| 20 20 20 20 3b 48 6f 77 | 20 6d 75 63 68 20 64 61 | ;How| much da|
|000004d0| 74 61 20 69 73 20 74 68 | 65 72 65 3f 00 66 3d da |ta is th|ere?.f=.|
|000004e0| 02 2e 6c 28 6d 65 6d 2e | 6c 29 20 20 20 20 20 20 |..l(mem.|l) |
|000004f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000500| 20 3b 70 6c 61 63 65 20 | 76 61 6c 75 65 20 69 6e | ;place |value in|
|00000510| 20 66 00 63 3d ec 89 28 | 73 6f 63 6b 2e 6c 2c 6d | f.c=..(|sock.l,m|
|00000520| 65 6d 2e 6c 2c 66 2c 30 | 29 20 20 20 20 20 20 20 |em.l,f,0|) |
|00000530| 20 20 20 20 20 20 3b 52 | 65 61 64 20 66 20 62 79 | ;R|ead f by|
|00000540| 74 65 73 00 00 3b 54 68 | 69 73 20 72 6f 75 74 69 |tes..;Th|is routi|
|00000550| 6e 65 20 65 78 74 72 61 | 63 74 73 20 64 61 74 61 |ne extra|cts data|
|00000560| 20 66 72 6f 6d 20 62 75 | 66 66 65 72 20 61 6e 64 | from bu|ffer and|
|00000570| 20 70 6c 61 63 65 73 20 | 69 74 20 69 6e 20 63 24 | places |it in c$|
|00000580| 00 62 75 66 2e 6c 3d 6d | 65 6d 2e 6c 00 78 3d da |.buf.l=m|em.l.x=.|
|00000590| 02 2e 62 28 62 75 66 2e | 6c 29 3a 63 24 3d 22 22 |..b(buf.|l):c$=""|
|000005a0| 00 80 0c 20 66 3e 30 00 | 63 24 3d 63 24 2b dc 86 |... f>0.|c$=c$+..|
|000005b0| 28 78 29 00 62 75 66 2e | 6c 3d 62 75 66 2e 6c 2b |(x).buf.|l=buf.l+|
|000005c0| 31 00 78 3d da 02 2e 62 | 28 62 75 66 2e 6c 29 00 |1.x=...b|(buf.l).|
|000005d0| 66 3d 66 2d 31 00 80 c1 | 00 80 07 00 00 3b 54 68 |f=f-1...|.....;Th|
|000005e0| 69 73 20 72 6f 75 74 69 | 6e 65 20 77 72 69 74 65 |is routi|ne write|
|000005f0| 73 20 64 61 74 61 20 74 | 6f 20 73 6f 63 6b 65 74 |s data t|o socket|
|00000600| 00 2e 77 72 69 74 65 72 | 00 73 6f 63 6b 77 72 69 |..writer|.sockwri|
|00000610| 74 65 2e 6c 3d 30 20 20 | 20 20 20 20 20 20 20 20 |te.l=0 | |
|00000620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 3b | | ;|
|00000630| 43 6c 65 61 72 20 57 72 | 69 74 65 6d 61 73 6b 00 |Clear Wr|itemask.|
|00000640| 73 6f 63 6b 77 72 69 74 | 65 2e 6c 20 80 ce 20 73 |sockwrit|e.l .. s|
|00000650| 6f 63 6b 2e 6c 20 20 20 | 20 20 20 20 20 20 20 20 |ock.l | |
|00000660| 20 20 3b 53 65 74 20 57 | 72 69 74 65 6d 61 73 6b | ;Set W|ritemask|
|00000670| 20 6f 6e 20 6f 75 72 20 | 73 6f 63 6b 65 74 00 67 | on our |socket.g|
|00000680| 3d ec 91 28 32 2c 30 2c | 26 73 6f 63 6b 77 72 69 |=..(2,0,|&sockwri|
|00000690| 74 65 2e 6c 2c 30 2c 30 | 2c 30 29 20 3b 57 61 69 |te.l,0,0|,0) ;Wai|
|000006a0| 74 20 75 6e 74 69 6c 20 | 73 65 72 76 65 72 20 69 |t until |server i|
|000006b0| 73 20 72 65 61 64 79 20 | 74 6f 20 72 65 61 64 20 |s ready |to read |
|000006c0| 6f 75 72 20 64 61 74 61 | 00 64 24 3d 64 24 2b dc |our data|.d$=d$+.|
|000006d0| 86 28 24 61 29 3a 6c 3d | dc 8f 28 64 24 29 20 20 |.($a):l=|..(d$) |
|000006e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3b 41 64 64 | | ;Add|
|000006f0| 20 61 20 4c 69 6e 65 20 | 46 65 65 64 20 74 6f 20 | a Line |Feed to |
|00000700| 6f 75 72 20 73 74 72 69 | 6e 67 00 63 3d ec 87 28 |our stri|ng.c=..(|
|00000710| 73 6f 63 6b 2e 6c 2c 64 | 24 2c 6c 2c 30 29 20 20 |sock.l,d|$,l,0) |
|00000720| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3b 53 | | ;S|
|00000730| 65 6e 64 20 64 61 74 61 | 20 74 6f 20 75 73 65 72 |end data| to user|
|00000740| 00 80 07 00 00 | |..... | |
+--------+-------------------------+-------------------------+--------+--------+