home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / j / jfs_std / !JFShared / Help / SocketLib < prev    next >
Unknown  |  1996-08-18  |  11.3 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.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% gt2 Kopftext: 'HELP(' default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 48 45 4c 50 28 00 00 00 | c9 00 00 00 c8 03 00 00 |HELP(...|........|
|00000010| 2c 00 00 00 00 fd ff ff | 00 00 00 00 80 00 00 00 |,.......|........|
|00000020| 00 01 00 00 00 00 00 00 | 24 00 00 00 44 49 52 24 |........|$...DIR$|
|00000030| 88 00 00 00 88 00 00 00 | b4 00 00 00 46 fd ff ff |........|....F...|
|00000040| 5a b0 0d fb 12 03 00 00 | 13 00 00 00 00 00 00 00 |Z.......|........|
|00000050| 21 52 6f 6f 74 00 00 00 | 90 29 00 00 46 fd ff ff |!Root...|.)..F...|
|00000060| be 70 a0 ff 76 03 00 00 | 13 00 00 00 00 00 00 00 |.p..v...|........|
|00000070| 69 6e 66 6f 00 00 00 00 | 40 07 00 00 46 fd ff ff |info....|@...F...|
|00000080| ef 59 a0 ff 7c 01 00 00 | 13 01 00 00 00 00 00 00 |.Y..|...|........|
|00000090| 50 52 4f 43 00 00 00 00 | 7c 11 00 00 46 fd ff ff |PROC....||...F...|
|000000a0| b0 5a a0 ff 7c 02 00 00 | 13 01 00 00 00 00 00 00 |.Z..|...|........|
|000000b0| 46 4e 00 00 44 41 54 41 | 12 03 00 00 53 6f 63 6b |FN..DATA|....Sock|
|000000c0| 65 74 4c 69 62 20 72 6f | 75 74 69 6e 65 73 0a 23 |etLib ro|utines.#|
|000000d0| 50 61 72 65 6e 74 20 53 | 74 72 6f 6e 67 48 65 6c |Parent S|trongHel|
|000000e0| 70 3a 21 4d 65 6e 75 0a | 53 6f 63 6b 65 74 20 73 |p:!Menu.|Socket s|
|000000f0| 70 65 63 69 66 69 63 20 | 3a 0a 23 49 6e 64 65 6e |pecific |:.#Inden|
|00000100| 74 20 32 0a 23 54 61 62 | 6c 65 20 43 6f 6c 75 6d |t 2.#Tab|le Colum|
|00000110| 6e 73 20 32 0a 3c 50 52 | 4f 43 69 6e 69 74 73 6f |ns 2.<PR|OCinitso|
|00000120| 63 6b 65 74 73 3e 0a 3c | 50 52 4f 43 63 6c 6f 73 |ckets>.<|PROCclos|
|00000130| 65 73 6f 63 6b 65 74 73 | 3e 0a 3c 46 4e 73 6f 63 |esockets|>.<FNsoc|
|00000140| 6b 65 74 5f 63 72 65 61 | 74 65 69 6e 65 74 3e 0a |ket_crea|teinet>.|
|00000150| 3c 50 52 4f 43 73 6f 63 | 6b 65 74 5f 63 6c 6f 73 |<PROCsoc|ket_clos|
|00000160| 65 3e 0a 3c 50 52 4f 43 | 73 6f 63 6b 65 74 5f 6c |e>.<PROC|socket_l|
|00000170| 69 73 74 65 6e 3e 0a 3c | 46 4e 73 6f 63 6b 65 74 |isten>.<|FNsocket|
|00000180| 5f 66 69 6e 64 6c 69 73 | 74 65 6e 3e 0a 3c 46 4e |_findlis|ten>.<FN|
|00000190| 73 6f 63 6b 65 74 5f 63 | 6f 6e 6e 65 63 74 3e 0a |socket_c|onnect>.|
|000001a0| 3c 46 4e 73 6f 63 6b 65 | 74 5f 61 63 63 65 70 74 |<FNsocke|t_accept|
|000001b0| 3e 0a 3c 50 52 4f 43 73 | 6f 63 6b 65 74 5f 6d 61 |>.<PROCs|ocket_ma|
|000001c0| 6b 65 62 75 66 66 65 72 | 65 64 3e 0a 3c 50 52 4f |kebuffer|ed>.<PRO|
|000001d0| 43 73 6f 63 6b 65 74 5f | 6d 61 6b 65 6c 69 6e 67 |Csocket_|makeling|
|000001e0| 65 72 3e 0a 3c 50 52 4f | 43 73 6f 63 6b 65 74 5f |er>.<PRO|Csocket_|
|000001f0| 6d 61 6b 65 72 65 75 73 | 61 62 6c 65 3e 0a 3c 46 |makereus|able>.<F|
|00000200| 4e 73 6f 63 6b 65 74 5f | 69 6e 62 75 66 66 65 72 |Nsocket_|inbuffer|
|00000210| 3e 0a 3c 46 4e 73 6f 63 | 6b 65 74 5f 65 6f 66 3e |>.<FNsoc|ket_eof>|
|00000220| 0a 3c 46 4e 73 6f 63 6b | 65 74 5f 72 65 61 64 64 |.<FNsock|et_readd|
|00000230| 61 74 61 3e 0a 3c 46 4e | 73 6f 63 6b 65 74 5f 72 |ata>.<FN|socket_r|
|00000240| 65 61 64 6c 69 6e 65 3e | 0a 3c 50 52 4f 43 73 6f |eadline>|.<PROCso|
|00000250| 63 6b 65 74 5f 73 65 6e | 64 64 61 74 61 3e 0a 3c |cket_sen|ddata>.<|
|00000260| 50 52 4f 43 73 6f 63 6b | 65 74 5f 73 65 6e 64 6c |PROCsock|et_sendl|
|00000270| 69 6e 65 3e 0a 3c 46 4e | 73 6f 63 6b 65 74 5f 67 |ine>.<FN|socket_g|
|00000280| 65 74 70 65 65 72 6e 61 | 6d 65 3e 0a 23 45 6e 64 |etpeerna|me>.#End|
|00000290| 54 61 62 6c 65 0a 23 49 | 6e 64 65 6e 74 0a 0a 4e |Table.#I|ndent..N|
|000002a0| 6f 6e 2d 73 6f 63 6b 65 | 74 20 73 70 65 63 69 66 |on-socke|t specif|
|000002b0| 69 63 20 3a 0a 23 49 6e | 64 65 6e 74 20 32 0a 23 |ic :.#In|dent 2.#|
|000002c0| 54 61 62 6c 65 20 43 6f | 6c 75 6d 6e 73 20 32 0a |Table Co|lumns 2.|
|000002d0| 3c 46 4e 69 6e 65 74 5f | 67 65 74 73 65 72 76 62 |<FNinet_|getservb|
|000002e0| 79 6e 61 6d 65 3e 0a 3c | 46 4e 69 6e 65 74 5f 67 |yname>.<|FNinet_g|
|000002f0| 65 74 73 65 72 76 62 79 | 70 6f 72 74 3e 0a 3c 46 |etservby|port>.<F|
|00000300| 4e 69 6e 65 74 5f 67 65 | 74 68 6f 73 74 62 79 6e |Ninet_ge|thostbyn|
|00000310| 61 6d 65 3e 0a 3c 46 4e | 69 6e 65 74 5f 67 65 74 |ame>.<FN|inet_get|
|00000320| 68 6f 73 74 62 79 61 64 | 64 72 3e 0a 23 45 6e 64 |hostbyad|dr>.#End|
|00000330| 54 61 62 6c 65 0a 23 49 | 6e 64 65 6e 74 0a 0a 42 |Table.#I|ndent..B|
|00000340| 75 66 66 65 72 20 68 61 | 6e 64 6c 69 6e 67 20 3a |uffer ha|ndling :|
|00000350| 0a 23 49 6e 64 65 6e 74 | 20 32 0a 23 54 61 62 6c |.#Indent| 2.#Tabl|
|00000360| 65 20 43 6f 6c 75 6d 6e | 73 20 32 0a 3c 46 4e 62 |e Column|s 2.<FNb|
|00000370| 75 66 66 65 72 5f 67 65 | 74 77 6f 72 64 3e 0a 3c |uffer_ge|tword>.<|
|00000380| 46 4e 62 75 66 66 65 72 | 5f 67 65 74 72 65 73 74 |FNbuffer|_getrest|
|00000390| 3e 0a 23 45 6e 64 54 61 | 62 6c 65 0a 23 49 6e 64 |>.#EndTa|ble.#Ind|
|000003a0| 65 6e 74 0a 0a 3c 49 6e | 66 6f 72 6d 61 74 69 6f |ent..<In|formatio|
|000003b0| 6e 3d 3e 69 6e 66 6f 3e | 20 6f 6e 20 53 6f 63 6b |n=>info>| on Sock|
|000003c0| 65 74 4c 69 62 0a 00 00 | 46 52 45 45 76 03 00 00 |etLib...|FREEv...|
|000003d0| ff ff ff ff 65 74 4c 69 | 62 20 68 65 6c 70 0a 23 |....etLi|b help.#|
|000003e0| 41 6c 69 67 6e 20 43 65 | 6e 74 72 65 0a 7b 66 68 |Align Ce|ntre.{fh|
|000003f0| 33 7d 4a 46 53 68 61 72 | 65 64 20 53 6f 63 6b 65 |3}JFShar|ed Socke|
|00000400| 74 4c 69 62 20 76 31 2e | 30 30 7b 66 7d 0a 23 41 |tLib v1.|00{f}.#A|
|00000410| 6c 69 67 6e 20 4c 65 66 | 74 0a 0a 54 68 65 20 53 |lign Lef|t..The S|
|00000420| 6f 63 6b 65 74 20 4c 69 | 62 72 61 72 79 20 69 73 |ocket Li|brary is|
|00000430| 20 61 20 42 61 73 69 63 | 20 4c 69 62 72 61 72 79 | a Basic| Library|
|00000440| 20 66 69 6c 65 20 77 68 | 69 63 68 20 70 72 6f 76 | file wh|ich prov|
|00000450| 69 64 65 73 20 61 6e 20 | 69 6e 74 65 72 66 61 63 |ides an |interfac|
|00000460| 65 20 74 6f 20 74 68 65 | 20 3c 49 6e 74 65 72 6e |e to the| <Intern|
|00000470| 65 74 3d 3e 49 6e 74 65 | 72 6e 65 74 3a 21 52 6f |et=>Inte|rnet:!Ro|
|00000480| 6f 74 3e 20 53 6f 63 6b | 65 74 73 20 53 57 49 20 |ot> Sock|ets SWI |
|00000490| 63 61 6c 6c 73 2e 20 49 | 6e 20 63 6f 6e 6a 75 6e |calls. I|n conjun|
|000004a0| 63 74 69 6f 6e 20 77 69 | 74 68 20 74 68 65 20 3c |ction wi|th the <|
|000004b0| 57 69 6d 70 4c 69 62 3d | 3e 57 69 6d 70 4c 69 62 |WimpLib=|>WimpLib|
|000004c0| 3a 21 52 6f 6f 74 3e 20 | 61 6e 64 20 4a 46 53 68 |:!Root> |and JFSh|
|000004d0| 61 72 65 64 20 73 6b 65 | 6c 65 74 6f 6e 20 61 70 |ared ske|leton ap|
|000004e0| 70 6c 69 63 61 74 69 6f | 6e 20 74 68 69 73 20 70 |plicatio|n this p|
|000004f0| 72 6f 76 69 64 65 73 20 | 61 20 76 65 72 79 20 73 |rovides |a very s|
|00000500| 69 6d 70 6c 65 20 77 61 | 79 20 6f 66 20 63 72 65 |imple wa|y of cre|
|00000510| 61 74 69 6e 67 20 61 70 | 70 6c 69 63 61 74 69 6f |ating ap|plicatio|
|00000520| 6e 73 20 77 68 69 63 68 | 20 63 61 6e 20 74 61 6c |ns which| can tal|
|00000530| 6b 20 74 6f 20 70 6f 72 | 74 73 20 61 63 72 6f 73 |k to por|ts acros|
|00000540| 73 20 74 68 65 20 69 6e | 74 65 72 6e 65 74 2c 20 |s the in|ternet, |
|00000550| 6f 72 20 61 6e 20 69 6e | 74 72 61 6e 65 74 2e 20 |or an in|tranet. |
|00000560| 54 68 69 73 20 68 65 6c | 70 20 66 69 6c 65 20 64 |This hel|p file d|
|00000570| 65 74 61 69 6c 73 20 74 | 68 65 20 72 6f 75 74 69 |etails t|he routi|
|00000580| 6e 65 73 20 70 72 6f 76 | 69 64 65 64 20 69 6e 20 |nes prov|ided in |
|00000590| 53 6f 63 6b 65 74 4c 69 | 62 2e 0a 0a 54 68 65 20 |SocketLi|b...The |
|000005a0| 53 6f 63 6b 65 74 20 4c | 69 62 72 61 72 79 20 69 |Socket L|ibrary i|
|000005b0| 73 20 72 65 66 65 72 65 | 6e 63 65 64 20 62 79 20 |s refere|nced by |
|000005c0| 5c 3c 53 6f 63 6b 65 74 | 4c 69 62 72 61 72 79 24 |\<Socket|Library$|
|000005d0| 46 69 6c 65 3e 20 61 6e | 64 20 73 68 6f 75 6c 64 |File> an|d should|
|000005e0| 20 62 65 20 6c 6f 61 64 | 65 64 20 77 69 74 68 20 | be load|ed with |
|000005f0| 3a 0a 7b 66 43 6f 64 65 | 7d 4c 49 42 52 41 52 59 |:.{fCode|}LIBRARY|
|00000600| 20 22 5c 3c 53 6f 63 6b | 65 74 4c 69 62 72 61 72 | "\<Sock|etLibrar|
|00000610| 79 24 46 69 6c 65 3e 22 | 3a 50 52 4f 43 69 6e 69 |y$File>"|:PROCini|
|00000620| 74 73 6f 63 6b 65 74 73 | 7b 66 7d 0a 0a 54 68 65 |tsockets|{f}..The|
|00000630| 20 4a 46 53 68 61 72 65 | 64 20 61 70 70 6c 69 63 | JFShare|d applic|
|00000640| 61 74 69 6f 6e 20 69 73 | 20 a9 20 3c 4a 75 73 74 |ation is| . <Just|
|00000650| 69 6e 20 46 6c 65 74 63 | 68 65 72 3d 3e 46 69 6c |in Fletc|her=>Fil|
|00000660| 65 74 79 70 65 73 3a 41 | 75 74 68 6f 72 73 5f 4a |etypes:A|uthors_J|
|00000670| 75 73 74 69 6e 46 6c 65 | 74 63 68 65 72 3e 2c 20 |ustinFle|tcher>, |
|00000680| 31 39 39 35 20 61 6e 64 | 20 69 73 20 72 65 6c 65 |1995 and| is rele|
|00000690| 61 73 65 64 20 69 6e 74 | 6f 20 74 68 65 20 50 75 |ased int|o the Pu|
|000006a0| 62 6c 69 63 20 44 6f 6d | 61 69 6e 20 77 69 74 68 |blic Dom|ain with|
|000006b0| 20 74 68 65 20 73 61 6d | 65 20 72 65 73 74 72 69 | the sam|e restri|
|000006c0| 63 74 69 6f 6e 73 20 61 | 73 20 73 75 62 73 69 73 |ctions a|s subsis|
|000006d0| 74 20 69 6e 20 6d 6f 73 | 74 20 50 44 20 73 6f 66 |t in mos|t PD sof|
|000006e0| 74 77 61 72 65 2e 20 54 | 68 69 73 20 69 6e 63 6c |tware. T|his incl|
|000006f0| 75 64 65 73 20 74 68 65 | 20 66 61 63 74 20 74 68 |udes the| fact th|
|00000700| 61 74 20 77 68 65 6e 20 | 64 69 73 74 72 69 62 75 |at when |distribu|
|00000710| 74 65 64 20 74 68 65 20 | 65 6e 74 69 72 65 20 61 |ted the |entire a|
|00000720| 70 70 6c 69 63 61 74 69 | 6f 6e 20 6d 75 73 74 20 |pplicati|on must |
|00000730| 72 65 6d 61 69 6e 20 69 | 6e 74 61 63 74 2e 00 00 |remain i|ntact...|
|00000740| 44 49 52 24 7c 01 00 00 | 7c 01 00 00 bc 08 00 00 |DIR$|...||.......|
|00000750| 46 ff ff ff ab ee 01 fb | 9d 00 00 00 13 00 00 00 |F.......|........|
|00000760| 00 00 00 00 69 6e 69 74 | 73 6f 63 6b 65 74 73 00 |....init|sockets.|
|00000770| 5c 09 00 00 46 ff ff ff | 29 12 02 fb e1 00 00 00 |\...F...|).......|
|00000780| 13 00 00 00 00 00 00 00 | 63 6c 6f 73 65 73 6f 63 |........|closesoc|
|00000790| 6b 65 74 73 00 00 00 00 | 40 0a 00 00 46 ff ff ff |kets....|@...F...|
|000007a0| 88 45 02 fb 6d 00 00 00 | 13 00 00 00 00 00 00 00 |.E..m...|........|
|000007b0| 73 6f 63 6b 65 74 5f 63 | 6c 6f 73 65 00 00 00 00 |socket_c|lose....|
|000007c0| b0 0a 00 00 46 ff ff ff | a6 e2 02 fb 9e 01 00 00 |....F...|........|
|000007d0| 13 00 00 00 00 00 00 00 | 73 6f 63 6b 65 74 5f 6c |........|socket_l|
|000007e0| 69 73 74 65 6e 00 00 00 | 50 0c 00 00 46 ff ff ff |isten...|P...F...|
|000007f0| 6d cb 03 fb 21 01 00 00 | 13 00 00 00 00 00 00 00 |m...!...|........|
|00000800| 73 6f 63 6b 65 74 5f 6d | 61 6b 65 62 75 66 66 65 |socket_m|akebuffe|
|00000810| 72 65 64 00 74 0d 00 00 | 46 ff ff ff 4e 0c 0a fb |red.t...|F...N...|
|00000820| fe 00 00 00 13 00 00 00 | 00 00 00 00 73 6f 63 6b |........|....sock|
|00000830| 65 74 5f 6d 61 6b 65 6c | 69 6e 67 65 72 00 00 00 |et_makel|inger...|
|00000840| 74 0e 00 00 46 ff ff ff | f7 42 0a fb 51 01 00 00 |t...F...|.B..Q...|
|00000850| 13 00 00 00 00 00 00 00 | 73 6f 63 6b 65 74 5f 6d |........|socket_m|
|00000860| 61 6b 65 72 65 75 73 61 | 62 6c 65 00 c8 0f 00 00 |akereusa|ble.....|
|00000870| 46 ff ff ff 44 4c 0b fb | eb 00 00 00 13 00 00 00 |F...DL..|........|
|00000880| 00 00 00 00 73 6f 63 6b | 65 74 5f 73 65 6e 64 64 |....sock|et_sendd|
|00000890| 61 74 61 00 b4 10 00 00 | 46 ff ff ff b5 13 0b fd |ata.....|F.......|
|000008a0| c6 00 00 00 13 00 00 00 | 00 00 00 00 73 6f 63 6b |........|....sock|
|000008b0| 65 74 5f 73 65 6e 64 6c | 69 6e 65 00 44 41 54 41 |et_sendl|ine.DATA|
|000008c0| 9d 00 00 00 50 52 4f 43 | 69 6e 69 74 73 6f 63 6b |....PROC|initsock|
|000008d0| 65 74 73 0a 23 50 61 72 | 65 6e 74 20 21 52 6f 6f |ets.#Par|ent !Roo|
|000008e0| 74 0a 49 6e 69 74 69 61 | 6c 69 73 65 20 74 68 65 |t.Initia|lise the|
|000008f0| 20 73 6f 63 6b 65 74 73 | 20 6c 69 62 72 61 72 79 | sockets| library|
|00000900| 20 76 61 72 69 61 62 6c | 65 73 0a 0a 43 61 6c 6c | variabl|es..Call|
|00000910| 20 74 68 69 73 20 72 6f | 75 74 69 6e 65 20 61 74 | this ro|utine at|
|00000920| 20 74 68 65 20 73 74 61 | 72 74 20 6f 66 20 61 6e | the sta|rt of an|
|00000930| 79 20 70 72 6f 67 72 61 | 6d 20 74 68 61 74 20 75 |y progra|m that u|
|00000940| 73 65 73 20 74 68 65 20 | 53 6f 63 6b 65 74 73 4c |ses the |SocketsL|
|00000950| 69 62 20 66 69 6c 65 2e | 0a 00 00 00 44 41 54 41 |ib file.|....DATA|
|00000960| e1 00 00 00 50 52 4f 43 | 63 6c 6f 73 65 73 6f 63 |....PROC|closesoc|
|00000970| 6b 65 74 73 0a 23 50 61 | 72 65 6e 74 20 21 52 6f |kets.#Pa|rent !Ro|
|00000980| 6f 74 0a 53 68 75 74 73 | 64 6f 77 6e 20 74 68 65 |ot.Shuts|down the|
|00000990| 20 53 6f 63 6b 65 74 73 | 20 6c 69 62 72 61 72 79 | Sockets| library|
|000009a0| 2e 0a 0a 59 6f 75 20 6d | 75 73 74 20 63 61 6c 6c |...You m|ust call|
|000009b0| 20 74 68 69 73 20 72 6f | 75 74 69 6e 65 20 61 74 | this ro|utine at|
|000009c0| 20 74 68 65 20 65 6e 64 | 20 6f 66 20 61 6e 79 20 | the end| of any |
|000009d0| 70 72 6f 67 72 61 6d 20 | 77 68 69 63 68 20 75 73 |program |which us|
|000009e0| 65 73 20 74 68 65 20 6c | 69 62 72 61 72 79 2e 20 |es the l|ibrary. |
|000009f0| 49 74 20 77 69 6c 6c 20 | 63 6c 6f 73 65 20 61 6c |It will |close al|
|00000a00| 6c 20 74 68 65 20 73 6f | 63 6b 65 74 73 20 63 75 |l the so|ckets cu|
|00000a10| 72 72 65 6e 74 6c 79 20 | 6f 70 65 6e 20 61 6e 64 |rrently |open and|
|00000a20| 20 72 65 6c 65 61 73 65 | 20 61 6e 79 20 6d 65 6d | release| any mem|
|00000a30| 6f 72 79 20 63 6c 61 69 | 6d 65 64 2e 0a 00 00 00 |ory clai|med.....|
|00000a40| 44 41 54 41 6d 00 00 00 | 50 52 4f 43 73 6f 63 6b |DATAm...|PROCsock|
|00000a50| 65 74 5f 63 6c 6f 73 65 | 28 73 6f 63 6b 65 74 29 |et_close|(socket)|
|00000a60| 0a 23 50 61 72 65 6e 74 | 20 21 52 6f 6f 74 0a 3d |.#Parent| !Root.=|
|00000a70| 3e 09 7b 2f 7d 73 6f 63 | 6b 65 74 7b 2f 7d 09 68 |>.{/}soc|ket{/}.h|
|00000a80| 61 6e 64 6c 65 20 6f 66 | 20 73 6f 63 6b 65 74 0a |andle of| socket.|
|00000a90| 0a 43 6c 6f 73 65 73 20 | 61 20 73 6f 63 6b 65 74 |.Closes |a socket|
|00000aa0| 73 20 63 6f 6e 6e 65 63 | 74 69 6f 6e 2e 00 00 00 |s connec|tion....|
|00000ab0| 44 41 54 41 9e 01 00 00 | 50 52 4f 43 73 6f 63 6b |DATA....|PROCsock|
|00000ac0| 65 74 5f 6c 69 73 74 65 | 6e 28 73 6f 63 6b 65 74 |et_liste|n(socket|
|00000ad0| 2c 69 70 2c 70 6f 72 74 | 29 0a 23 50 61 72 65 6e |,ip,port|).#Paren|
|00000ae0| 74 20 21 52 6f 6f 74 0a | 3d 3e 09 2f 73 6f 63 6b |t !Root.|=>./sock|
|00000af0| 65 74 2f 09 68 61 6e 64 | 6c 65 20 6f 66 20 73 6f |et/.hand|le of so|
|00000b00| 63 6b 65 74 20 61 73 20 | 67 69 76 65 6e 20 62 79 |cket as |given by|
|00000b10| 20 3c 46 4e 73 6f 63 6b | 65 74 5f 63 72 65 61 74 | <FNsock|et_creat|
|00000b20| 65 69 6e 65 74 3e 0a 09 | 2f 69 70 2f 09 09 61 64 |einet>..|/ip/..ad|
|00000b30| 64 72 65 73 73 20 6f 66 | 20 68 6f 73 74 20 74 6f |dress of| host to|
|00000b40| 20 61 63 63 65 70 74 20 | 63 6f 6e 6e 65 63 74 69 | accept |connecti|
|00000b50| 6f 6e 73 20 66 72 6f 6d | 20 28 75 73 75 61 6c 6c |ons from| (usuall|
|00000b60| 79 20 30 29 0a 09 2f 70 | 6f 72 74 2f 09 09 70 6f |y 0)../p|ort/..po|
|00000b70| 72 74 20 6e 75 6d 62 65 | 72 20 74 6f 20 6c 69 73 |rt numbe|r to lis|
|00000b80| 74 65 6e 20 6f 6e 0a 0a | 4c 69 73 74 65 6e 73 20 |ten on..|Listens |
|00000b90| 66 6f 72 20 63 6f 6e 6e | 65 63 74 69 6f 6e 73 20 |for conn|ections |
|00000ba0| 6f 6e 20 61 20 73 70 65 | 63 69 66 69 63 20 73 6f |on a spe|cific so|
|00000bb0| 63 6b 65 74 2e 20 41 6e | 20 65 72 72 6f 72 20 77 |cket. An| error w|
|00000bc0| 69 6c 6c 20 6f 63 63 75 | 72 20 69 66 20 74 68 65 |ill occu|r if the|
|00000bd0| 20 73 70 65 63 69 66 69 | 65 64 20 70 6f 72 74 20 | specifi|ed port |
|00000be0| 69 73 20 61 6c 72 65 61 | 64 79 20 62 6f 75 6e 64 |is alrea|dy bound|
|00000bf0| 20 74 6f 20 61 6e 6f 74 | 68 65 72 20 73 6f 63 6b | to anot|her sock|
|00000c00| 65 74 2e 20 55 73 65 20 | 3c 46 4e 73 6f 63 6b 65 |et. Use |<FNsocke|
|00000c10| 74 5f 66 69 6e 64 6c 69 | 73 74 65 6e 3e 20 69 66 |t_findli|sten> if|
|00000c20| 20 79 6f 75 20 77 69 73 | 68 20 74 6f 20 62 65 20 | you wis|h to be |
|00000c30| 61 6c 6c 6f 63 61 74 65 | 64 20 61 20 73 6f 63 6b |allocate|d a sock|
|00000c40| 65 74 20 69 6e 20 61 20 | 72 61 6e 67 65 2e 00 00 |et in a |range...|
|00000c50| 44 41 54 41 21 01 00 00 | 50 52 4f 43 73 6f 63 6b |DATA!...|PROCsock|
|00000c60| 65 74 5f 6d 61 6b 65 62 | 75 66 66 65 72 65 64 28 |et_makeb|uffered(|
|00000c70| 73 6f 63 6b 65 74 29 0a | 23 50 61 72 65 6e 74 20 |socket).|#Parent |
|00000c80| 21 52 6f 6f 74 0a 3d 3e | 09 2f 73 6f 63 6b 65 74 |!Root.=>|./socket|
|00000c90| 2f 09 68 61 6e 64 6c 65 | 20 6f 66 20 73 6f 63 6b |/.handle| of sock|
|00000ca0| 65 74 20 61 73 20 67 69 | 76 65 6e 20 62 79 20 3c |et as gi|ven by <|
|00000cb0| 46 4e 73 6f 63 6b 65 74 | 5f 63 72 65 61 74 65 69 |FNsocket|_createi|
|00000cc0| 6e 65 74 3e 0a 0a 41 6c | 6c 6f 63 61 74 65 73 20 |net>..Al|locates |
|00000cd0| 61 20 62 75 66 66 65 72 | 20 66 6f 72 20 74 68 65 |a buffer| for the|
|00000ce0| 20 73 6f 63 6b 65 74 20 | 73 6f 20 74 68 61 74 20 | socket |so that |
|00000cf0| 63 61 6c 6c 73 20 74 6f | 20 3c 46 4e 73 6f 63 6b |calls to| <FNsock|
|00000d00| 65 74 5f 72 65 61 64 6c | 69 6e 65 3e 20 63 61 6e |et_readl|ine> can|
|00000d10| 20 62 65 20 75 73 65 64 | 2e 20 4f 74 68 65 72 77 | be used|. Otherw|
|00000d20| 69 73 65 20 79 6f 75 27 | 6c 6c 20 68 61 76 65 20 |ise you'|ll have |
|00000d30| 74 6f 20 6a 75 73 74 20 | 75 73 65 20 3c 46 4e 73 |to just |use <FNs|
|00000d40| 6f 63 6b 65 74 5f 72 65 | 61 64 64 61 74 61 3e 20 |ocket_re|addata> |
|00000d50| 70 61 73 73 69 6e 67 20 | 79 6f 75 72 20 6f 77 6e |passing |your own|
|00000d60| 20 6d 65 6d 6f 72 79 20 | 70 6f 69 6e 74 65 72 2e | memory |pointer.|
|00000d70| 0a 00 00 00 44 41 54 41 | fe 00 00 00 50 52 4f 43 |....DATA|....PROC|
|00000d80| 73 6f 63 6b 65 74 5f 6d | 61 6b 65 6c 69 6e 67 65 |socket_m|akelinge|
|00000d90| 72 28 73 6f 63 6b 65 74 | 2c 74 69 6d 65 29 0a 23 |r(socket|,time).#|
|00000da0| 50 61 72 65 6e 74 20 21 | 52 6f 6f 74 0a 3d 3e 09 |Parent !|Root.=>.|
|00000db0| 2f 73 6f 63 6b 65 74 2f | 09 68 61 6e 64 6c 65 20 |/socket/|.handle |
|00000dc0| 6f 66 20 73 6f 63 6b 65 | 74 20 61 73 20 67 69 76 |of socke|t as giv|
|00000dd0| 65 6e 20 62 79 20 3c 46 | 4e 73 6f 63 6b 65 74 5f |en by <F|Nsocket_|
|00000de0| 63 72 65 61 74 65 69 6e | 65 74 3e 0a 09 2f 74 69 |createin|et>../ti|
|00000df0| 6d 65 2f 09 09 74 69 6d | 65 20 74 6f 20 6c 69 6e |me/..tim|e to lin|
|00000e00| 67 65 72 20 66 6f 72 20 | 69 6e 20 73 65 63 6f 6e |ger for |in secon|
|00000e10| 64 73 2c 20 6f 72 20 30 | 20 74 6f 20 64 69 73 61 |ds, or 0| to disa|
|00000e20| 62 6c 65 0a 0a 45 6e 73 | 75 72 65 73 20 74 68 61 |ble..Ens|ures tha|
|00000e30| 74 20 74 68 65 20 73 6f | 63 6b 65 74 20 77 69 6c |t the so|cket wil|
|00000e40| 6c 20 72 65 6d 61 69 6e | 20 76 61 6c 69 64 20 73 |l remain| valid s|
|00000e50| 6f 20 74 68 61 74 20 64 | 61 74 61 20 63 61 6e 20 |o that d|ata can |
|00000e60| 62 65 20 72 65 61 64 20 | 6f 6e 20 63 6c 6f 73 65 |be read |on close|
|00000e70| 2e 0a 00 00 44 41 54 41 | 51 01 00 00 50 52 4f 43 |....DATA|Q...PROC|
|00000e80| 73 6f 63 6b 65 74 5f 6d | 61 6b 65 72 65 75 73 61 |socket_m|akereusa|
|00000e90| 62 6c 65 28 73 6f 63 6b | 65 74 2c 66 6c 61 67 29 |ble(sock|et,flag)|
|00000ea0| 0a 23 50 61 72 65 6e 74 | 20 21 52 6f 6f 74 0a 3d |.#Parent| !Root.=|
|00000eb0| 3e 09 2f 73 6f 63 6b 65 | 74 2f 09 68 61 6e 64 6c |>./socke|t/.handl|
|00000ec0| 65 20 6f 66 20 73 6f 63 | 6b 65 74 20 61 73 20 67 |e of soc|ket as g|
|00000ed0| 69 76 65 6e 20 62 79 20 | 3c 46 4e 73 6f 63 6b 65 |iven by |<FNsocke|
|00000ee0| 74 5f 63 72 65 61 74 65 | 69 6e 65 74 3e 0a 09 2f |t_create|inet>../|
|00000ef0| 66 6c 61 67 2f 09 09 54 | 52 55 45 20 74 6f 20 61 |flag/..T|RUE to a|
|00000f00| 6c 6c 6f 77 20 74 68 65 | 20 61 64 64 72 65 73 73 |llow the| address|
|00000f10| 20 74 6f 20 62 65 20 72 | 65 2d 75 73 65 64 0a 0a | to be r|e-used..|
|00000f20| 57 68 65 6e 20 79 6f 75 | 20 63 6c 6f 73 65 20 61 |When you| close a|
|00000f30| 20 73 6f 63 6b 65 74 20 | 69 74 20 75 73 75 61 6c | socket |it usual|
|00000f40| 6c 79 20 77 61 69 74 73 | 20 66 6f 72 20 61 20 74 |ly waits| for a t|
|00000f50| 69 6d 65 20 62 65 66 6f | 72 65 20 61 6c 6c 6f 77 |ime befo|re allow|
|00000f60| 69 6e 67 20 61 6e 6f 74 | 68 65 72 20 73 6f 63 6b |ing anot|her sock|
|00000f70| 65 74 20 74 6f 20 62 65 | 20 63 72 65 61 74 65 64 |et to be| created|
|00000f80| 20 6f 6e 20 74 68 65 20 | 73 61 6d 65 20 70 6f 72 | on the |same por|
|00000f90| 74 2e 20 42 79 20 6d 61 | 6b 69 6e 67 20 74 68 65 |t. By ma|king the|
|00000fa0| 20 73 6f 63 6b 65 74 20 | 72 65 75 73 61 62 6c 65 | socket |reusable|
|00000fb0| 20 74 68 69 73 20 77 69 | 6c 6c 20 6e 6f 74 20 6f | this wi|ll not o|
|00000fc0| 63 63 75 72 2e 00 00 00 | 44 41 54 41 eb 00 00 00 |ccur....|DATA....|
|00000fd0| 50 52 4f 43 73 6f 63 6b | 65 74 5f 73 65 6e 64 64 |PROCsock|et_sendd|
|00000fe0| 61 74 61 28 73 6f 63 6b | 65 74 2c 62 6c 6f 63 6b |ata(sock|et,block|
|00000ff0| 2c 6c 65 6e 67 74 68 29 | 0a 23 50 61 72 65 6e 74 |,length)|.#Parent|
|00001000| 20 21 52 6f 6f 74 0a 3d | 3e 09 2f 73 6f 63 6b 65 | !Root.=|>./socke|
|00001010| 74 2f 09 68 61 6e 64 6c | 65 20 6f 66 20 73 6f 63 |t/.handl|e of soc|
|00001020| 6b 65 74 20 61 73 20 67 | 69 76 65 6e 20 62 79 20 |ket as g|iven by |
|00001030| 3c 46 4e 73 6f 63 6b 65 | 74 5f 63 72 65 61 74 65 |<FNsocke|t_create|
|00001040| 69 6e 65 74 3e 0a 09 2f | 62 6c 6f 63 6b 2f 09 09 |inet>../|block/..|
|00001050| 70 6f 69 6e 74 65 72 20 | 74 6f 20 74 68 65 20 64 |pointer |to the d|
|00001060| 61 74 61 20 74 6f 20 73 | 65 6e 64 0a 09 2f 6c 65 |ata to s|end../le|
|00001070| 6e 67 74 68 2f 09 6c 65 | 6e 67 74 68 20 6f 66 20 |ngth/.le|ngth of |
|00001080| 64 61 74 61 20 74 6f 20 | 73 65 6e 64 0a 0a 53 65 |data to |send..Se|
|00001090| 6e 64 73 20 61 20 62 6c | 6f 63 6b 20 6f 66 20 6d |nds a bl|ock of m|
|000010a0| 65 6d 6f 72 79 20 74 6f | 20 61 20 73 6f 63 6b 65 |emory to| a socke|
|000010b0| 74 2e 0a 00 44 41 54 41 | c6 00 00 00 50 52 4f 43 |t...DATA|....PROC|
|000010c0| 73 6f 63 6b 65 74 5f 73 | 65 6e 64 6c 69 6e 65 28 |socket_s|endline(|
|000010d0| 73 6f 63 6b 65 74 2c 6c | 69 6e 65 24 29 0a 23 50 |socket,l|ine$).#P|
|000010e0| 61 72 65 6e 74 20 21 52 | 6f 6f 74 0a 3d 3e 09 7b |arent !R|oot.=>.{|
|000010f0| 2f 7d 73 6f 63 6b 65 74 | 7b 2f 7d 09 68 61 6e 64 |/}socket|{/}.hand|
|00001100| 6c 65 20 6f 66 20 73 6f | 63 6b 65 74 20 61 73 20 |le of so|cket as |
|00001110| 67 69 76 65 6e 20 62 79 | 20 3c 46 4e 73 6f 63 6b |given by| <FNsock|
|00001120| 65 74 5f 63 72 65 61 74 | 65 69 6e 65 74 3e 0a 09 |et_creat|einet>..|
|00001130| 7b 2f 7d 6c 69 6e 65 24 | 7b 2f 7d 09 09 6c 69 6e |{/}line$|{/}..lin|
|00001140| 65 20 74 6f 20 73 65 6e | 64 0a 0a 53 65 6e 64 73 |e to sen|d..Sends|
|00001150| 20 61 20 6c 69 6e 65 20 | 74 6f 20 61 20 73 6f 63 | a line |to a soc|
|00001160| 6b 65 74 2c 20 4c 46 20 | 28 26 31 30 29 20 74 65 |ket, LF |(&10) te|
|00001170| 72 6d 69 6e 61 74 65 64 | 2e 0a 00 00 44 49 52 24 |rminated|....DIR$|
|00001180| 7c 02 00 00 7c 02 00 00 | f8 13 00 00 46 ff ff ff ||...|...|....F...|
|00001190| ba 94 02 fb 13 01 00 00 | 13 00 00 00 00 00 00 00 |........|........|
|000011a0| 73 6f 63 6b 65 74 5f 63 | 6f 6e 6e 65 63 74 00 00 |socket_c|onnect..|
|000011b0| 0c 15 00 00 46 ff ff ff | 1c 0f 03 fb a8 01 00 00 |....F...|........|
|000011c0| 13 00 00 00 00 00 00 00 | 73 6f 63 6b 65 74 5f 66 |........|socket_f|
|000011d0| 69 6e 64 6c 69 73 74 65 | 6e 00 00 00 b4 16 00 00 |indliste|n.......|
|000011e0| 46 ff ff ff 0e 5c 03 fb | 29 01 00 00 13 00 00 00 |F....\..|).......|
|000011f0| 00 00 00 00 73 6f 63 6b | 65 74 5f 61 63 63 65 70 |....sock|et_accep|
|00001200| 74 00 00 00 e0 17 00 00 | 46 ff ff ff 47 62 0a fb |t.......|F...Gb..|
|00001210| 05 01 00 00 13 00 00 00 | 00 00 00 00 73 6f 63 6b |........|....sock|
|00001220| 65 74 5f 69 6e 62 75 66 | 66 65 72 00 e8 18 00 00 |et_inbuf|fer.....|
|00001230| 46 ff ff ff 8d 71 0a fb | bf 00 00 00 13 00 00 00 |F....q..|........|
|00001240| 00 00 00 00 73 6f 63 6b | 65 74 5f 65 6f 66 00 00 |....sock|et_eof..|
|00001250| a8 19 00 00 46 ff ff ff | 3b c1 0a fb cf 01 00 00 |....F...|;.......|
|00001260| 13 00 00 00 00 00 00 00 | 73 6f 63 6b 65 74 5f 72 |........|socket_r|
|00001270| 65 61 64 64 61 74 61 00 | 78 1b 00 00 46 ff ff ff |eaddata.|x...F...|
|00001280| 0b 2c 0d fb 69 02 00 00 | 13 00 00 00 00 00 00 00 |.,..i...|........|
|00001290| 73 6f 63 6b 65 74 5f 72 | 65 61 64 6c 69 6e 65 00 |socket_r|eadline.|
|000012a0| e4 1d 00 00 46 ff ff ff | 61 8c 0b fb dc 00 00 00 |....F...|a.......|
|000012b0| 13 00 00 00 00 00 00 00 | 73 6f 63 6b 65 74 5f 67 |........|socket_g|
|000012c0| 65 74 70 65 65 72 6e 61 | 6d 65 00 00 c0 1e 00 00 |etpeerna|me......|
|000012d0| 46 ff ff ff 5d 85 0c fb | 59 01 00 00 13 00 00 00 |F...]...|Y.......|
|000012e0| 00 00 00 00 69 6e 65 74 | 5f 67 65 74 73 65 72 76 |....inet|_getserv|
|000012f0| 62 79 6e 61 6d 65 00 00 | 1c 20 00 00 46 ff ff ff |byname..|. ..F...|
|00001300| 1c 75 0c fb f0 00 00 00 | 13 00 00 00 00 00 00 00 |.u......|........|
|00001310| 69 6e 65 74 5f 67 65 74 | 73 65 72 76 62 79 70 6f |inet_get|servbypo|
|00001320| 72 74 00 00 0c 21 00 00 | 46 ff ff ff ca 8c 0c fb |rt...!..|F.......|
|00001330| 8d 00 00 00 13 00 00 00 | 00 00 00 00 69 6e 65 74 |........|....inet|
|00001340| 5f 67 65 74 68 6f 73 74 | 62 79 6e 61 6d 65 00 00 |_gethost|byname..|
|00001350| 9c 21 00 00 46 ff ff ff | 4f 1e 0c fb 91 00 00 00 |.!..F...|O.......|
|00001360| 13 00 00 00 00 00 00 00 | 69 6e 65 74 5f 67 65 74 |........|inet_get|
|00001370| 68 6f 73 74 62 79 61 64 | 64 72 00 00 30 22 00 00 |hostbyad|dr..0"..|
|00001380| 46 ff ff ff ac 53 0c fb | ef 00 00 00 13 00 00 00 |F....S..|........|
|00001390| 00 00 00 00 73 6f 63 6b | 65 74 5f 63 72 65 61 74 |....sock|et_creat|
|000013a0| 65 69 6e 65 74 00 00 00 | 20 23 00 00 46 ff ff ff |einet...| #..F...|
|000013b0| e7 fc 0d fb c8 03 00 00 | 13 00 00 00 00 00 00 00 |........|........|
|000013c0| 62 75 66 66 65 72 5f 67 | 65 74 77 6f 72 64 00 00 |buffer_g|etword..|
|000013d0| e8 26 00 00 46 ff ff ff | 94 ec 0d fb a5 02 00 00 |.&..F...|........|
|000013e0| 13 00 00 00 00 00 00 00 | 62 75 66 66 65 72 5f 67 |........|buffer_g|
|000013f0| 65 74 72 65 73 74 00 00 | 44 41 54 41 13 01 00 00 |etrest..|DATA....|
|00001400| 46 4e 73 6f 63 6b 65 74 | 5f 63 6f 6e 6e 65 63 74 |FNsocket|_connect|
|00001410| 28 73 6f 63 6b 65 74 2c | 69 70 2c 70 6f 72 74 29 |(socket,|ip,port)|
|00001420| 0a 23 50 61 72 65 6e 74 | 20 21 52 6f 6f 74 0a 3d |.#Parent| !Root.=|
|00001430| 3e 09 7b 2f 7d 73 6f 63 | 6b 65 74 7b 2f 7d 09 68 |>.{/}soc|ket{/}.h|
|00001440| 61 6e 64 6c 65 20 6f 66 | 20 73 6f 63 6b 65 74 20 |andle of| socket |
|00001450| 61 73 20 67 69 76 65 6e | 20 62 79 20 3c 46 4e 73 |as given| by <FNs|
|00001460| 6f 63 6b 65 74 5f 63 72 | 65 61 74 65 69 6e 65 74 |ocket_cr|eateinet|
|00001470| 3e 0a 09 2f 69 70 2f 09 | 09 61 64 64 72 65 73 73 |>../ip/.|.address|
|00001480| 20 6f 66 20 68 6f 73 74 | 20 74 6f 20 63 6f 6e 6e | of host| to conn|
|00001490| 65 63 74 20 74 6f 0a 09 | 2f 70 6f 72 74 2f 09 09 |ect to..|/port/..|
|000014a0| 70 6f 72 74 20 6e 75 6d | 62 65 72 20 74 6f 20 63 |port num|ber to c|
|000014b0| 6f 6e 6e 65 63 74 20 74 | 6f 0a 3c 3d 09 54 52 55 |onnect t|o.<=.TRU|
|000014c0| 45 20 69 66 20 63 6f 6e | 6e 65 63 74 69 6f 6e 20 |E if con|nection |
|000014d0| 77 61 73 20 6d 61 64 65 | 20 73 75 63 63 65 73 73 |was made| success|
|000014e0| 66 75 6c 6c 79 0a 0a 49 | 6e 69 74 69 61 74 65 73 |fully..I|nitiates|
|000014f0| 20 61 20 63 6f 6e 6e 65 | 63 74 69 6f 6e 20 74 6f | a conne|ction to|
|00001500| 20 61 20 73 6f 63 6b 65 | 74 2e 0a 00 44 41 54 41 | a socke|t...DATA|
|00001510| a8 01 00 00 46 4e 73 6f | 63 6b 65 74 5f 66 69 6e |....FNso|cket_fin|
|00001520| 64 6c 69 73 74 65 6e 28 | 73 6f 63 6b 65 74 2c 69 |dlisten(|socket,i|
|00001530| 70 2c 70 6f 72 74 29 0a | 23 50 61 72 65 6e 74 20 |p,port).|#Parent |
|00001540| 21 52 6f 6f 74 0a 3d 3e | 09 2f 73 6f 63 6b 65 74 |!Root.=>|./socket|
|00001550| 2f 09 68 61 6e 64 6c 65 | 20 6f 66 20 73 6f 63 6b |/.handle| of sock|
|00001560| 65 74 20 61 73 20 67 69 | 76 65 6e 20 62 79 20 3c |et as gi|ven by <|
|00001570| 46 4e 73 6f 63 6b 65 74 | 5f 63 72 65 61 74 65 69 |FNsocket|_createi|
|00001580| 6e 65 74 3e 0a 09 2f 69 | 70 2f 09 09 61 64 64 72 |net>../i|p/..addr|
|00001590| 65 73 73 20 6f 66 20 68 | 6f 73 74 20 74 6f 20 61 |ess of h|ost to a|
|000015a0| 63 63 65 70 74 20 63 6f | 6e 6e 65 63 74 69 6f 6e |ccept co|nnection|
|000015b0| 73 20 66 72 6f 6d 20 28 | 75 73 75 61 6c 6c 79 20 |s from (|usually |
|000015c0| 30 29 0a 09 2f 70 6f 72 | 74 2f 09 09 70 6f 72 74 |0)../por|t/..port|
|000015d0| 20 6e 75 6d 62 65 72 20 | 74 6f 20 6c 69 73 74 65 | number |to liste|
|000015e0| 6e 20 6f 6e 0a 09 2f 6c | 69 6d 69 74 2f 09 09 6c |n on../l|imit/..l|
|000015f0| 69 6d 69 74 20 66 6f 72 | 20 73 65 61 72 63 68 20 |imit for| search |
|00001600| 28 69 65 20 31 20 66 6f | 72 20 70 6f 72 74 20 3d |(ie 1 fo|r port =|
|00001610| 3e 20 28 70 6f 72 74 20 | 2b 31 29 29 0a 3c 3d 09 |> (port |+1)).<=.|
|00001620| 6e 75 6d 62 65 72 20 6f | 66 20 70 6f 72 74 20 6c |number o|f port l|
|00001630| 69 73 74 65 6e 69 6e 67 | 20 6f 6e 2c 20 6f 72 20 |istening| on, or |
|00001640| 2d 31 20 69 66 20 6e 6f | 74 20 70 6f 73 73 69 62 |-1 if no|t possib|
|00001650| 6c 65 0a 0a 4c 69 73 74 | 65 6e 73 20 66 6f 72 20 |le..List|ens for |
|00001660| 63 6f 6e 6e 65 63 74 69 | 6f 6e 73 20 6f 6e 20 61 |connecti|ons on a|
|00001670| 20 73 6f 63 6b 65 74 2c | 20 6d 6f 76 69 6e 67 20 | socket,| moving |
|00001680| 74 6f 20 74 68 65 20 6e | 65 78 74 20 69 66 20 74 |to the n|ext if t|
|00001690| 68 65 20 73 70 65 63 69 | 66 69 65 64 20 70 6f 72 |he speci|fied por|
|000016a0| 74 20 69 73 20 61 6c 72 | 65 61 64 79 20 74 61 6b |t is alr|eady tak|
|000016b0| 65 6e 2e 0a 44 41 54 41 | 29 01 00 00 46 4e 73 6f |en..DATA|)...FNso|
|000016c0| 63 6b 65 74 5f 61 63 63 | 65 70 74 28 73 6f 63 6b |cket_acc|ept(sock|
|000016d0| 65 74 29 0a 23 50 61 72 | 65 6e 74 20 21 52 6f 6f |et).#Par|ent !Roo|
|000016e0| 74 0a 3d 3e 09 2f 73 6f | 63 6b 65 74 2f 09 68 61 |t.=>./so|cket/.ha|
|000016f0| 6e 64 6c 65 20 6f 66 20 | 73 6f 63 6b 65 74 20 61 |ndle of |socket a|
|00001700| 73 20 67 69 76 65 6e 20 | 62 79 20 3c 46 4e 73 6f |s given |by <FNso|
|00001710| 63 6b 65 74 5f 63 72 65 | 61 74 65 69 6e 65 74 3e |cket_cre|ateinet>|
|00001720| 0a 3c 3d 09 6e 65 77 20 | 2f 73 6f 63 6b 65 74 2f |.<=.new |/socket/|
|00001730| 20 68 61 6e 64 6c 65 2c | 20 6f 72 20 2d 31 20 69 | handle,| or -1 i|
|00001740| 66 20 6e 6f 20 63 6f 6e | 6e 65 63 74 69 6f 6e 20 |f no con|nection |
|00001750| 77 61 69 74 69 6e 67 2e | 0a 0a 41 63 63 65 70 74 |waiting.|..Accept|
|00001760| 73 20 61 20 63 6f 6e 6e | 65 63 74 69 6f 6e 20 63 |s a conn|ection c|
|00001770| 75 72 72 65 6e 74 6c 79 | 20 77 61 69 74 69 6e 67 |urrently| waiting|
|00001780| 2e 20 54 68 65 20 72 65 | 74 75 72 6e 65 64 20 73 |. The re|turned s|
|00001790| 6f 63 6b 65 74 20 69 73 | 20 74 68 65 20 6e 65 77 |ocket is| the new|
|000017a0| 20 63 6f 6e 6e 65 63 74 | 69 6f 6e 2c 20 77 68 69 | connect|ion, whi|
|000017b0| 6c 73 74 20 74 68 65 20 | 6f 72 69 67 69 6e 61 6c |lst the |original|
|000017c0| 20 73 6f 63 6b 65 74 20 | 63 6f 6e 74 69 6e 75 65 | socket |continue|
|000017d0| 73 20 6c 69 73 74 65 6e | 69 6e 67 2e 0a 00 00 00 |s listen|ing.....|
|000017e0| 44 41 54 41 05 01 00 00 | 46 4e 73 6f 63 6b 65 74 |DATA....|FNsocket|
|000017f0| 5f 69 6e 62 75 66 66 65 | 72 28 73 6f 63 6b 65 74 |_inbuffe|r(socket|
|00001800| 29 0a 23 50 61 72 65 6e | 74 20 21 52 6f 6f 74 0a |).#Paren|t !Root.|
|00001810| 3d 3e 09 2f 73 6f 63 6b | 65 74 2f 09 68 61 6e 64 |=>./sock|et/.hand|
|00001820| 6c 65 20 6f 66 20 73 6f | 63 6b 65 74 20 61 73 20 |le of so|cket as |
|00001830| 67 69 76 65 6e 20 62 79 | 20 3c 46 4e 73 6f 63 6b |given by| <FNsock|
|00001840| 65 74 5f 63 72 65 61 74 | 65 69 6e 65 74 3e 0a 3c |et_creat|einet>.<|
|00001850| 3d 09 61 6d 6f 75 6e 74 | 20 6f 66 20 64 61 74 61 |=.amount| of data|
|00001860| 20 77 61 69 74 69 6e 67 | 0a 0a 52 65 61 64 73 20 | waiting|..Reads |
|00001870| 74 68 65 20 61 6d 6f 75 | 6e 74 20 6f 66 20 64 61 |the amou|nt of da|
|00001880| 74 61 20 77 61 69 74 69 | 6e 67 20 74 6f 20 62 65 |ta waiti|ng to be|
|00001890| 20 72 65 61 64 20 6f 6e | 20 74 68 65 20 73 6f 63 | read on| the soc|
|000018a0| 6b 65 74 2e 20 55 73 65 | 20 3c 46 4e 73 6f 63 6b |ket. Use| <FNsock|
|000018b0| 65 74 5f 72 65 61 64 64 | 61 74 61 3e 20 6f 72 20 |et_readd|ata> or |
|000018c0| 3c 46 4e 73 6f 63 6b 65 | 74 5f 72 65 61 64 6c 69 |<FNsocke|t_readli|
|000018d0| 6e 65 3e 20 74 6f 20 72 | 65 61 64 20 74 68 65 20 |ne> to r|ead the |
|000018e0| 64 61 74 61 2e 00 00 00 | 44 41 54 41 bf 00 00 00 |data....|DATA....|
|000018f0| 46 4e 73 6f 63 6b 65 74 | 5f 65 6f 66 28 73 6f 63 |FNsocket|_eof(soc|
|00001900| 6b 65 74 29 0a 23 50 61 | 72 65 6e 74 20 21 52 6f |ket).#Pa|rent !Ro|
|00001910| 6f 74 0a 3d 3e 09 2f 73 | 6f 63 6b 65 74 2f 09 68 |ot.=>./s|ocket/.h|
|00001920| 61 6e 64 6c 65 20 6f 66 | 20 73 6f 63 6b 65 74 20 |andle of| socket |
|00001930| 61 73 20 67 69 76 65 6e | 20 62 79 20 3c 46 4e 73 |as given| by <FNs|
|00001940| 6f 63 6b 65 74 5f 63 72 | 65 61 74 65 69 6e 65 74 |ocket_cr|eateinet|
|00001950| 3e 0a 3c 3d 09 54 52 55 | 45 20 69 66 20 74 68 65 |>.<=.TRU|E if the|
|00001960| 20 6f 74 68 65 72 20 65 | 6e 64 20 68 61 73 20 63 | other e|nd has c|
|00001970| 6c 6f 73 65 64 20 74 68 | 65 20 73 6f 63 6b 65 74 |losed th|e socket|
|00001980| 0a 0a 52 65 61 64 73 20 | 74 68 65 20 45 4f 46 20 |..Reads |the EOF |
|00001990| 63 6f 6e 64 69 74 69 6f | 6e 20 6f 6e 20 61 20 73 |conditio|n on a s|
|000019a0| 6f 63 6b 65 74 2e 0a 00 | 44 41 54 41 cf 01 00 00 |ocket...|DATA....|
|000019b0| 46 4e 73 6f 63 6b 65 74 | 5f 72 65 61 64 64 61 74 |FNsocket|_readdat|
|000019c0| 61 28 73 6f 63 6b 65 74 | 2c 73 74 61 72 74 29 0a |a(socket|,start).|
|000019d0| 23 50 61 72 65 6e 74 20 | 21 52 6f 6f 74 0a 3d 3e |#Parent |!Root.=>|
|000019e0| 09 2f 73 6f 63 6b 65 74 | 2f 09 68 61 6e 64 6c 65 |./socket|/.handle|
|000019f0| 20 6f 66 20 73 6f 63 6b | 65 74 20 61 73 20 67 69 | of sock|et as gi|
|00001a00| 76 65 6e 20 62 79 20 3c | 46 4e 73 6f 63 6b 65 74 |ven by <|FNsocket|
|00001a10| 5f 63 72 65 61 74 65 69 | 6e 65 74 3e 0a 09 2f 73 |_createi|net>../s|
|00001a20| 74 61 72 74 2f 09 09 69 | 66 20 75 6e 62 75 66 66 |tart/..i|f unbuff|
|00001a30| 65 72 65 64 2c 20 74 68 | 69 73 20 73 68 6f 75 6c |ered, th|is shoul|
|00001a40| 64 20 62 65 20 61 20 70 | 6f 69 6e 74 65 72 20 74 |d be a p|ointer t|
|00001a50| 6f 20 61 20 62 6c 6f 63 | 6b 20 6f 66 20 6d 65 6d |o a bloc|k of mem|
|00001a60| 6f 72 79 20 74 6f 20 72 | 65 61 64 20 74 68 65 20 |ory to r|ead the |
|00001a70| 64 61 74 61 20 69 6e 74 | 6f 0a 3c 3d 09 6c 65 6e |data int|o.<=.len|
|00001a80| 67 74 68 20 6f 66 20 64 | 61 74 61 20 72 65 61 64 |gth of d|ata read|
|00001a90| 0a 09 2f 73 74 61 72 74 | 2f 09 09 69 66 20 62 75 |../start|/..if bu|
|00001aa0| 66 66 65 72 65 64 2c 20 | 74 68 69 73 20 77 69 6c |ffered, |this wil|
|00001ab0| 6c 20 63 6f 6e 74 61 69 | 6e 20 74 68 65 20 70 6f |l contai|n the po|
|00001ac0| 69 6e 74 65 72 20 74 6f | 20 74 68 65 20 73 74 61 |inter to| the sta|
|00001ad0| 72 74 20 6f 66 20 74 68 | 65 20 62 75 66 66 65 72 |rt of th|e buffer|
|00001ae0| 0a 0a 52 65 61 64 73 20 | 74 68 65 20 64 61 74 61 |..Reads |the data|
|00001af0| 20 63 75 72 72 65 6e 74 | 6c 79 20 77 61 69 74 69 | current|ly waiti|
|00001b00| 6e 67 20 69 6e 74 6f 20 | 74 68 65 20 62 75 66 66 |ng into |the buff|
|00001b10| 65 72 20 73 70 65 63 69 | 66 69 65 64 2e 20 49 66 |er speci|fied. If|
|00001b20| 20 79 6f 75 20 61 72 65 | 20 75 73 69 6e 67 20 75 | you are| using u|
|00001b30| 6e 62 75 66 66 65 72 65 | 64 20 73 6f 63 6b 65 74 |nbuffere|d socket|
|00001b40| 73 20 74 68 65 6e 20 79 | 6f 75 20 77 69 6c 6c 20 |s then y|ou will |
|00001b50| 6e 65 65 64 20 32 6b 20 | 74 6f 20 62 65 20 61 6c |need 2k |to be al|
|00001b60| 6c 6f 63 61 74 65 64 20 | 74 6f 20 74 68 65 20 62 |located |to the b|
|00001b70| 75 66 66 65 72 2e 0a 00 | 44 41 54 41 69 02 00 00 |uffer...|DATAi...|
|00001b80| 46 4e 73 6f 63 6b 65 74 | 5f 72 65 61 64 6c 69 6e |FNsocket|_readlin|
|00001b90| 65 28 73 6f 63 6b 65 74 | 2c 73 74 61 72 74 29 0a |e(socket|,start).|
|00001ba0| 23 50 61 72 65 6e 74 20 | 21 52 6f 6f 74 0a 3d 3e |#Parent |!Root.=>|
|00001bb0| 09 2f 73 6f 63 6b 65 74 | 2f 09 68 61 6e 64 6c 65 |./socket|/.handle|
|00001bc0| 20 6f 66 20 73 6f 63 6b | 65 74 20 61 73 20 67 69 | of sock|et as gi|
|00001bd0| 76 65 6e 20 62 79 20 3c | 46 4e 73 6f 63 6b 65 74 |ven by <|FNsocket|
|00001be0| 5f 63 72 65 61 74 65 69 | 6e 65 74 3e 0a 3c 3d 09 |_createi|net>.<=.|
|00001bf0| 6c 65 6e 67 74 68 20 6f | 66 20 6c 69 6e 65 20 72 |length o|f line r|
|00001c00| 65 61 64 0a 09 2f 73 74 | 61 72 74 2f 09 09 74 68 |ead../st|art/..th|
|00001c10| 69 73 20 77 69 6c 6c 20 | 63 6f 6e 74 61 69 6e 20 |is will |contain |
|00001c20| 74 68 65 20 70 6f 69 6e | 74 65 72 20 74 6f 20 74 |the poin|ter to t|
|00001c30| 68 65 20 73 74 61 72 74 | 20 6f 66 20 74 68 65 20 |he start| of the |
|00001c40| 62 75 66 66 65 72 2c 20 | 6f 72 20 2d 31 20 69 66 |buffer, |or -1 if|
|00001c50| 20 6e 6f 20 6c 69 6e 65 | 20 63 6f 6d 70 6c 65 74 | no line| complet|
|00001c60| 65 20 68 61 73 20 62 65 | 65 6e 20 72 65 63 65 69 |e has be|en recei|
|00001c70| 76 65 64 0a 0a 52 65 61 | 64 73 20 74 68 65 20 64 |ved..Rea|ds the d|
|00001c80| 61 74 61 20 66 72 6f 6d | 20 74 68 65 20 73 6f 63 |ata from| the soc|
|00001c90| 6b 65 74 20 69 6e 74 6f | 20 74 68 65 20 62 75 66 |ket into| the buf|
|00001ca0| 66 65 72 20 61 6e 64 20 | 72 65 74 75 72 6e 73 20 |fer and |returns |
|00001cb0| 61 20 70 6f 69 6e 74 65 | 72 20 74 6f 20 61 20 27 |a pointe|r to a '|
|00001cc0| 6c 69 6e 65 27 20 6f 66 | 20 74 65 78 74 2c 20 72 |line' of| text, r|
|00001cd0| 65 74 75 72 6e 69 6e 67 | 20 74 68 65 20 6c 65 6e |eturning| the len|
|00001ce0| 67 74 68 2e 20 54 68 65 | 20 6c 69 6e 65 20 77 69 |gth. The| line wi|
|00001cf0| 6c 6c 20 62 65 20 69 6e | 20 61 20 74 65 6d 70 6f |ll be in| a tempo|
|00001d00| 72 61 72 79 20 62 75 66 | 66 65 72 20 77 68 69 63 |rary buf|fer whic|
|00001d10| 68 20 69 73 20 76 61 6c | 69 64 20 75 6e 74 69 6c |h is val|id until|
|00001d20| 20 74 68 65 20 6e 65 78 | 74 20 63 61 6c 6c 20 74 | the nex|t call t|
|00001d30| 6f 20 46 4e 73 6f 63 6b | 65 74 5f 72 65 61 64 6c |o FNsock|et_readl|
|00001d40| 69 6e 65 2e 20 54 68 69 | 73 20 63 61 6c 6c 20 69 |ine. Thi|s call i|
|00001d50| 73 20 75 73 75 61 6c 6c | 79 20 75 73 65 64 20 69 |s usuall|y used i|
|00001d60| 6e 20 63 6f 6e 6a 75 6e | 63 74 69 6f 6e 20 77 69 |n conjun|ction wi|
|00001d70| 74 68 20 74 68 65 20 3c | 46 4e 62 75 66 66 65 72 |th the <|FNbuffer|
|00001d80| 5f 67 65 74 77 6f 72 64 | 3e 20 61 6e 64 20 3c 46 |_getword|> and <F|
|00001d90| 4e 62 75 66 66 65 72 5f | 67 65 74 72 65 73 74 3e |Nbuffer_|getrest>|
|00001da0| 20 63 61 6c 6c 73 2e 0a | 0a 4e 6f 74 65 3a 20 59 | calls..|.Note: Y|
|00001db0| 6f 75 20 63 61 6e 6e 6f | 74 20 75 73 65 20 74 68 |ou canno|t use th|
|00001dc0| 69 73 20 63 61 6c 6c 20 | 77 69 74 68 20 75 6e 62 |is call |with unb|
|00001dd0| 75 66 66 65 72 65 64 20 | 73 6f 63 6b 65 74 73 2e |uffered |sockets.|
|00001de0| 0a 00 00 00 44 41 54 41 | dc 00 00 00 46 4e 73 6f |....DATA|....FNso|
|00001df0| 63 6b 65 74 5f 67 65 74 | 70 65 65 72 6e 61 6d 65 |cket_get|peername|
|00001e00| 28 73 6f 63 6b 65 74 29 | 0a 23 50 61 72 65 6e 74 |(socket)|.#Parent|
|00001e10| 20 21 52 6f 6f 74 0a 3d | 3e 09 2f 73 6f 63 6b 65 | !Root.=|>./socke|
|00001e20| 74 2f 09 68 61 6e 64 6c | 65 20 6f 66 20 73 6f 63 |t/.handl|e of soc|
|00001e30| 6b 65 74 20 61 73 20 67 | 69 76 65 6e 20 62 79 20 |ket as g|iven by |
|00001e40| 3c 46 4e 73 6f 63 6b 65 | 74 5f 63 72 65 61 74 65 |<FNsocke|t_create|
|00001e50| 69 6e 65 74 3e 0a 3c 3d | 09 6e 61 6d 65 20 6f 66 |inet>.<=|.name of|
|00001e60| 20 68 6f 73 74 20 74 6f | 20 77 68 69 63 68 20 73 | host to| which s|
|00001e70| 6f 63 6b 65 74 20 69 73 | 20 63 6f 6e 6e 65 63 74 |ocket is| connect|
|00001e80| 65 64 0a 0a 52 65 74 75 | 72 6e 73 20 74 68 65 20 |ed..Retu|rns the |
|00001e90| 6e 61 6d 65 20 6f 66 20 | 74 68 65 20 68 6f 73 74 |name of |the host|
|00001ea0| 20 61 74 20 74 68 65 20 | 6f 74 68 65 72 20 65 6e | at the |other en|
|00001eb0| 64 20 6f 66 20 74 68 65 | 20 73 6f 63 6b 65 74 2e |d of the| socket.|
|00001ec0| 44 41 54 41 59 01 00 00 | 46 4e 69 6e 65 74 5f 67 |DATAY...|FNinet_g|
|00001ed0| 65 74 73 65 72 76 62 79 | 6e 61 6d 65 28 6e 61 6d |etservby|name(nam|
|00001ee0| 65 24 2c 70 72 6f 74 6f | 24 29 0a 23 50 61 72 65 |e$,proto|$).#Pare|
|00001ef0| 6e 74 20 21 52 6f 6f 74 | 0a 3d 3e 09 7b 2f 7d 6e |nt !Root|.=>.{/}n|
|00001f00| 61 6d 65 24 7b 2f 7d 09 | 6e 61 6d 65 20 6f 66 20 |ame${/}.|name of |
|00001f10| 73 65 72 76 69 63 65 0a | 09 7b 2f 7d 70 72 6f 74 |service.|.{/}prot|
|00001f20| 6f 24 7b 2f 7d 09 70 72 | 6f 74 6f 63 6f 6c 20 74 |o${/}.pr|otocol t|
|00001f30| 6f 20 75 73 65 0a 3c 3d | 09 6e 75 6d 62 65 72 20 |o use.<=|.number |
|00001f40| 6f 66 20 70 6f 72 74 0a | 0a 52 65 61 64 73 20 74 |of port.|.Reads t|
|00001f50| 68 65 20 70 6f 72 74 20 | 6e 75 6d 62 65 72 20 77 |he port |number w|
|00001f60| 68 69 63 68 20 70 72 6f | 76 69 64 65 73 20 61 20 |hich pro|vides a |
|00001f70| 70 61 72 74 69 63 75 6c | 61 72 20 73 65 72 76 69 |particul|ar servi|
|00001f80| 63 65 20 66 72 6f 6d 20 | 74 68 65 20 53 65 72 76 |ce from |the Serv|
|00001f90| 69 63 65 73 20 66 69 6c | 65 20 69 6e 20 74 68 65 |ices fil|e in the|
|00001fa0| 20 21 49 6e 74 65 72 6e | 65 74 20 72 65 73 6f 75 | !Intern|et resou|
|00001fb0| 72 63 65 2e 20 54 68 65 | 20 6f 6e 6c 79 20 70 72 |rce. The| only pr|
|00001fc0| 6f 74 6f 63 6f 6c 73 20 | 77 68 69 63 68 20 68 61 |otocols |which ha|
|00001fd0| 76 65 20 61 6e 79 20 65 | 6e 74 72 69 65 73 20 61 |ve any e|ntries a|
|00001fe0| 72 65 20 74 63 70 20 61 | 6e 64 20 75 64 70 2e 0a |re tcp a|nd udp..|
|00001ff0| 0a 4e 6f 74 65 3a 20 54 | 68 69 73 20 63 61 6e 20 |.Note: T|his can |
|00002000| 74 61 6b 65 20 74 69 6d | 65 20 75 6e 64 65 72 20 |take tim|e under |
|00002010| 46 72 65 65 4e 65 74 2e | 0a 00 00 00 44 41 54 41 |FreeNet.|....DATA|
|00002020| f0 00 00 00 46 4e 69 6e | 65 74 5f 67 65 74 73 65 |....FNin|et_getse|
|00002030| 72 76 62 79 70 6f 72 74 | 28 70 6f 72 74 2c 70 72 |rvbyport|(port,pr|
|00002040| 6f 74 6f 24 29 0a 23 50 | 61 72 65 6e 74 20 21 52 |oto$).#P|arent !R|
|00002050| 6f 6f 74 0a 3d 3e 09 2f | 70 6f 72 74 2f 09 09 70 |oot.=>./|port/..p|
|00002060| 6f 72 74 20 6e 75 6d 62 | 65 72 0a 09 7b 2f 7d 70 |ort numb|er..{/}p|
|00002070| 72 6f 74 6f 24 7b 2f 7d | 09 70 72 6f 74 6f 63 6f |roto${/}|.protoco|
|00002080| 6c 20 74 6f 20 75 73 65 | 0a 3c 3d 09 6e 61 6d 65 |l to use|.<=.name|
|00002090| 20 6f 66 20 73 65 72 76 | 69 63 65 0a 0a 52 65 61 | of serv|ice..Rea|
|000020a0| 64 73 20 74 68 65 20 6e | 61 6d 65 20 6f 66 20 74 |ds the n|ame of t|
|000020b0| 68 65 20 73 65 72 76 69 | 63 65 20 77 68 69 63 68 |he servi|ce which|
|000020c0| 20 69 73 20 70 72 6f 76 | 69 64 65 64 20 6f 6e 20 | is prov|ided on |
|000020d0| 61 20 70 61 72 74 69 63 | 75 6c 61 72 20 70 6f 72 |a partic|ular por|
|000020e0| 74 2e 0a 0a 4e 6f 74 65 | 3a 20 54 68 69 73 20 63 |t...Note|: This c|
|000020f0| 61 6e 20 74 61 6b 65 20 | 74 69 6d 65 20 75 6e 64 |an take |time und|
|00002100| 65 72 20 46 72 65 65 4e | 65 74 2e 0a 44 41 54 41 |er FreeN|et..DATA|
|00002110| 8d 00 00 00 46 4e 69 6e | 65 74 5f 67 65 74 68 6f |....FNin|et_getho|
|00002120| 73 74 62 79 6e 61 6d 65 | 28 68 6f 73 74 24 29 0a |stbyname|(host$).|
|00002130| 23 50 61 72 65 6e 74 20 | 21 52 6f 6f 74 0a 3d 3e |#Parent |!Root.=>|
|00002140| 09 7b 2f 7d 68 6f 73 74 | 24 7b 2f 7d 09 6e 61 6d |.{/}host|${/}.nam|
|00002150| 65 20 6f 66 20 68 6f 73 | 74 0a 3c 3d 09 61 64 64 |e of hos|t.<=.add|
|00002160| 72 65 73 73 20 6f 66 20 | 68 6f 73 74 0a 0a 4c 6f |ress of |host..Lo|
|00002170| 6f 6b 73 20 75 70 20 74 | 68 65 20 61 64 64 72 65 |oks up t|he addre|
|00002180| 73 73 20 6f 66 20 61 20 | 70 61 72 74 69 63 75 6c |ss of a |particul|
|00002190| 61 72 20 68 6f 73 74 2e | 0a 00 00 00 44 41 54 41 |ar host.|....DATA|
|000021a0| 91 00 00 00 46 4e 69 6e | 65 74 5f 67 65 74 68 6f |....FNin|et_getho|
|000021b0| 73 74 62 79 61 64 64 72 | 28 61 64 64 72 65 73 73 |stbyaddr|(address|
|000021c0| 29 0a 23 50 61 72 65 6e | 74 20 21 52 6f 6f 74 0a |).#Paren|t !Root.|
|000021d0| 3d 3e 09 2f 61 64 64 72 | 65 73 73 2f 09 61 64 64 |=>./addr|ess/.add|
|000021e0| 72 65 73 73 20 6f 66 20 | 68 6f 73 74 0a 3c 3d 09 |ress of |host.<=.|
|000021f0| 6e 61 6d 65 20 6f 66 20 | 68 6f 73 74 0a 0a 4c 6f |name of |host..Lo|
|00002200| 6f 6b 73 20 75 70 20 74 | 68 65 20 6e 61 6d 65 20 |oks up t|he name |
|00002210| 6f 66 20 61 20 68 6f 73 | 74 20 66 72 6f 6d 20 69 |of a hos|t from i|
|00002220| 74 27 73 20 61 64 64 72 | 65 73 73 2e 0a 00 00 00 |t's addr|ess.....|
|00002230| 44 41 54 41 ef 00 00 00 | 46 4e 73 6f 63 6b 65 74 |DATA....|FNsocket|
|00002240| 5f 63 72 65 61 74 65 69 | 6e 65 74 0a 23 50 61 72 |_createi|net.#Par|
|00002250| 65 6e 74 20 21 52 6f 6f | 74 0a 3c 3d 09 2f 73 6f |ent !Roo|t.<=./so|
|00002260| 63 6b 65 74 2f 09 68 61 | 6e 64 6c 65 20 6f 66 20 |cket/.ha|ndle of |
|00002270| 6e 65 77 20 73 6f 63 6b | 65 74 0a 0a 43 72 65 61 |new sock|et..Crea|
|00002280| 74 65 73 20 61 20 73 6f | 63 6b 65 74 20 66 6f 72 |tes a so|cket for|
|00002290| 20 69 6e 74 65 72 6e 65 | 74 20 75 73 65 2e 0a 0a | interne|t use...|
|000022a0| 4e 6f 74 65 3a 20 54 68 | 65 20 68 61 6e 64 6c 65 |Note: Th|e handle|
|000022b0| 20 6f 66 20 74 68 65 20 | 73 6f 63 6b 65 74 20 69 | of the |socket i|
|000022c0| 73 20 4e 4f 54 20 74 68 | 61 74 20 75 73 65 64 20 |s NOT th|at used |
|000022d0| 64 69 72 65 63 74 6c 79 | 20 62 79 20 74 68 65 20 |directly| by the |
|000022e0| 53 6f 63 6b 65 74 20 53 | 57 49 73 2e 20 54 6f 20 |Socket S|WIs. To |
|000022f0| 72 65 61 64 20 74 68 61 | 74 20 79 6f 75 20 73 68 |read tha|t you sh|
|00002300| 6f 75 6c 64 20 75 73 65 | 20 7b 2f 7d 73 6f 63 6b |ould use| {/}sock|
|00002310| 25 28 73 6f 63 6b 65 74 | 29 21 30 7b 2f 7d 2e 00 |%(socket|)!0{/}..|
|00002320| 44 41 54 41 c8 03 00 00 | 46 4e 62 75 66 66 65 72 |DATA....|FNbuffer|
|00002330| 5f 67 65 74 77 6f 72 64 | 28 73 74 61 72 74 2c 6c |_getword|(start,l|
|00002340| 65 6e 2c 70 74 72 29 0a | 23 50 61 72 65 6e 74 20 |en,ptr).|#Parent |
|00002350| 21 52 6f 6f 74 0a 3d 3e | 09 2f 73 74 61 72 74 2f |!Root.=>|./start/|
|00002360| 09 73 74 61 72 74 20 6f | 66 20 64 61 74 61 0a 09 |.start o|f data..|
|00002370| 2f 6c 65 6e 2f 09 6c 65 | 6e 67 74 68 20 6f 66 20 |/len/.le|ngth of |
|00002380| 64 61 74 61 20 69 6e 20 | 62 6c 6f 63 6b 0a 09 2f |data in |block../|
|00002390| 70 74 72 2f 09 6f 66 66 | 73 65 74 20 74 6f 20 66 |ptr/.off|set to f|
|000023a0| 69 72 73 74 20 62 79 74 | 65 20 74 6f 20 72 65 61 |irst byt|e to rea|
|000023b0| 64 0a 3c 3d 09 77 6f 72 | 64 20 72 65 61 64 2c 20 |d.<=.wor|d read, |
|000023c0| 6f 72 20 4e 55 4c 4c 20 | 69 66 20 6e 6f 6e 65 2e |or NULL |if none.|
|000023d0| 0a 09 2f 70 74 72 2f 09 | 75 70 64 61 74 65 64 0a |../ptr/.|updated.|
|000023e0| 0a 52 65 61 64 73 20 61 | 20 74 65 78 74 75 61 6c |.Reads a| textual|
|000023f0| 20 77 6f 72 64 20 66 72 | 6f 6d 20 74 68 65 20 62 | word fr|om the b|
|00002400| 6c 6f 63 6b 20 73 70 65 | 63 69 66 69 65 64 2c 20 |lock spe|cified, |
|00002410| 73 6b 69 70 70 69 6e 67 | 20 6c 65 61 64 69 6e 67 |skipping| leading|
|00002420| 20 73 70 61 63 65 73 2e | 0a 0a 43 6c 69 63 6b 20 | spaces.|..Click |
|00002430| 3c 68 65 72 65 3d 3e 2e | 65 78 61 6d 70 6c 65 3e |<here=>.|example>|
|00002440| 20 66 6f 72 20 61 6e 20 | 65 78 61 6d 70 6c 65 2e | for an |example.|
|00002450| 0a 23 53 75 62 70 61 67 | 65 20 65 78 61 6d 70 6c |.#Subpag|e exampl|
|00002460| 65 0a 46 4e 62 75 66 66 | 65 72 5f 67 65 74 77 6f |e.FNbuff|er_getwo|
|00002470| 72 64 20 65 78 61 6d 70 | 6c 65 73 0a 54 68 69 73 |rd examp|les.This|
|00002480| 20 69 73 20 6a 75 73 74 | 20 61 20 73 69 6d 70 6c | is just| a simpl|
|00002490| 65 20 65 78 61 6d 70 6c | 65 20 74 6f 20 77 61 69 |e exampl|e to wai|
|000024a0| 74 20 66 6f 72 20 48 45 | 4c 4f 20 5c 3c 68 6f 73 |t for HE|LO \<hos|
|000024b0| 74 6e 61 6d 65 3e 20 61 | 73 20 6d 69 67 68 74 20 |tname> a|s might |
|000024c0| 62 65 20 64 6f 6e 65 20 | 62 79 20 61 6e 20 53 4d |be done |by an SM|
|000024d0| 54 50 20 73 65 72 76 65 | 72 2e 0a 23 66 43 6f 64 |TP serve|r..#fCod|
|000024e0| 65 0a 52 45 50 45 41 54 | 0a 20 6c 65 6e 3d 46 4e |e.REPEAT|. len=FN|
|000024f0| 73 6f 63 6b 65 74 5f 72 | 65 61 64 6c 69 6e 65 28 |socket_r|eadline(|
|00002500| 6d 61 69 6e 73 6f 63 6b | 65 74 25 2c 73 74 61 72 |mainsock|et%,star|
|00002510| 74 29 0a 20 49 46 20 6c | 65 6e 3e 30 20 54 48 45 |t). IF l|en>0 THE|
|00002520| 4e 0a 20 20 70 74 72 3d | 30 0a 20 20 61 24 3d 46 |N. ptr=|0. a$=F|
|00002530| 4e 62 75 66 66 65 72 5f | 67 65 74 77 6f 72 64 28 |Nbuffer_|getword(|
|00002540| 73 74 61 72 74 2c 6c 65 | 6e 2c 70 74 72 29 0a 20 |start,le|n,ptr). |
|00002550| 20 49 46 20 61 24 3d 22 | 48 45 4c 4f 22 20 54 48 | IF a$="|HELO" TH|
|00002560| 45 4e 0a 20 20 20 61 24 | 3d 46 4e 62 75 66 66 65 |EN. a$|=FNbuffe|
|00002570| 72 5f 67 65 74 77 6f 72 | 64 28 73 74 61 72 74 2c |r_getwor|d(start,|
|00002580| 6c 65 6e 2c 70 74 72 29 | 0a 20 20 20 49 46 20 61 |len,ptr)|. IF a|
|00002590| 24 5c 3c 3e 46 4e 73 6f | 63 6b 65 74 5f 67 65 74 |$\<>FNso|cket_get|
|000025a0| 70 65 65 72 6e 61 6d 65 | 28 6d 61 69 6e 73 6f 63 |peername|(mainsoc|
|000025b0| 6b 65 74 25 29 20 54 48 | 45 4e 0a 20 20 20 20 7b |ket%) TH|EN. {|
|000025c0| 66 3b 2f 7d 2e 2e 2e 20 | 74 68 65 79 20 67 61 76 |f;/}... |they gav|
|000025d0| 65 20 75 73 20 74 68 65 | 20 77 72 6f 6e 67 20 68 |e us the| wrong h|
|000025e0| 6f 73 74 20 6e 61 6d 65 | 7b 2f 3b 66 43 6f 64 65 |ost name|{/;fCode|
|000025f0| 7d 0a 20 20 20 45 4c 53 | 45 0a 20 20 20 20 7b 66 |}. ELS|E. {f|
|00002600| 3b 2f 7d 2e 2e 2e 20 74 | 68 65 79 20 67 61 76 65 |;/}... t|hey gave|
|00002610| 20 75 73 20 74 68 65 20 | 72 69 67 68 74 20 68 6f | us the |right ho|
|00002620| 73 74 20 6e 61 6d 65 7b | 2f 3b 66 43 6f 64 65 7d |st name{|/;fCode}|
|00002630| 0a 20 20 20 45 4e 44 49 | 46 0a 20 20 45 4c 53 45 |. ENDI|F. ELSE|
|00002640| 0a 20 20 20 7b 66 3b 2f | 7d 2e 2e 2e 20 64 6f 20 |. {f;/|}... do |
|00002650| 73 6f 6d 65 74 68 69 6e | 67 20 65 6c 73 65 20 27 |somethin|g else '|
|00002660| 63 6f 73 20 69 74 27 73 | 20 6e 6f 74 20 48 45 4c |cos it's| not HEL|
|00002670| 4f 7b 2f 3b 66 43 6f 64 | 65 7d 0a 20 20 45 4e 44 |O{/;fCod|e}. END|
|00002680| 49 46 0a 20 45 4e 44 49 | 46 0a 55 4e 54 49 4c 20 |IF. ENDI|F.UNTIL |
|00002690| 46 4e 73 6f 63 6b 65 74 | 5f 65 6f 66 28 6d 61 69 |FNsocket|_eof(mai|
|000026a0| 6e 73 6f 63 6b 65 74 25 | 29 0a 23 66 0a 0a 4e 6f |nsocket%|).#f..No|
|000026b0| 74 65 3a 20 49 20 68 61 | 76 65 6e 27 74 20 74 65 |te: I ha|ven't te|
|000026c0| 73 74 65 64 20 74 68 69 | 73 2c 20 69 74 27 73 20 |sted thi|s, it's |
|000026d0| 69 73 20 6f 6e 6c 79 20 | 66 6f 72 20 69 6e 66 6f |is only |for info|
|000026e0| 72 6d 61 74 69 6f 6e 0a | 44 41 54 41 a5 02 00 00 |rmation.|DATA....|
|000026f0| 46 4e 62 75 66 66 65 72 | 5f 67 65 74 72 65 73 74 |FNbuffer|_getrest|
|00002700| 28 73 74 61 72 74 2c 6c | 65 6e 2c 70 74 72 29 0a |(start,l|en,ptr).|
|00002710| 23 50 61 72 65 6e 74 20 | 21 52 6f 6f 74 0a 3d 3e |#Parent |!Root.=>|
|00002720| 09 2f 73 74 61 72 74 2f | 09 73 74 61 72 74 20 6f |./start/|.start o|
|00002730| 66 20 64 61 74 61 0a 09 | 2f 6c 65 6e 2f 09 6c 65 |f data..|/len/.le|
|00002740| 6e 67 74 68 20 6f 66 20 | 64 61 74 61 20 69 6e 20 |ngth of |data in |
|00002750| 62 6c 6f 63 6b 0a 09 2f | 70 74 72 2f 09 6f 66 66 |block../|ptr/.off|
|00002760| 73 65 74 20 74 6f 20 66 | 69 72 73 74 20 62 79 74 |set to f|irst byt|
|00002770| 65 20 74 6f 20 72 65 61 | 64 0a 3c 3d 09 6c 69 6e |e to rea|d.<=.lin|
|00002780| 65 20 72 65 61 64 2c 20 | 6f 72 20 4e 55 4c 4c 20 |e read, |or NULL |
|00002790| 69 66 20 6e 6f 6e 65 2e | 0a 09 2f 70 74 72 2f 09 |if none.|../ptr/.|
|000027a0| 75 70 64 61 74 65 64 0a | 0a 52 65 61 64 73 20 74 |updated.|.Reads t|
|000027b0| 68 65 20 72 65 73 74 20 | 6f 66 20 74 68 65 20 6c |he rest |of the l|
|000027c0| 69 6e 65 20 66 72 6f 6d | 20 74 68 65 20 62 75 66 |ine from| the buf|
|000027d0| 66 65 72 2c 20 73 74 6f | 70 70 69 6e 67 20 77 68 |fer, sto|pping wh|
|000027e0| 65 6e 20 61 20 4c 46 20 | 28 26 30 41 29 20 6f 72 |en a LF |(&0A) or|
|000027f0| 20 43 52 20 28 26 30 44 | 29 20 69 73 20 65 6e 63 | CR (&0D|) is enc|
|00002800| 6f 75 6e 74 65 72 65 64 | 2e 0a 0a 43 6c 69 63 6b |ountered|...Click|
|00002810| 20 3c 68 65 72 65 3d 3e | 2e 65 78 61 6d 70 6c 65 | <here=>|.example|
|00002820| 3e 20 66 6f 72 20 61 6e | 20 65 78 61 6d 70 6c 65 |> for an| example|
|00002830| 2e 0a 23 53 75 62 70 61 | 67 65 20 65 78 61 6d 70 |..#Subpa|ge examp|
|00002840| 6c 65 0a 46 4e 62 75 66 | 66 65 72 5f 67 65 74 72 |le.FNbuf|fer_getr|
|00002850| 65 73 74 20 65 78 61 6d | 70 6c 65 73 0a 54 68 69 |est exam|ples.Thi|
|00002860| 73 20 69 73 20 6a 75 73 | 74 20 61 20 73 69 6d 70 |s is jus|t a simp|
|00002870| 6c 65 20 65 78 61 6d 70 | 6c 65 20 74 6f 20 74 68 |le examp|le to th|
|00002880| 72 6f 77 20 77 68 61 74 | 65 76 65 72 20 63 6f 6d |row what|ever com|
|00002890| 65 73 20 66 72 6f 6d 20 | 74 68 65 20 70 6f 72 74 |es from |the port|
|000028a0| 20 61 74 20 74 68 65 20 | 73 63 72 65 65 6e 2e 0a | at the |screen..|
|000028b0| 0a 23 66 43 6f 64 65 0a | 52 45 50 45 41 54 0a 20 |.#fCode.|REPEAT. |
|000028c0| 6c 65 6e 3d 46 4e 73 6f | 63 6b 65 74 5f 72 65 61 |len=FNso|cket_rea|
|000028d0| 64 6c 69 6e 65 28 6d 61 | 69 6e 73 6f 63 6b 65 74 |dline(ma|insocket|
|000028e0| 25 2c 73 74 61 72 74 29 | 0a 20 49 46 20 6c 65 6e |%,start)|. IF len|
|000028f0| 3e 30 20 54 48 45 4e 0a | 20 20 61 24 3d 46 4e 62 |>0 THEN.| a$=FNb|
|00002900| 75 66 66 65 72 5f 67 65 | 74 72 65 73 74 28 73 74 |uffer_ge|trest(st|
|00002910| 61 72 74 2c 6c 65 6e 2c | 70 74 72 29 0a 20 20 50 |art,len,|ptr). P|
|00002920| 52 49 4e 54 20 61 24 0a | 20 45 4e 44 49 46 0a 55 |RINT a$.| ENDIF.U|
|00002930| 4e 54 49 4c 20 46 4e 73 | 6f 63 6b 65 74 5f 65 6f |NTIL FNs|ocket_eo|
|00002940| 66 28 6d 61 69 6e 73 6f | 63 6b 65 74 25 29 0a 23 |f(mainso|cket%).#|
|00002950| 66 0a 0a 4e 6f 74 65 3a | 20 49 20 68 61 76 65 6e |f..Note:| I haven|
|00002960| 27 74 20 74 65 73 74 65 | 64 20 74 68 69 73 2c 20 |'t teste|d this, |
|00002970| 69 74 27 73 20 69 73 20 | 6f 6e 6c 79 20 66 6f 72 |it's is |only for|
|00002980| 20 69 6e 66 6f 72 6d 61 | 74 69 6f 6e 0a 00 00 00 | informa|tion....|
|00002990| 44 41 54 41 76 03 00 00 | 53 6f 63 6b 65 74 4c 69 |DATAv...|SocketLi|
|000029a0| 62 20 68 65 6c 70 0a 23 | 41 6c 69 67 6e 20 43 65 |b help.#|Align Ce|
|000029b0| 6e 74 72 65 0a 7b 66 68 | 33 7d 4a 46 53 68 61 72 |ntre.{fh|3}JFShar|
|000029c0| 65 64 20 53 6f 63 6b 65 | 74 4c 69 62 20 76 31 2e |ed Socke|tLib v1.|
|000029d0| 30 32 7b 66 7d 0a 23 41 | 6c 69 67 6e 20 4c 65 66 |02{f}.#A|lign Lef|
|000029e0| 74 0a 0a 54 68 65 20 53 | 6f 63 6b 65 74 20 4c 69 |t..The S|ocket Li|
|000029f0| 62 72 61 72 79 20 69 73 | 20 61 20 42 61 73 69 63 |brary is| a Basic|
|00002a00| 20 4c 69 62 72 61 72 79 | 20 66 69 6c 65 20 77 68 | Library| file wh|
|00002a10| 69 63 68 20 70 72 6f 76 | 69 64 65 73 20 61 6e 20 |ich prov|ides an |
|00002a20| 69 6e 74 65 72 66 61 63 | 65 20 74 6f 20 74 68 65 |interfac|e to the|
|00002a30| 20 3c 49 6e 74 65 72 6e | 65 74 3d 3e 49 6e 74 65 | <Intern|et=>Inte|
|00002a40| 72 6e 65 74 3a 21 52 6f | 6f 74 3e 20 53 6f 63 6b |rnet:!Ro|ot> Sock|
|00002a50| 65 74 73 20 53 57 49 20 | 63 61 6c 6c 73 2e 20 49 |ets SWI |calls. I|
|00002a60| 6e 20 63 6f 6e 6a 75 6e | 63 74 69 6f 6e 20 77 69 |n conjun|ction wi|
|00002a70| 74 68 20 74 68 65 20 3c | 57 69 6d 70 4c 69 62 3d |th the <|WimpLib=|
|00002a80| 3e 57 69 6d 70 4c 69 62 | 3a 21 52 6f 6f 74 3e 20 |>WimpLib|:!Root> |
|00002a90| 61 6e 64 20 4a 46 53 68 | 61 72 65 64 20 73 6b 65 |and JFSh|ared ske|
|00002aa0| 6c 65 74 6f 6e 20 61 70 | 70 6c 69 63 61 74 69 6f |leton ap|plicatio|
|00002ab0| 6e 20 74 68 69 73 20 70 | 72 6f 76 69 64 65 73 20 |n this p|rovides |
|00002ac0| 61 20 76 65 72 79 20 73 | 69 6d 70 6c 65 20 77 61 |a very s|imple wa|
|00002ad0| 79 20 6f 66 20 63 72 65 | 61 74 69 6e 67 20 61 70 |y of cre|ating ap|
|00002ae0| 70 6c 69 63 61 74 69 6f | 6e 73 20 77 68 69 63 68 |plicatio|ns which|
|00002af0| 20 63 61 6e 20 74 61 6c | 6b 20 74 6f 20 70 6f 72 | can tal|k to por|
|00002b00| 74 73 20 61 63 72 6f 73 | 73 20 74 68 65 20 69 6e |ts acros|s the in|
|00002b10| 74 65 72 6e 65 74 2c 20 | 6f 72 20 61 6e 20 69 6e |ternet, |or an in|
|00002b20| 74 72 61 6e 65 74 2e 20 | 54 68 69 73 20 68 65 6c |tranet. |This hel|
|00002b30| 70 20 66 69 6c 65 20 64 | 65 74 61 69 6c 73 20 74 |p file d|etails t|
|00002b40| 68 65 20 72 6f 75 74 69 | 6e 65 73 20 70 72 6f 76 |he routi|nes prov|
|00002b50| 69 64 65 64 20 69 6e 20 | 53 6f 63 6b 65 74 4c 69 |ided in |SocketLi|
|00002b60| 62 2e 0a 0a 54 68 65 20 | 53 6f 63 6b 65 74 20 4c |b...The |Socket L|
|00002b70| 69 62 72 61 72 79 20 69 | 73 20 72 65 66 65 72 65 |ibrary i|s refere|
|00002b80| 6e 63 65 64 20 62 79 20 | 5c 3c 53 6f 63 6b 65 74 |nced by |\<Socket|
|00002b90| 4c 69 62 72 61 72 79 24 | 46 69 6c 65 3e 20 61 6e |Library$|File> an|
|00002ba0| 64 20 73 68 6f 75 6c 64 | 20 62 65 20 6c 6f 61 64 |d should| be load|
|00002bb0| 65 64 20 77 69 74 68 20 | 3a 0a 7b 66 43 6f 64 65 |ed with |:.{fCode|
|00002bc0| 7d 4c 49 42 52 41 52 59 | 20 22 5c 3c 53 6f 63 6b |}LIBRARY| "\<Sock|
|00002bd0| 65 74 4c 69 62 72 61 72 | 79 24 46 69 6c 65 3e 22 |etLibrar|y$File>"|
|00002be0| 3a 50 52 4f 43 69 6e 69 | 74 73 6f 63 6b 65 74 73 |:PROCini|tsockets|
|00002bf0| 7b 66 7d 0a 0a 54 68 65 | 20 4a 46 53 68 61 72 65 |{f}..The| JFShare|
|00002c00| 64 20 61 70 70 6c 69 63 | 61 74 69 6f 6e 20 69 73 |d applic|ation is|
|00002c10| 20 a9 20 3c 4a 75 73 74 | 69 6e 20 46 6c 65 74 63 | . <Just|in Fletc|
|00002c20| 68 65 72 3d 3e 46 69 6c | 65 74 79 70 65 73 3a 41 |her=>Fil|etypes:A|
|00002c30| 75 74 68 6f 72 73 5f 4a | 75 73 74 69 6e 46 6c 65 |uthors_J|ustinFle|
|00002c40| 74 63 68 65 72 3e 2c 20 | 31 39 39 35 20 61 6e 64 |tcher>, |1995 and|
|00002c50| 20 69 73 20 72 65 6c 65 | 61 73 65 64 20 69 6e 74 | is rele|ased int|
|00002c60| 6f 20 74 68 65 20 50 75 | 62 6c 69 63 20 44 6f 6d |o the Pu|blic Dom|
|00002c70| 61 69 6e 20 77 69 74 68 | 20 74 68 65 20 73 61 6d |ain with| the sam|
|00002c80| 65 20 72 65 73 74 72 69 | 63 74 69 6f 6e 73 20 61 |e restri|ctions a|
|00002c90| 73 20 73 75 62 73 69 73 | 74 20 69 6e 20 6d 6f 73 |s subsis|t in mos|
|00002ca0| 74 20 50 44 20 73 6f 66 | 74 77 61 72 65 2e 20 54 |t PD sof|tware. T|
|00002cb0| 68 69 73 20 69 6e 63 6c | 75 64 65 73 20 74 68 65 |his incl|udes the|
|00002cc0| 20 66 61 63 74 20 74 68 | 61 74 20 77 68 65 6e 20 | fact th|at when |
|00002cd0| 64 69 73 74 72 69 62 75 | 74 65 64 20 74 68 65 20 |distribu|ted the |
|00002ce0| 65 6e 74 69 72 65 20 61 | 70 70 6c 69 63 61 74 69 |entire a|pplicati|
|00002cf0| 6f 6e 20 6d 75 73 74 20 | 72 65 6d 61 69 6e 20 69 |on must |remain i|
|00002d00| 6e 74 61 63 74 2e 00 00 | |ntact...| |
+--------+-------------------------+-------------------------+--------+--------+