home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1992-09-11 | 4.5 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
66%
| dexvert
| Compact Compressed (Unix) (archive/compact)
| ext
| Supported |
10%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, Fri Sep 11 13:27:17 1992, modified Fri Sep 11 13:27:17 1992, creator 'MPS ', type ASCII, 3762 bytes "GUSISocketTest.c" , at 0xf32 594 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 10 47 55 53 49 53 6f | 63 6b 65 74 54 65 73 74 |..GUSISo|cketTest|
|00000010| 2e 63 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.c......|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 0e b2 00 | 00 02 52 a6 d6 87 75 a6 |........|..R...u.|
|00000060| d6 87 75 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..u.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 fe 7d 00 00 |........|.....}..|
|00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000c0| 2a 2a 2a 2a 2a 2a 0d 46 | 69 6c 65 09 09 3a 09 47 |******.F|ile..:.G|
|000000d0| 55 53 49 09 09 09 09 09 | 2d 09 47 72 61 6e 64 20 |USI.....|-.Grand |
|000000e0| 55 6e 69 66 69 65 64 20 | 53 6f 63 6b 65 74 20 49 |Unified |Socket I|
|000000f0| 6e 74 65 72 66 61 63 65 | 0d 46 69 6c 65 09 09 3a |nterface|.File..:|
|00000100| 09 47 55 53 49 53 6f 63 | 6b 65 74 54 65 73 74 2e |.GUSISoc|ketTest.|
|00000110| 63 09 2d 09 53 6f 63 6b | 65 74 20 74 65 73 74 69 |c.-.Sock|et testi|
|00000120| 6e 67 20 67 65 61 72 0d | 41 75 74 68 6f 72 09 3a |ng gear.|Author.:|
|00000130| 09 4d 61 74 74 68 69 61 | 73 20 4e 65 65 72 61 63 |.Matthia|s Neerac|
|00000140| 68 65 72 20 3c 6e 65 65 | 72 69 40 69 69 73 2e 65 |her <nee|ri@iis.e|
|00000150| 74 68 7a 2e 63 68 3e 0d | 53 74 61 72 74 65 64 09 |thz.ch>.|Started.|
|00000160| 3a 09 32 35 4a 75 6c 39 | 32 09 09 09 09 09 09 09 |:.25Jul9|2.......|
|00000170| 09 4c 61 6e 67 75 61 67 | 65 09 3a 09 4d 50 57 20 |.Languag|e.:.MPW |
|00000180| 43 0d 09 09 09 09 30 38 | 53 65 70 39 32 09 4d 4e |C.....08|Sep92.MN|
|00000190| 09 46 61 63 74 6f 72 20 | 6f 75 74 20 6d 6f 72 65 |.Factor |out more|
|000001a0| 20 63 6f 6d 6d 6f 6e 20 | 63 6f 64 65 0d 4c 61 73 | common |code.Las|
|000001b0| 74 09 09 3a 09 30 38 53 | 65 70 39 32 0d 2a 2a 2a |t..:.08S|ep92.***|
|000001c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000001f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000200| 2a 2a 2f 0d 0d 23 69 6e | 63 6c 75 64 65 20 3c 47 |**/..#in|clude <G|
|00000210| 55 53 49 2e 68 3e 0d 23 | 69 6e 63 6c 75 64 65 20 |USI.h>.#|include |
|00000220| 3c 47 55 53 49 54 65 73 | 74 2e 68 3e 0d 23 69 6e |<GUSITes|t.h>.#in|
|00000230| 63 6c 75 64 65 20 3c 54 | 79 70 65 73 2e 68 3e 0d |clude <T|ypes.h>.|
|00000240| 23 69 6e 63 6c 75 64 65 | 20 3c 73 74 64 69 6f 2e |#include| <stdio.|
|00000250| 68 3e 0d 23 69 6e 63 6c | 75 64 65 20 3c 66 63 6e |h>.#incl|ude <fcn|
|00000260| 74 6c 2e 68 3e 0d 23 69 | 6e 63 6c 75 64 65 20 3c |tl.h>.#i|nclude <|
|00000270| 73 74 72 69 6e 67 2e 68 | 3e 0d 23 69 6e 63 6c 75 |string.h|>.#inclu|
|00000280| 64 65 20 3c 73 79 73 2f | 65 72 72 6e 6f 2e 68 3e |de <sys/|errno.h>|
|00000290| 0d 0d 69 6e 74 09 73 6f | 63 6b 09 09 3d 09 2d 31 |..int.so|ck..=.-1|
|000002a0| 3b 0d 69 6e 74 09 61 63 | 63 73 6f 63 6b 09 3d 09 |;.int.ac|csock.=.|
|000002b0| 2d 31 3b 0d 0d 76 6f 69 | 64 20 43 6c 6f 73 65 28 |-1;..voi|d Close(|
|000002c0| 63 68 61 72 2c 20 63 68 | 61 72 2c 20 63 6f 6e 73 |char, ch|ar, cons|
|000002d0| 74 20 63 68 61 72 20 2a | 29 0d 7b 0d 09 69 66 20 |t char *|).{..if |
|000002e0| 28 63 6c 6f 73 65 28 73 | 6f 63 6b 29 29 09 7b 0d |(close(s|ock)).{.|
|000002f0| 09 09 70 72 69 6e 74 66 | 28 22 23 20 63 6c 6f 73 |..printf|("# clos|
|00000300| 65 28 29 20 72 65 74 75 | 72 6e 65 64 20 65 72 72 |e() retu|rned err|
|00000310| 6f 72 20 25 73 5c 6e 22 | 2c 20 45 78 70 6c 61 69 |or %s\n"|, Explai|
|00000320| 6e 28 29 29 3b 0d 09 09 | 57 68 65 72 65 28 29 3b |n());...|Where();|
|00000330| 0d 09 7d 0d 09 0d 09 73 | 6f 63 6b 09 09 3d 09 61 |..}....s|ock..=.a|
|00000340| 63 63 73 6f 63 6b 3b 0d | 09 61 63 63 73 6f 63 6b |ccsock;.|.accsock|
|00000350| 09 3d 09 2d 31 3b 0d 7d | 0d 0d 76 6f 69 64 20 4c |.=.-1;.}|..void L|
|00000360| 69 73 74 65 6e 28 63 68 | 61 72 2c 20 63 68 61 72 |isten(ch|ar, char|
|00000370| 2c 20 63 6f 6e 73 74 20 | 63 68 61 72 20 2a 29 0d |, const |char *).|
|00000380| 7b 0d 09 69 66 20 28 73 | 6f 63 6b 20 3d 3d 20 2d |{..if (s|ock == -|
|00000390| 31 29 09 7b 0d 09 09 70 | 72 69 6e 74 66 28 22 23 |1).{...p|rintf("#|
|000003a0| 20 73 6f 63 6b 65 74 20 | 69 73 20 6e 6f 74 20 6f | socket |is not o|
|000003b0| 70 65 6e 5c 6e 22 29 3b | 0d 09 09 57 68 65 72 65 |pen\n");|...Where|
|000003c0| 28 29 3b 0d 09 09 0d 09 | 09 72 65 74 75 72 6e 3b |();.....|.return;|
|000003d0| 0d 09 7d 0d 0d 09 69 66 | 20 28 6c 69 73 74 65 6e |..}...if| (listen|
|000003e0| 28 73 6f 63 6b 2c 20 35 | 29 29 09 7b 0d 09 09 70 |(sock, 5|)).{...p|
|000003f0| 72 69 6e 74 66 28 22 23 | 20 6c 69 73 74 65 6e 28 |rintf("#| listen(|
|00000400| 29 20 72 65 74 75 72 6e | 65 64 20 65 72 72 6f 72 |) return|ed error|
|00000410| 20 25 73 5c 6e 22 2c 20 | 45 78 70 6c 61 69 6e 28 | %s\n", |Explain(|
|00000420| 29 29 3b 0d 09 09 57 68 | 65 72 65 28 29 3b 0d 09 |));...Wh|ere();..|
|00000430| 7d 0d 7d 0d 0d 76 6f 69 | 64 20 57 72 69 74 65 28 |}.}..voi|d Write(|
|00000440| 63 68 61 72 2c 20 63 68 | 61 72 2c 20 63 6f 6e 73 |char, ch|ar, cons|
|00000450| 74 20 63 68 61 72 20 2a | 20 6c 69 6e 65 29 0d 7b |t char *| line).{|
|00000460| 0d 09 69 6e 74 20 6c 65 | 6e 09 3d 09 73 74 72 6c |..int le|n.=.strl|
|00000470| 65 6e 28 6c 69 6e 65 29 | 3b 0d 09 69 6e 74 20 70 |en(line)|;..int p|
|00000480| 61 72 74 3b 0d 0d 09 69 | 66 20 28 73 6f 63 6b 20 |art;...i|f (sock |
|00000490| 3d 3d 20 2d 31 29 09 7b | 0d 09 09 70 72 69 6e 74 |== -1).{|...print|
|000004a0| 66 28 22 23 20 73 6f 63 | 6b 65 74 20 69 73 20 6e |f("# soc|ket is n|
|000004b0| 6f 74 20 6f 70 65 6e 5c | 6e 22 29 3b 0d 09 09 57 |ot open\|n");...W|
|000004c0| 68 65 72 65 28 29 3b 0d | 09 09 09 0d 09 09 72 65 |here();.|......re|
|000004d0| 74 75 72 6e 3b 0d 09 7d | 0d 09 0d 09 66 6f 72 20 |turn;..}|....for |
|000004e0| 28 3b 20 6c 65 6e 3b 20 | 6c 65 6e 20 2d 3d 20 70 |(; len; |len -= p|
|000004f0| 61 72 74 2c 20 6c 69 6e | 65 20 2b 3d 20 70 61 72 |art, lin|e += par|
|00000500| 74 29 20 7b 0d 09 09 70 | 61 72 74 20 3d 20 77 72 |t) {...p|art = wr|
|00000510| 69 74 65 28 73 6f 63 6b | 2c 20 6c 69 6e 65 2c 20 |ite(sock|, line, |
|00000520| 6c 65 6e 29 3b 0d 09 09 | 69 66 20 28 70 61 72 74 |len);...|if (part|
|00000530| 20 3c 20 30 29 09 7b 0d | 09 09 09 70 72 69 6e 74 | < 0).{.|...print|
|00000540| 66 28 22 23 20 77 72 69 | 74 65 28 5c 22 25 73 5c |f("# wri|te(\"%s\|
|00000550| 22 29 20 72 65 74 75 72 | 6e 65 64 20 65 72 72 6f |") retur|ned erro|
|00000560| 72 20 25 73 5c 6e 22 2c | 20 6c 69 6e 65 2c 20 45 |r %s\n",| line, E|
|00000570| 78 70 6c 61 69 6e 28 29 | 29 3b 0d 09 09 09 57 68 |xplain()|);....Wh|
|00000580| 65 72 65 28 29 3b 0d 09 | 09 09 0d 09 09 09 62 72 |ere();..|......br|
|00000590| 65 61 6b 3b 0d 09 09 7d | 09 09 0d 09 7d 0d 7d 0d |eak;...}|....}.}.|
|000005a0| 0d 76 6f 69 64 20 52 65 | 61 64 28 63 68 61 72 2c |.void Re|ad(char,|
|000005b0| 20 63 68 61 72 2c 20 63 | 6f 6e 73 74 20 63 68 61 | char, c|onst cha|
|000005c0| 72 20 2a 29 0d 7b 0d 09 | 69 6e 74 09 09 6c 65 6e |r *).{..|int..len|
|000005d0| 3b 0d 09 63 68 61 72 20 | 09 09 62 75 66 5b 35 30 |;..char |..buf[50|
|000005e0| 30 5d 3b 0d 09 63 68 61 | 72 20 2a 09 6c 69 6e 65 |0];..cha|r *.line|
|000005f0| 3b 0d 09 0d 09 69 66 20 | 28 73 6f 63 6b 20 3d 3d |;....if |(sock ==|
|00000600| 20 2d 31 29 09 7b 0d 09 | 09 70 72 69 6e 74 66 28 | -1).{..|.printf(|
|00000610| 22 23 20 73 6f 63 6b 65 | 74 20 69 73 20 6e 6f 74 |"# socke|t is not|
|00000620| 20 6f 70 65 6e 5c 6e 22 | 29 3b 0d 09 09 57 68 65 | open\n"|);...Whe|
|00000630| 72 65 28 29 3b 0d 09 09 | 09 0d 09 09 72 65 74 75 |re();...|....retu|
|00000640| 72 6e 3b 0d 09 7d 0d 0d | 09 6c 65 6e 09 3d 09 72 |rn;..}..|.len.=.r|
|00000650| 65 61 64 28 73 6f 63 6b | 2c 20 62 75 66 2c 20 35 |ead(sock|, buf, 5|
|00000660| 30 30 29 3b 0d 09 0d 09 | 69 66 20 28 6c 65 6e 20 |00);....|if (len |
|00000670| 3c 20 30 29 09 7b 0d 09 | 09 70 72 69 6e 74 66 28 |< 0).{..|.printf(|
|00000680| 22 23 20 72 65 61 64 28 | 29 20 72 65 74 75 72 6e |"# read(|) return|
|00000690| 65 64 20 65 72 72 6f 72 | 20 25 73 5c 6e 22 2c 20 |ed error| %s\n", |
|000006a0| 45 78 70 6c 61 69 6e 28 | 29 29 3b 0d 09 7d 20 65 |Explain(|));..} e|
|000006b0| 6c 73 65 20 7b 0d 09 09 | 62 75 66 5b 6c 65 6e 5d |lse {...|buf[len]|
|000006c0| 20 3d 20 30 3b 0d 09 09 | 70 72 69 6e 74 66 28 22 | = 0;...|printf("|
|000006d0| 23 20 72 65 61 64 28 29 | 20 72 65 74 75 72 6e 65 |# read()| returne|
|000006e0| 64 3a 5c 6e 22 29 3b 0d | 09 09 0d 09 09 66 6f 72 |d:\n");.|.....for|
|000006f0| 20 28 6c 69 6e 65 20 3d | 20 73 74 72 74 6f 6b 28 | (line =| strtok(|
|00000700| 62 75 66 2c 20 22 5c 6e | 5c 72 22 29 3b 20 6c 69 |buf, "\n|\r"); li|
|00000710| 6e 65 3b 20 6c 69 6e 65 | 20 3d 20 73 74 72 74 6f |ne; line| = strto|
|00000720| 6b 28 6e 69 6c 2c 20 22 | 5c 6e 5c 72 22 29 29 0d |k(nil, "|\n\r")).|
|00000730| 09 09 09 70 72 69 6e 74 | 66 28 22 23 20 25 73 5c |...print|f("# %s\|
|00000740| 6e 22 2c 20 6c 69 6e 65 | 29 3b 0d 09 7d 0d 09 0d |n", line|);..}...|
|00000750| 09 57 68 65 72 65 28 29 | 3b 0d 7d 0d 0d 76 6f 69 |.Where()|;.}..voi|
|00000760| 64 20 53 65 6c 65 63 74 | 28 63 68 61 72 2c 20 63 |d Select|(char, c|
|00000770| 68 61 72 2c 20 63 6f 6e | 73 74 20 63 68 61 72 20 |har, con|st char |
|00000780| 2a 29 0d 7b 0d 09 69 6e | 74 09 09 09 09 72 65 73 |*).{..in|t....res|
|00000790| 3b 0d 09 66 64 5f 73 65 | 74 09 09 09 72 64 66 64 |;..fd_se|t...rdfd|
|000007a0| 73 3b 0d 09 66 64 5f 73 | 65 74 09 09 09 77 72 66 |s;..fd_s|et...wrf|
|000007b0| 64 73 3b 0d 09 66 64 5f | 73 65 74 09 09 09 65 78 |ds;..fd_|set...ex|
|000007c0| 66 64 73 3b 0d 09 73 74 | 72 75 63 74 20 74 69 6d |fds;..st|ruct tim|
|000007d0| 65 76 61 6c 09 64 65 6c | 61 79 3b 0d 09 0d 09 69 |eval.del|ay;....i|
|000007e0| 66 20 28 73 6f 63 6b 20 | 3d 3d 20 2d 31 29 09 7b |f (sock |== -1).{|
|000007f0| 0d 09 09 70 72 69 6e 74 | 66 28 22 23 20 73 6f 63 |...print|f("# soc|
|00000800| 6b 65 74 20 69 73 20 6e | 6f 74 20 6f 70 65 6e 5c |ket is n|ot open\|
|00000810| 6e 22 29 3b 0d 09 09 57 | 68 65 72 65 28 29 3b 0d |n");...W|here();.|
|00000820| 09 09 09 0d 09 09 72 65 | 74 75 72 6e 3b 0d 09 7d |......re|turn;..}|
|00000830| 0d 09 0d 09 46 44 5f 5a | 45 52 4f 28 26 72 64 66 |....FD_Z|ERO(&rdf|
|00000840| 64 73 29 3b 0d 09 46 44 | 5f 5a 45 52 4f 28 26 77 |ds);..FD|_ZERO(&w|
|00000850| 72 66 64 73 29 3b 0d 09 | 46 44 5f 5a 45 52 4f 28 |rfds);..|FD_ZERO(|
|00000860| 26 65 78 66 64 73 29 3b | 0d 09 0d 09 46 44 5f 53 |&exfds);|....FD_S|
|00000870| 45 54 28 73 6f 63 6b 2c | 20 26 72 64 66 64 73 29 |ET(sock,| &rdfds)|
|00000880| 3b 0d 09 46 44 5f 53 45 | 54 28 73 6f 63 6b 2c 20 |;..FD_SE|T(sock, |
|00000890| 26 77 72 66 64 73 29 3b | 0d 09 46 44 5f 53 45 54 |&wrfds);|..FD_SET|
|000008a0| 28 73 6f 63 6b 2c 20 26 | 65 78 66 64 73 29 3b 0d |(sock, &|exfds);.|
|000008b0| 09 0d 09 64 65 6c 61 79 | 2e 74 76 5f 73 65 63 09 |...delay|.tv_sec.|
|000008c0| 3d 09 31 30 3b 0d 09 64 | 65 6c 61 79 2e 74 76 5f |=.10;..d|elay.tv_|
|000008d0| 75 73 65 63 09 3d 09 30 | 3b 0d 09 0d 09 72 65 73 |usec.=.0|;....res|
|000008e0| 20 3d 20 73 65 6c 65 63 | 74 28 73 6f 63 6b 2b 31 | = selec|t(sock+1|
|000008f0| 2c 20 26 72 64 66 64 73 | 2c 20 26 77 72 66 64 73 |, &rdfds|, &wrfds|
|00000900| 2c 20 26 65 78 66 64 73 | 2c 20 26 64 65 6c 61 79 |, &exfds|, &delay|
|00000910| 29 3b 0d 09 0d 09 69 66 | 20 28 72 65 73 20 3c 20 |);....if| (res < |
|00000920| 30 29 09 7b 0d 09 09 70 | 72 69 6e 74 66 28 22 23 |0).{...p|rintf("#|
|00000930| 20 73 65 6c 65 63 74 28 | 29 20 72 65 74 75 72 6e | select(|) return|
|00000940| 65 64 20 65 72 72 6f 72 | 20 25 73 5c 6e 22 2c 20 |ed error| %s\n", |
|00000950| 45 78 70 6c 61 69 6e 28 | 29 29 3b 0d 09 7d 20 65 |Explain(|));..} e|
|00000960| 6c 73 65 20 69 66 20 28 | 21 72 65 73 29 20 7b 0d |lse if (|!res) {.|
|00000970| 09 09 70 72 69 6e 74 66 | 28 22 23 20 73 65 6c 65 |..printf|("# sele|
|00000980| 63 74 28 29 20 74 69 6d | 65 64 20 6f 75 74 5c 6e |ct() tim|ed out\n|
|00000990| 22 29 3b 0d 09 7d 20 65 | 6c 73 65 20 7b 0d 09 09 |");..} e|lse {...|
|000009a0| 70 72 69 6e 74 66 28 0d | 09 09 09 22 23 20 73 65 |printf(.|..."# se|
|000009b0| 6c 65 63 74 28 29 20 72 | 65 74 75 72 6e 65 64 20 |lect() r|eturned |
|000009c0| 25 73 25 73 25 73 5c 6e | 22 2c 20 0d 09 09 09 46 |%s%s%s\n|", ....F|
|000009d0| 44 5f 49 53 53 45 54 28 | 73 6f 63 6b 2c 20 26 72 |D_ISSET(|sock, &r|
|000009e0| 64 66 64 73 29 20 3f 20 | 22 63 61 6e 52 65 61 64 |dfds) ? |"canRead|
|000009f0| 20 22 20 3a 20 22 22 2c | 0d 09 09 09 46 44 5f 49 | " : "",|....FD_I|
|00000a00| 53 53 45 54 28 73 6f 63 | 6b 2c 20 26 77 72 66 64 |SSET(soc|k, &wrfd|
|00000a10| 73 29 20 3f 20 22 63 61 | 6e 57 72 69 74 65 20 22 |s) ? "ca|nWrite "|
|00000a20| 20 3a 20 22 22 2c 0d 09 | 09 09 46 44 5f 49 53 53 | : "",..|..FD_ISS|
|00000a30| 45 54 28 73 6f 63 6b 2c | 20 26 65 78 66 64 73 29 |ET(sock,| &exfds)|
|00000a40| 20 3f 20 22 65 78 63 65 | 70 74 69 6f 6e 20 22 20 | ? "exce|ption " |
|00000a50| 3a 20 22 22 29 3b 0d 09 | 7d 0d 09 0d 09 57 68 65 |: "");..|}....Whe|
|00000a60| 72 65 28 29 3b 0d 7d 0d | 0d 76 6f 69 64 20 54 6f |re();.}.|.void To|
|00000a70| 67 42 6c 6b 28 63 68 61 | 72 2c 20 63 68 61 72 2c |gBlk(cha|r, char,|
|00000a80| 20 63 6f 6e 73 74 20 63 | 68 61 72 20 2a 29 0d 7b | const c|har *).{|
|00000a90| 0d 09 69 6e 74 09 62 6c | 6f 63 6b 3b 0d 09 0d 09 |..int.bl|ock;....|
|00000aa0| 73 77 69 74 63 68 20 28 | 66 63 6e 74 6c 28 73 6f |switch (|fcntl(so|
|00000ab0| 63 6b 2c 20 46 5f 47 45 | 54 46 4c 2c 20 30 29 29 |ck, F_GE|TFL, 0))|
|00000ac0| 09 7b 0d 09 63 61 73 65 | 20 30 3a 0d 09 09 62 6c |.{..case| 0:...bl|
|00000ad0| 6f 63 6b 09 3d 09 31 3b | 0d 09 09 62 72 65 61 6b |ock.=.1;|...break|
|00000ae0| 3b 0d 09 64 65 66 61 75 | 6c 74 3a 0d 09 09 62 6c |;..defau|lt:...bl|
|00000af0| 6f 63 6b 20 3d 20 09 30 | 3b 0d 09 09 62 72 65 61 |ock = .0|;...brea|
|00000b00| 6b 3b 0d 09 63 61 73 65 | 20 2d 31 3a 0d 09 09 70 |k;..case| -1:...p|
|00000b10| 72 69 6e 74 66 28 22 23 | 20 66 63 6e 74 6c 28 46 |rintf("#| fcntl(F|
|00000b20| 5f 47 45 54 46 4c 29 20 | 72 65 74 75 72 6e 65 64 |_GETFL) |returned|
|00000b30| 20 65 72 72 6f 72 20 25 | 73 5c 6e 22 2c 20 45 78 | error %|s\n", Ex|
|00000b40| 70 6c 61 69 6e 28 29 29 | 3b 0d 09 09 57 68 65 72 |plain())|;...Wher|
|00000b50| 65 28 29 3b 0d 09 09 0d | 09 09 72 65 74 75 72 6e |e();....|..return|
|00000b60| 3b 0d 09 7d 0d 09 0d 09 | 69 66 20 28 69 6f 63 74 |;..}....|if (ioct|
|00000b70| 6c 28 73 6f 63 6b 2c 20 | 46 49 4f 4e 42 49 4f 2c |l(sock, |FIONBIO,|
|00000b80| 20 26 62 6c 6f 63 6b 29 | 29 0d 09 09 70 72 69 6e | &block)|)...prin|
|00000b90| 74 66 28 0d 09 09 09 22 | 23 20 69 6f 63 74 6c 28 |tf(...."|# ioctl(|
|00000ba0| 46 49 4f 4e 42 49 4f 2c | 20 25 73 29 20 72 65 74 |FIONBIO,| %s) ret|
|00000bb0| 75 72 6e 65 64 20 65 72 | 72 6f 72 20 25 73 5c 6e |urned er|ror %s\n|
|00000bc0| 22 2c 20 0d 09 09 09 62 | 6c 6f 63 6b 20 3f 20 22 |", ....b|lock ? "|
|00000bd0| 74 72 75 65 22 20 3a 20 | 22 66 61 6c 73 65 22 2c |true" : |"false",|
|00000be0| 20 0d 09 09 09 45 78 70 | 6c 61 69 6e 28 29 29 3b | ....Exp|lain());|
|00000bf0| 0d 09 65 6c 73 65 0d 09 | 09 70 72 69 6e 74 66 28 |..else..|.printf(|
|00000c00| 22 23 20 53 6f 63 6b 65 | 74 20 69 73 20 6e 6f 77 |"# Socke|t is now|
|00000c10| 20 25 73 5c 6e 22 2c 20 | 62 6c 6f 63 6b 20 3f 20 | %s\n", |block ? |
|00000c20| 22 6e 6f 6e 62 6c 6f 63 | 6b 69 6e 67 22 20 3a 20 |"nonbloc|king" : |
|00000c30| 22 62 6c 6f 63 6b 69 6e | 67 22 29 3b 0d 09 0d 09 |"blockin|g");....|
|00000c40| 57 68 65 72 65 28 29 3b | 0d 7d 0d 0d 76 6f 69 64 |Where();|.}..void|
|00000c50| 20 4e 52 65 61 64 28 63 | 68 61 72 2c 20 63 68 61 | NRead(c|har, cha|
|00000c60| 72 2c 20 63 6f 6e 73 74 | 20 63 68 61 72 20 2a 29 |r, const| char *)|
|00000c70| 0d 7b 0d 09 69 6e 74 09 | 6e 72 65 61 64 3b 0d 09 |.{..int.|nread;..|
|00000c80| 0d 09 69 66 20 28 69 6f | 63 74 6c 28 73 6f 63 6b |..if (io|ctl(sock|
|00000c90| 2c 20 46 49 4f 4e 52 45 | 41 44 2c 20 26 6e 72 65 |, FIONRE|AD, &nre|
|00000ca0| 61 64 29 29 0d 09 09 70 | 72 69 6e 74 66 28 22 23 |ad))...p|rintf("#|
|00000cb0| 20 69 6f 63 74 6c 28 46 | 49 4f 4e 52 45 41 44 29 | ioctl(F|IONREAD)|
|00000cc0| 20 72 65 74 75 72 6e 65 | 64 20 65 72 72 6f 72 20 | returne|d error |
|00000cd0| 25 73 5c 6e 22 2c 20 45 | 78 70 6c 61 69 6e 28 29 |%s\n", E|xplain()|
|00000ce0| 29 3b 0d 09 65 6c 73 65 | 0d 09 09 70 72 69 6e 74 |);..else|...print|
|00000cf0| 66 28 22 23 20 25 64 20 | 62 79 74 65 73 20 77 61 |f("# %d |bytes wa|
|00000d00| 69 74 69 6e 67 20 74 6f | 20 62 65 20 72 65 61 64 |iting to| be read|
|00000d10| 5c 6e 22 2c 20 6e 72 65 | 61 64 29 3b 0d 09 0d 09 |\n", nre|ad);....|
|00000d20| 57 68 65 72 65 28 29 3b | 0d 7d 0d 0d 76 6f 69 64 |Where();|.}..void|
|00000d30| 20 41 64 64 53 6f 63 6b | 65 74 43 6f 6d 6d 61 6e | AddSock|etComman|
|00000d40| 64 73 28 29 0d 7b 0d 09 | 43 4f 4d 4d 41 4e 44 28 |ds().{..|COMMAND(|
|00000d50| 27 6c 27 2c 20 27 69 27 | 2c 20 4c 69 73 74 65 6e |'l', 'i'|, Listen|
|00000d60| 2c 20 20 22 22 2c 20 09 | 09 09 09 22 4c 69 73 74 |, "", .|..."List|
|00000d70| 65 6e 20 74 6f 20 73 6f | 63 6b 65 74 22 29 3b 0d |en to so|cket");.|
|00000d80| 09 43 4f 4d 4d 41 4e 44 | 28 27 63 27 2c 20 27 6c |.COMMAND|('c', 'l|
|00000d90| 27 2c 20 43 6c 6f 73 65 | 2c 20 20 09 22 22 2c 20 |', Close|, ."", |
|00000da0| 09 09 09 09 22 43 6c 6f | 73 65 20 73 6f 63 6b 65 |...."Clo|se socke|
|00000db0| 74 22 29 3b 0d 09 43 4f | 4d 4d 41 4e 44 28 27 77 |t");..CO|MMAND('w|
|00000dc0| 27 2c 20 27 72 27 2c 20 | 57 72 69 74 65 2c 20 09 |', 'r', |Write, .|
|00000dd0| 22 74 65 78 74 22 2c 20 | 09 09 09 22 57 72 69 74 |"text", |..."Writ|
|00000de0| 65 20 61 20 6c 69 6e 65 | 22 29 3b 0d 09 43 4f 4d |e a line|");..COM|
|00000df0| 4d 41 4e 44 28 27 72 27 | 2c 20 27 64 27 2c 20 52 |MAND('r'|, 'd', R|
|00000e00| 65 61 64 2c 20 20 09 22 | 22 2c 20 09 09 09 09 22 |ead, ."|", ...."|
|00000e10| 52 65 61 64 22 29 3b 0d | 09 43 4f 4d 4d 41 4e 44 |Read");.|.COMMAND|
|00000e20| 28 27 73 27 2c 20 27 65 | 27 2c 20 53 65 6c 65 63 |('s', 'e|', Selec|
|00000e30| 74 2c 20 20 22 22 2c 20 | 09 09 09 09 22 53 65 6c |t, "", |...."Sel|
|00000e40| 65 63 74 20 61 20 73 6f | 63 6b 65 74 22 29 3b 0d |ect a so|cket");.|
|00000e50| 09 43 4f 4d 4d 41 4e 44 | 28 27 74 27 2c 20 27 62 |.COMMAND|('t', 'b|
|00000e60| 27 2c 20 54 6f 67 42 6c | 6b 2c 20 20 22 22 2c 20 |', TogBl|k, "", |
|00000e70| 09 09 09 09 22 54 6f 67 | 67 6c 65 20 62 6c 6f 63 |...."Tog|gle bloc|
|00000e80| 6b 69 6e 67 20 73 74 61 | 74 75 73 22 29 3b 0d 09 |king sta|tus");..|
|00000e90| 43 4f 4d 4d 41 4e 44 28 | 27 6e 27 2c 20 27 72 27 |COMMAND(|'n', 'r'|
|00000ea0| 2c 20 4e 52 65 61 64 2c | 09 22 22 2c 09 09 09 09 |, NRead,|."",....|
|00000eb0| 22 4e 75 6d 62 65 72 20 | 6f 66 20 62 79 74 65 73 |"Number |of bytes|
|00000ec0| 20 74 6f 20 62 65 20 72 | 65 61 64 22 29 3b 0d 7d | to be r|ead");.}|
|00000ed0| 0d 0d 76 6f 69 64 20 43 | 6c 65 61 6e 75 70 53 6f |..void C|leanupSo|
|00000ee0| 63 6b 65 74 73 28 29 0d | 7b 0d 09 69 66 20 28 73 |ckets().|{..if (s|
|00000ef0| 6f 63 6b 20 21 3d 20 2d | 31 29 0d 09 09 63 6c 6f |ock != -|1)...clo|
|00000f00| 73 65 28 73 6f 63 6b 29 | 3b 0d 09 69 66 20 28 61 |se(sock)|;..if (a|
|00000f10| 63 63 73 6f 63 6b 20 21 | 3d 20 2d 31 29 0d 09 09 |ccsock !|= -1)...|
|00000f20| 63 6c 6f 73 65 28 61 63 | 63 73 6f 63 6b 29 3b 0d |close(ac|csock);.|
|00000f30| 7d 0d 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |}.......|........|
|00000f40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000f70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000f80| 00 00 01 00 00 00 01 ea | 00 00 00 ea 00 00 00 68 |........|.......h|
|00000f90| 00 01 5b b9 00 00 00 00 | 00 00 00 00 00 00 00 00 |..[.....|........|
|00000fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000fb0| 10 47 55 53 49 53 6f 63 | 6b 65 74 54 65 73 74 2e |.GUSISoc|ketTest.|
|00000fc0| 63 53 02 00 00 00 54 45 | 58 54 4d 50 53 20 00 00 |cS....TE|XTMPS ..|
|00000fd0| 00 00 54 45 58 54 4d 50 | 53 20 00 00 03 74 00 40 |..TEXTMP|S ...t.@|
|00000fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000ff0| 00 00 a6 97 03 4f 00 00 | 0e b2 00 00 02 52 00 00 |.....O..|.....R..|
|00001000| 00 00 00 00 00 00 00 00 | 00 00 01 60 25 00 00 01 |........|...`%...|
|00001010| 5b bc 09 55 57 69 6e 64 | 6f 77 2e 68 00 00 00 00 |[..UWind|ow.h....|
|00001020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001030| 00 00 00 00 01 84 25 00 | 00 01 5b f9 10 55 4d 61 |......%.|..[..UMa|
|00001040| 63 41 70 70 47 6c 6f 62 | 61 6c 73 2e 70 00 00 00 |cAppGlob|als.p...|
|00001050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 01 f2 |........|........|
|00001060| 25 00 00 01 5b f9 0d 55 | 56 69 65 77 53 65 72 76 |%...[..U|ViewServ|
|00001070| 65 72 2e 70 00 00 00 00 | 00 00 00 00 00 00 00 00 |er.p....|........|
|00001080| 00 00 00 5e 1c 6a 91 5a | 3f e5 32 30 00 04 00 00 |...^.j.Z|?.20....|
|00001090| 00 00 00 00 00 00 a6 f6 | 6f 82 a6 d6 4f 35 a6 71 |........|o...O5.q|
|000010a0| 49 ef 00 00 bf be 00 01 | 00 28 00 01 05 47 55 53 |I.......|.(...GUS|
|000010b0| 49 ba 00 05 6e 65 65 72 | 69 00 01 31 00 10 47 55 |I...neer|i..1..GU|
|000010c0| 53 49 53 6f 63 6b 65 74 | 54 65 73 74 2e 63 00 00 |SISocket|Test.c..|
|000010d0| 00 00 0e 31 2e 30 62 32 | 20 62 61 73 65 6c 69 6e |...1.0b2| baselin|
|000010e0| 65 00 00 00 00 48 00 09 | 4d 6f 6e 61 63 6f 00 20 |e....H..|Monaco. |
|000010f0| 6d 6f 76 69 6e 67 20 2a | 2f 0d 63 68 61 72 09 09 |moving *|/.char..|
|00001100| 69 6e 66 69 6c 65 6e 61 | 00 06 00 03 00 55 00 08 |infilena|.....U..|
|00001110| 01 ce 02 29 00 55 00 08 | 01 ce 02 29 a6 d6 4f 35 |...).U..|...)..O5|
|00001120| 00 00 06 83 00 00 06 83 | 00 00 03 47 01 00 00 00 |........|...G....|
|00001130| 00 16 00 01 00 00 01 02 | 00 00 01 2d 0b 4c 61 73 |........|...-.Las|
|00001140| 74 43 68 61 6e 67 65 00 | 00 00 00 1e 00 55 00 08 |tChange.|.....U..|
|00001150| 01 ce 02 29 00 55 00 08 | 01 ce 02 29 00 00 03 47 |...).U..|...)...G|
|00001160| 00 00 00 00 00 00 00 00 | 00 00 00 00 01 00 00 00 |........|........|
|00001170| 01 ea 00 00 00 ea 00 00 | 00 68 00 49 aa b4 12 00 |........|.h.I....|
|00001180| 00 00 00 1c 00 5e 00 01 | 4d 50 53 52 00 02 00 12 |.....^..|MPSR....|
|00001190| 63 6b 69 64 00 00 00 36 | 03 ed ff ff 00 00 00 62 |ckid...6|.......b|
|000011a0| 00 00 00 00 03 ef ff ff | 00 00 00 ae 00 00 00 00 |........|........|
|000011b0| 03 f0 ff ff 00 00 00 c8 | 00 4f dc 80 00 80 00 00 |........|.O......|
|000011c0| 00 00 00 00 00 00 00 00 | 09 50 72 6f 6a 65 63 74 |........|.Project|
|000011d0| 6f 72 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |or......|........|
|000011e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+