Add a chapter on sockets programming.

Submitted by:	G. Adam Stanislav
This commit is contained in:
Murray Stokely 2001-06-22 08:49:14 +00:00
parent 5d90cc69a0
commit 33c100c32d
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=9666
16 changed files with 2840 additions and 24 deletions

View file

@ -1,5 +1,5 @@
#
# $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/Makefile,v 1.3 2001/05/11 10:27:00 murray Exp $
# $FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/Makefile,v 1.4 2001/05/14 02:52:41 murray Exp $
#
# Build the FreeBSD Developers' Handbook.
#
@ -13,6 +13,9 @@ FORMATS?= html-split
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# Images
IMAGES= sockets/layers.eps sockets/sain.eps sockets/sainfill.eps sockets/sainlsb.eps sockets/sainmsb.eps sockets/sainserv.eps sockets/serv.eps sockets/serv2.eps sockets/slayers.eps
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
@ -23,6 +26,8 @@ SRCS= book.sgml
SRCS+= tools/chapter.sgml
SRCS+= secure/chapter.sgml
SRCS+= locking/chapter.sgml
SRCS+= sockets/chapter.sgml
SRCS+= ipv6/chapter.sgml
SRCS+= isa/chapter.sgml
SRCS+= pci/chapter.sgml
SRCS+= usb/chapter.sgml
@ -30,7 +35,6 @@ SRCS+= scsi/chapter.sgml
SRCS+= x86/chapter.sgml
SRCS+= vm/chapter.sgml
SRCS+= dma/chapter.sgml
SRCS+= ipv6/chapter.sgml
# Entities

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/book.sgml,v 1.19 2001/05/14 02:52:41 murray Exp $
$FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/book.sgml,v 1.20 2001/06/21 03:38:13 chris Exp $
-->
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@ -275,14 +275,7 @@
<part id="networking">
<title>Networking</title>
<chapter id="sockets">
<title>Sockets</title>
<para>Sockets, bpf, IP, TCP, UDP, ICMP, OSI, bridging,
firewalling, NAT, switching, etc</para>
</chapter>
&chap.sockets;
&chap.ipv6;
</part>

View file

@ -6,7 +6,7 @@
Chapters should be listed in the order in which they are referenced.
$FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/chapters.ent,v 1.6 2001/05/11 10:20:33 murray Exp $
$FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/chapters.ent,v 1.7 2001/05/14 02:52:41 murray Exp $
-->
<!-- Part one -->
@ -30,6 +30,7 @@
<!-- No significant material yet, still in book.sgml -->
<!-- Part seven -->
<!ENTITY chap.sockets SYSTEM "sockets/chapter.sgml">
<!ENTITY chap.ipv6 SYSTEM "ipv6/chapter.sgml">
<!-- Part eight -->

View file

@ -1,5 +1,5 @@
#
# $FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/Makefile,v 1.3 2001/05/11 10:27:00 murray Exp $
# $FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/Makefile,v 1.4 2001/05/14 02:52:41 murray Exp $
#
# Build the FreeBSD Developers' Handbook.
#
@ -13,6 +13,9 @@ FORMATS?= html-split
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
# Images
IMAGES= sockets/layers.eps sockets/sain.eps sockets/sainfill.eps sockets/sainlsb.eps sockets/sainmsb.eps sockets/sainserv.eps sockets/serv.eps sockets/serv2.eps sockets/slayers.eps
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
@ -23,6 +26,8 @@ SRCS= book.sgml
SRCS+= tools/chapter.sgml
SRCS+= secure/chapter.sgml
SRCS+= locking/chapter.sgml
SRCS+= sockets/chapter.sgml
SRCS+= ipv6/chapter.sgml
SRCS+= isa/chapter.sgml
SRCS+= pci/chapter.sgml
SRCS+= usb/chapter.sgml
@ -30,7 +35,6 @@ SRCS+= scsi/chapter.sgml
SRCS+= x86/chapter.sgml
SRCS+= vm/chapter.sgml
SRCS+= dma/chapter.sgml
SRCS+= ipv6/chapter.sgml
# Entities

View file

@ -1,7 +1,7 @@
<!--
The FreeBSD Documentation Project
$FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/book.sgml,v 1.19 2001/05/14 02:52:41 murray Exp $
$FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/book.sgml,v 1.20 2001/06/21 03:38:13 chris Exp $
-->
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
@ -275,14 +275,7 @@
<part id="networking">
<title>Networking</title>
<chapter id="sockets">
<title>Sockets</title>
<para>Sockets, bpf, IP, TCP, UDP, ICMP, OSI, bridging,
firewalling, NAT, switching, etc</para>
</chapter>
&chap.sockets;
&chap.ipv6;
</part>

View file

@ -6,7 +6,7 @@
Chapters should be listed in the order in which they are referenced.
$FreeBSD: doc/en_US.ISO_8859-1/books/developers-handbook/chapters.ent,v 1.6 2001/05/11 10:20:33 murray Exp $
$FreeBSD: doc/en_US.ISO8859-1/books/developers-handbook/chapters.ent,v 1.7 2001/05/14 02:52:41 murray Exp $
-->
<!-- Part one -->
@ -30,6 +30,7 @@
<!-- No significant material yet, still in book.sgml -->
<!-- Part seven -->
<!ENTITY chap.sockets SYSTEM "sockets/chapter.sgml">
<!ENTITY chap.ipv6 SYSTEM "ipv6/chapter.sgml">
<!-- Part eight -->

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,92 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -10 -10 110 102
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
%%EndProlog
%%BeginSetup
%%EndSetup
% Outer layer - Ethernet
0 0 moveto
0 92 rlineto
100 0 rlineto
0 -92 rlineto
closepath
2 90 moveto
0 -88 rlineto
96 0 rlineto
0 88 rlineto
closepath
fill
% IP
4 4 moveto
0 72 rlineto
92 0 rlineto
0 -72 rlineto
closepath
stroke
% TCP
7 7 moveto
0 58 rlineto
86 0 rlineto
0 -58 rlineto
closepath
stroke
% HTTP
10 10 moveto
0 44 rlineto
80 0 rlineto
0 -44 rlineto
closepath
stroke
% PNG
13 13 moveto
0 30 rlineto
74 0 rlineto
0 -30 rlineto
closepath
stroke
% Data
16 16 moveto
0 16.5 rlineto
68 0 rlineto
0 -16.5 rlineto
closepath
fill
/Courier findfont 10 scalefont setfont
26 81 moveto
(Ethernet) show
43 68 moveto
(IP) show
40 57 moveto
(TCP) show
37 46 moveto
(HTTP) show
39.6 35 moveto
(PNG) show
1 setcolor
28 22 moveto
(D A T A) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,88 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -20 -10 290 85
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
/box {
moveto
0 70 rlineto
280 0 rlineto
0 -70 rlineto
closepath
} bind def
/bits32 {
moveto
276 0 rlineto
0 15 rlineto
-276 0 rlineto
closepath
} bind def
/bits16 {
moveto
137 0 rlineto
0 15 rlineto
-137 0 rlineto
} bind def
/bits8 {
moveto
67.5 0 rlineto
0 15 rlineto
-67.5 0 rlineto
} bind def
%%EndProlog
%%BeginSetup
%%EndSetup
5 7 div setcolor
1 1 moveto
0 34 rlineto
278 0 rlineto
0 -34 rlineto
closepath
1 52 moveto
0 16 rlineto
68.5 0 rlineto
0 -16 rlineto
closepath
fill
0 setcolor
0 0 box
2 2 bits32
2 19 bits32
2 36 bits32
2 53 bits8
71.5 53 bits8
141 53 bits16
fill
/Courier findfont 10 scalefont setfont
32 72 moveto (0) show
240 72 moveto (3) show
171.5 72 moveto (2) show
101.5 72 moveto (1) show
-10 57 moveto (0) show
-10 40 moveto (4) show
-10 23 moveto (8) show
-16 6 moveto (12) show
/Helvetica-bold findfont 10 scalefont setfont
110 40 moveto (IP Address) show
196 57 moveto (Port) show
90 57 moveto (Family) show
32 57 moveto (0) show
138 23 moveto (0) show
138 6 moveto (0) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,88 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -20 -10 290 85
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
/box {
moveto
0 70 rlineto
280 0 rlineto
0 -70 rlineto
closepath
} bind def
/bits32 {
moveto
276 0 rlineto
0 15 rlineto
-276 0 rlineto
closepath
} bind def
/bits16 {
moveto
137 0 rlineto
0 15 rlineto
-137 0 rlineto
} bind def
/bits8 {
moveto
67.5 0 rlineto
0 15 rlineto
-67.5 0 rlineto
} bind def
%%EndProlog
%%BeginSetup
%%EndSetup
5 7 div setcolor
1 1 moveto
0 34 rlineto
278 0 rlineto
0 -34 rlineto
closepath
1 52 moveto
0 16 rlineto
68.5 0 rlineto
0 -16 rlineto
closepath
fill
0 setcolor
0 0 box
2 2 bits32
2 19 bits32
2 36 bits32
2 53 bits8
71.5 53 bits8
141 53 bits16
fill
/Courier findfont 10 scalefont setfont
32 72 moveto (0) show
240 72 moveto (3) show
171.5 72 moveto (2) show
101.5 72 moveto (1) show
-10 57 moveto (0) show
-10 40 moveto (4) show
-10 23 moveto (8) show
-16 6 moveto (12) show
/Helvetica-bold findfont 10 scalefont setfont
108 40 moveto (192.43.244.18) show
204 57 moveto (13) show
102 57 moveto (2) show
32 57 moveto (0) show
138 23 moveto (0) show
138 6 moveto (0) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,96 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -20 -10 290 85
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
/box {
moveto
0 70 rlineto
280 0 rlineto
0 -70 rlineto
closepath
} bind def
/bits32 {
moveto
276 0 rlineto
0 15 rlineto
-276 0 rlineto
closepath
} bind def
/bits16 {
moveto
137 0 rlineto
0 15 rlineto
-137 0 rlineto
} bind def
/bits8 {
moveto
67.5 0 rlineto
0 15 rlineto
-67.5 0 rlineto
} bind def
%%EndProlog
%%BeginSetup
%%EndSetup
5 7 div setcolor
1 1 moveto
0 34 rlineto
278 0 rlineto
0 -34 rlineto
closepath
1 52 moveto
0 16 rlineto
68.5 0 rlineto
0 -16 rlineto
closepath
fill
0 setcolor
0 0 box
2 2 bits32
2 19 bits32
2 36 bits8
71.5 36 bits8
141 36 bits8
210.5 36 bits8
2 53 bits8
71.5 53 bits8
141 53 bits8
210.5 53 bits8
fill
/Courier findfont 10 scalefont setfont
32 72 moveto (0) show
240 72 moveto (3) show
171.5 72 moveto (2) show
101.5 72 moveto (1) show
-10 57 moveto (0) show
-10 40 moveto (4) show
-10 23 moveto (8) show
-16 6 moveto (12) show
/Helvetica-bold findfont 10 scalefont setfont
27 40 moveto (18) show
95 40 moveto (244) show
168 40 moveto (43) show
234 40 moveto (192) show
168 57 moveto (13) show
240 57 moveto (0) show
102 57 moveto (2) show
32 57 moveto (0) show
138 23 moveto (0) show
138 6 moveto (0) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,96 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -20 -10 290 85
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
/box {
moveto
0 70 rlineto
280 0 rlineto
0 -70 rlineto
closepath
} bind def
/bits32 {
moveto
276 0 rlineto
0 15 rlineto
-276 0 rlineto
closepath
} bind def
/bits16 {
moveto
137 0 rlineto
0 15 rlineto
-137 0 rlineto
} bind def
/bits8 {
moveto
67.5 0 rlineto
0 15 rlineto
-67.5 0 rlineto
} bind def
%%EndProlog
%%BeginSetup
%%EndSetup
5 7 div setcolor
1 1 moveto
0 34 rlineto
278 0 rlineto
0 -34 rlineto
closepath
1 52 moveto
0 16 rlineto
68.5 0 rlineto
0 -16 rlineto
closepath
fill
0 setcolor
0 0 box
2 2 bits32
2 19 bits32
2 36 bits8
71.5 36 bits8
141 36 bits8
210.5 36 bits8
2 53 bits8
71.5 53 bits8
141 53 bits8
210.5 53 bits8
fill
/Courier findfont 10 scalefont setfont
32 72 moveto (0) show
240 72 moveto (3) show
171.5 72 moveto (2) show
101.5 72 moveto (1) show
-10 57 moveto (0) show
-10 40 moveto (4) show
-10 23 moveto (8) show
-16 6 moveto (12) show
/Helvetica-bold findfont 10 scalefont setfont
236 40 moveto (18) show
166 40 moveto (244) show
99 40 moveto (43) show
27 40 moveto (192) show
236 57 moveto (13) show
172 57 moveto (0) show
102 57 moveto (2) show
32 57 moveto (0) show
138 23 moveto (0) show
138 6 moveto (0) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,90 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -20 -10 290 85
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
/box {
moveto
0 70 rlineto
280 0 rlineto
0 -70 rlineto
closepath
} bind def
/bits32 {
moveto
276 0 rlineto
0 15 rlineto
-276 0 rlineto
closepath
} bind def
/bits16 {
moveto
137 0 rlineto
0 15 rlineto
-137 0 rlineto
} bind def
/bits8 {
moveto
67.5 0 rlineto
0 15 rlineto
-67.5 0 rlineto
} bind def
%%EndProlog
%%BeginSetup
%%EndSetup
5 7 div setcolor
1 1 moveto
0 34 rlineto
278 0 rlineto
0 -34 rlineto
closepath
1 52 moveto
0 16 rlineto
68.5 0 rlineto
0 -16 rlineto
closepath
fill
0 setcolor
0 0 box
2 2 bits32
2 19 bits32
2 36 bits32
2 53 bits8
71.5 53 bits8
141 53 bits8
210.5 53 bits8
fill
/Courier findfont 10 scalefont setfont
32 72 moveto (0) show
240 72 moveto (3) show
171.5 72 moveto (2) show
101.5 72 moveto (1) show
-10 57 moveto (0) show
-10 40 moveto (4) show
-10 23 moveto (8) show
-16 6 moveto (12) show
/Helvetica-bold findfont 10 scalefont setfont
236 57 moveto (13) show
172 57 moveto (0) show
102 57 moveto (2) show
32 57 moveto (0) show
138 40 moveto (0) show
138 23 moveto (0) show
138 6 moveto (0) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,160 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 -230 255 190
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
/box {
moveto
0 30 rlineto
100 0 rlineto
0 -30 rlineto
closepath
2 28 rmoveto
0 -26 rlineto
96 0 rlineto
0 26 rlineto
closepath
fill
} bind def
/down {
moveto
0 -10 rlineto
-5 0 rlineto
10 -10 rlineto
10 10 rlineto
-5 0 rlineto
0 10 rlineto
closepath
fill
} bind def
/bigdown {
moveto
0 -30 rlineto
-5 0 rlineto
10 -10 rlineto
10 10 rlineto
-5 0 rlineto
0 30 rlineto
closepath
fill
} bind def
/right {
moveto
70 0 rlineto
0 -5 rlineto
10 10 rlineto
-10 10 rlineto
0 -5 rlineto
-70 0 rlineto
closepath
fill
} bind def
%%EndProlog
%%BeginSetup
/Helvetica-bold findfont 10 scalefont setfont
%%EndSetup
[5 3] 0 setdash
115 190 moveto
115 -230 lineto
stroke
newpath
25 165 15 90 270 arc
95 165 15 270 90 arc
closepath
25 152 moveto
25 165 13 270 90 arcn
95 165 13 90 270 arcn
fill
48 162 moveto (Start) show
55 150 down
10 100 box
15 112 moveto (Create Top Socket) show
55 100 down
10 50 box
35 62 moveto (Bind Port) show
55 50 bigdown
10 -20 box
16.7 -8 moveto (Close Top Socket) show
55 -20 down
newpath
25 -55 15 90 270 arc
95 -55 15 270 90 arc
closepath
25 -68 moveto
25 -55 13 270 90 arcn
95 -55 13 90 270 arcn
fill
48 -58 moveto (Exit) show
65 30 right
145 20 box
154 32 moveto (Initialize Daemon) show
190 20 down
145 -30 box
181 -18 moveto (Listen) show
190 -30 bigdown
145 -100 box
177 -88 moveto (Accept) show
190 -100 down
145 -150 moveto
0 30 rlineto
100 0 rlineto
0 -30 rlineto
closepath
fill
190 -150 down
145 -200 box
156 -183 moveto (Close Accepted) show
178 -194 moveto (Socket) show
190 -200 moveto
0 -10 rlineto
-60 0 rlineto
0 160 rlineto
50 0 rlineto
0 -5 rlineto
10 10 rlineto
-10 10 rlineto
0 -5 rlineto
-60 0 rlineto
0 -180 rlineto
80 0 rlineto
0 20 rlineto
closepath
fill
/Helvetica-bold findfont 20 scalefont setfont
158 82 moveto (Daemon) show
158 60 moveto (Process) show
1 setcolor
166 -143 moveto (Serve) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,211 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 -305 435 190
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
/box {
moveto
0 30 rlineto
100 0 rlineto
0 -30 rlineto
closepath
2 28 rmoveto
0 -26 rlineto
96 0 rlineto
0 26 rlineto
closepath
fill
} bind def
/down {
moveto
0 -10 rlineto
-5 0 rlineto
10 -10 rlineto
10 10 rlineto
-5 0 rlineto
0 10 rlineto
closepath
fill
} bind def
/bigdown {
moveto
0 -30 rlineto
-5 0 rlineto
10 -10 rlineto
10 10 rlineto
-5 0 rlineto
0 30 rlineto
closepath
fill
} bind def
/right {
moveto
70 0 rlineto
0 -5 rlineto
10 10 rlineto
-10 10 rlineto
0 -5 rlineto
-70 0 rlineto
closepath
fill
} bind def
/process {
moveto
135 0 rlineto
0 -245 rlineto
-135 0 rlineto
closepath
gsave
5 7 div setcolor
fill
grestore
stroke
} bind def
%%EndProlog
%%BeginSetup
/Helvetica-bold findfont 10 scalefont setfont
%%EndSetup
[5 3] 0 setdash
115 190 moveto
115 -305 lineto
250 190 moveto
250 -305 lineto
stroke
290 -15 process
285 -20 process
280 -25 process
275 -30 process
270 -35 process
265 -40 process
260 -45 process
newpath
25 165 15 90 270 arc
95 165 15 270 90 arc
closepath
25 152 moveto
25 165 13 270 90 arcn
95 165 13 90 270 arcn
fill
48 162 moveto (Start) show
55 150 down
10 100 box
15 112 moveto (Create Top Socket) show
55 100 down
10 50 box
35 62 moveto (Bind Port) show
55 50 bigdown
10 -20 box
16.7 -8 moveto (Close Top Socket) show
55 -20 down
newpath
25 -55 15 90 270 arc
95 -55 15 270 90 arc
closepath
25 -68 moveto
25 -55 13 270 90 arcn
95 -55 13 90 270 arcn
fill
48 -58 moveto (Exit) show
65 30 right
145 20 box
154 32 moveto (Initialize Daemon) show
190 20 down
145 -30 box
181 -18 moveto (Listen) show
190 -30 bigdown
145 -100 box
177 -88 moveto (Accept) show
190 -100 bigdown
200 -120 right
280 -130 box
286.7 -118 moveto (Close Top Socket) show
325 -130 down
280 -180 moveto
0 30 rlineto
100 0 rlineto
0 -30 rlineto
closepath
fill
325 -180 down
280 -230 box
291 -213 moveto (Close Accepted) show
313 -224 moveto (Socket) show
325 -230 down
newpath
295 -265 15 90 270 arc
365 -265 15 270 90 arc
closepath
295 -278 moveto
295 -265 13 270 90 arcn
365 -265 13 90 270 arcn
fill
318 -268 moveto (Exit) show
145 -170 box
156 -153 moveto (Close Accepted) show
178 -164 moveto (Socket) show
190 -170 moveto
0 -10 rlineto
-60 0 rlineto
0 130 rlineto
50 0 rlineto
0 -5 rlineto
10 10 rlineto
-10 10 rlineto
0 -5 rlineto
-60 0 rlineto
0 -150 rlineto
80 0 rlineto
0 20 rlineto
closepath
fill
145 -250 box
155 -238 moveto (Process Signals) show
/Helvetica-bold findfont 20 scalefont setfont
158 82 moveto (Daemon) show
158 60 moveto (Process) show
293 -68 moveto (Server) show
293 -90 moveto (Process) show
1 setcolor
301 -173 moveto (Serve) show
%%Trailer
showpage
%%EOF

View file

@ -0,0 +1,113 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: -10 -10 110 102
%%Creator: G. Adam Stanislav
%%EndComments
%%BeginProlog
%%EndProlog
%%BeginSetup
%%EndSetup
% Gray area - Sockets
5 7 div setcolor
0 0 moveto
0 92 rlineto
100 0 rlineto
0 -92 rlineto
closepath
10 54 moveto
0 -44 rlineto
80 0 rlineto
0 44 rlineto
closepath
fill
7 11 div setcolor
% Outer layer - Ethernet
0 0 moveto
0 92 rlineto
100 0 rlineto
0 -92 rlineto
closepath
2 90 moveto
0 -88 rlineto
96 0 rlineto
0 88 rlineto
closepath
fill
% IP
4 4 moveto
0 72 rlineto
92 0 rlineto
0 -72 rlineto
closepath
stroke
% TCP
7 7 moveto
0 58 rlineto
86 0 rlineto
0 -58 rlineto
closepath
stroke
0 setcolor
% HTTP
10 10 moveto
0 44 rlineto
80 0 rlineto
0 -44 rlineto
closepath
stroke
% PNG
13 13 moveto
0 30 rlineto
74 0 rlineto
0 -30 rlineto
closepath
stroke
% Data
16 16 moveto
0 16.5 rlineto
68 0 rlineto
0 -16.5 rlineto
closepath
fill
/Courier findfont 10 scalefont setfont
7 11 div setcolor
26 81 moveto
(Ethernet) show
43 68 moveto
(IP) show
40 57 moveto
(TCP) show
0 setcolor
37 46 moveto
(HTTP) show
39.6 35 moveto
(PNG) show
1 setcolor
28 22 moveto
(D A T A) show
%%Trailer
showpage
%%EOF