--- /srv/reproducible-results/rbuild-debian/r-b-build.zfQTWs0U/b1/adasockets_1.12-2_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.zfQTWs0U/b2/adasockets_1.12-2_amd64.changes ├── Files │ @@ -1,4 +1,4 @@ │ │ 0bbb084ccc6ff62716157429f55c278d 55496 debug optional libadasockets10-dbgsym_1.12-2_amd64.deb │ - 996cdda1a9d8eaf77dc7a265075299f7 324016 libdevel optional libadasockets10-dev_1.12-2_amd64.deb │ + ce04e95a1c4ffe0ac8264a6d59378fbc 332508 libdevel optional libadasockets10-dev_1.12-2_amd64.deb │ 40a92872903b2600488c1275682b2c87 32896 libs optional libadasockets10_1.12-2_amd64.deb ├── libadasockets10-dev_1.12-2_amd64.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2020-12-16 23:17:13.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1808 2020-12-16 23:17:13.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 322016 2020-12-16 23:17:13.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 330508 2020-12-16 23:17:13.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: libadasockets10-dev │ │ │ │ Source: adasockets │ │ │ │ Version: 1.12-2 │ │ │ │ Architecture: amd64 │ │ │ │ Maintainer: Phil Brooke │ │ │ │ -Installed-Size: 651 │ │ │ │ +Installed-Size: 659 │ │ │ │ Depends: gnat, gnat-10, libadasockets10 (= 1.12-2) │ │ │ │ Section: libdevel │ │ │ │ Priority: optional │ │ │ │ Homepage: https://www.rfc1149.net/devel/adasockets.html │ │ │ │ Description: bindings for socket services in Ada: development files │ │ │ │ This package provides a binding for socket services to be used with GNAT │ │ │ │ (the GNU Ada compiler). One can use it to write clients and servers that │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -37,27 +37,27 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3766 2020-12-16 23:17:13.000000 ./usr/share/ada/adainclude/adasockets/sockets-utils.ads │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23300 2020-12-16 23:17:13.000000 ./usr/share/ada/adainclude/adasockets/sockets.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10598 2020-12-16 23:17:13.000000 ./usr/share/ada/adainclude/adasockets/sockets.ads │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/doc/libadasockets10-dev/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 768 2020-06-28 10:08:23.000000 ./usr/share/doc/libadasockets10-dev/README.Debian │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1940 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets10-dev/README.md │ │ │ │ --rw-r--r-- 0 root (0) root (0) 251317 2020-12-16 23:17:13.000000 ./usr/share/doc/libadasockets10-dev/adasockets.pdf.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 250236 2020-12-16 23:17:13.000000 ./usr/share/doc/libadasockets10-dev/adasockets.pdf.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4890 2020-12-16 23:17:13.000000 ./usr/share/doc/libadasockets10-dev/changelog.Debian.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3541 2020-06-28 11:37:04.000000 ./usr/share/doc/libadasockets10-dev/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/doc/libadasockets10-dev/examples/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 233 2020-06-28 10:08:23.000000 ./usr/share/doc/libadasockets10-dev/examples/examples.gpr │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4956 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets10-dev/examples/listener.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3980 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets10-dev/examples/multi.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4591 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets10-dev/examples/stream_listener.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3904 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets10-dev/examples/stream_sender.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4919 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets10-dev/examples/tcprelay.adb │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 477 2020-12-16 23:17:13.000000 ./usr/share/doc-base/adasockets │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/gpr/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 354 2020-12-16 23:17:13.000000 ./usr/share/gpr/adasockets.gpr │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/info/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4510 2020-12-16 23:17:13.000000 ./usr/share/info/adasockets.info.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13968 2020-12-16 23:17:13.000000 ./usr/share/info/adasockets.info.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/man/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/share/man/man1/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 299 2020-12-16 23:17:13.000000 ./usr/share/man/man1/adasockets-config.1.gz │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2020-12-16 23:17:13.000000 ./usr/lib/x86_64-linux-gnu/libadasockets.so -> libadasockets.so.10.0.0 │ │ │ ├── ./usr/share/doc/libadasockets10-dev/adasockets.pdf.gz │ │ │ │ ├── adasockets.pdf │ │ │ │ │ ├── pdftotext {} - │ │ │ │ │ │ @@ -50,19 +50,19 @@ │ │ │ │ │ │ Get Line (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 │ │ │ │ │ │ Get Receive Queue Size (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ Get Send Queue Size (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ Getsockopt (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ Listen (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ New Line (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ Put (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ -Put Line (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 │ │ │ │ │ │ +Put Line (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ Receive (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 │ │ │ │ │ │ -Receive (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 │ │ │ │ │ │ +Receive (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 │ │ │ │ │ │ Receive Some (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 │ │ │ │ │ │ -Send (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ +Send (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 │ │ │ │ │ │ Set Buffer (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ Setsockopt (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ Shutdown (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ Socket (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ Unset Buffer (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ │ │ │ │ │ │ 5 │ │ │ │ │ │ @@ -352,24 +352,14 @@ │ │ │ │ │ │ Another error occurred during the connection │ │ │ │ │ │ │ │ │ │ │ │ Chapter 4: Sockets package │ │ │ │ │ │ │ │ │ │ │ │ 9 │ │ │ │ │ │ │ │ │ │ │ │ Example │ │ │ │ │ │ -declare │ │ │ │ │ │ -Sock : Socket_FD; │ │ │ │ │ │ -begin │ │ │ │ │ │ --- Create a TCP socket │ │ │ │ │ │ -Socket (Sock, PF_INET, SOCK_STREAM); │ │ │ │ │ │ --- Connect it to rfc1149.net’s mail server │ │ │ │ │ │ -Connect (Sock, "mail.rfc1149.net", 25); │ │ │ │ │ │ --- Do a mail transaction then close the socket │ │ │ │ │ │ -[...] │ │ │ │ │ │ -end; │ │ │ │ │ │ See also [Socket (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ Get (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Get a string from a remote host │ │ │ │ │ │ │ │ │ │ │ │ @@ -417,31 +407,31 @@ │ │ │ │ │ │ │ │ │ │ │ │ in │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Get Char] │ │ │ │ │ │ │ │ │ │ │ │ Initialized and connected socket object │ │ │ │ │ │ │ │ │ │ │ │ - 10 │ │ │ │ │ │ - │ │ │ │ │ │ -AdaSockets reference manual │ │ │ │ │ │ - │ │ │ │ │ │ Return value │ │ │ │ │ │ One character sent by the remote host │ │ │ │ │ │ Description │ │ │ │ │ │ This function receives exactly one character from the remote host. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has closed the connection before sending the character │ │ │ │ │ │ │ │ │ │ │ │ + 10 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ See also [Get (function)], page 9, │ │ │ │ │ │ [Get Line (function)], page 10, │ │ │ │ │ │ [Get Line (procedure)], page 10, │ │ │ │ │ │ -[Receive (procedure)], page 15, │ │ │ │ │ │ +[Receive (procedure)], page 14, │ │ │ │ │ │ [Set Buffer (procedure)], page 16. │ │ │ │ │ │ │ │ │ │ │ │ Get Line (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Get a whole line from a remote host │ │ │ │ │ │ │ │ │ │ │ │ @@ -475,26 +465,22 @@ │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has closed the connection before sending a whole line │ │ │ │ │ │ │ │ │ │ │ │ See also [Get (function)], page 9, │ │ │ │ │ │ [Get Char (function)], page 9, │ │ │ │ │ │ [Get Line (procedure)], page 10, │ │ │ │ │ │ -[Receive (procedure)], page 15, │ │ │ │ │ │ +[Receive (procedure)], page 14, │ │ │ │ │ │ [Set Buffer (procedure)], page 16. │ │ │ │ │ │ │ │ │ │ │ │ Get Line (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Get a whole line from a remote host │ │ │ │ │ │ │ │ │ │ │ │ - Chapter 4: Sockets package │ │ │ │ │ │ - │ │ │ │ │ │ -11 │ │ │ │ │ │ - │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ procedure Get_Line (Socket : Socket FD’Class; │ │ │ │ │ │ Str : in out String; Last : out Natural); │ │ │ │ │ │ Parameters │ │ │ │ │ │ Socket │ │ │ │ │ │ Str │ │ │ │ │ │ @@ -506,28 +492,32 @@ │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Get Line] │ │ │ │ │ │ │ │ │ │ │ │ Initialized and connected socket object │ │ │ │ │ │ String to fill │ │ │ │ │ │ Last index used in the string │ │ │ │ │ │ │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +11 │ │ │ │ │ │ + │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure receives one line from the remote host. A line consists into zero │ │ │ │ │ │ or more characters followed by an optional CR and by a LF. Those terminators │ │ │ │ │ │ are stripped before the line is returned. │ │ │ │ │ │ This procedure blocks until one full line has been received. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has closed the connection before sending a whole line │ │ │ │ │ │ │ │ │ │ │ │ See also [Get (function)], page 9, │ │ │ │ │ │ [Get Char (function)], page 9, │ │ │ │ │ │ [Get Line (function)], page 10, │ │ │ │ │ │ -[Receive (procedure)], page 15, │ │ │ │ │ │ +[Receive (procedure)], page 14, │ │ │ │ │ │ [Set Buffer (procedure)], page 16. │ │ │ │ │ │ │ │ │ │ │ │ Get Receive Queue Size (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Return the size of the unread data in the input queue │ │ │ │ │ │ │ │ │ │ │ │ @@ -546,25 +536,21 @@ │ │ │ │ │ │ Initialized and connected socket object │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ The non-negative size in bytes of the input queue │ │ │ │ │ │ Description │ │ │ │ │ │ This function is only available on Linux platforms. On other operating systems, it will return -2 to indicate that the necessary mechanisms to retrieve the │ │ │ │ │ │ information are not available. │ │ │ │ │ │ -See also [Receive (procedure)], page 15. │ │ │ │ │ │ +See also [Receive (procedure)], page 14. │ │ │ │ │ │ │ │ │ │ │ │ Get Send Queue Size (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Return the size of the unsent data in the output queue │ │ │ │ │ │ │ │ │ │ │ │ - 12 │ │ │ │ │ │ - │ │ │ │ │ │ -AdaSockets reference manual │ │ │ │ │ │ - │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ function Get_Send_Queue_Size │ │ │ │ │ │ (Socket : Socket FD’Class) │ │ │ │ │ │ return Integer; │ │ │ │ │ │ Parameters │ │ │ │ │ │ Socket │ │ │ │ │ │ @@ -576,15 +562,20 @@ │ │ │ │ │ │ Initialized and connected socket object │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ The non-negative size in bytes of the output queue │ │ │ │ │ │ Description │ │ │ │ │ │ This function is only available on Linux platforms. On other operating systems, it will return -2 to indicate that the necessary mechanisms to retrieve the │ │ │ │ │ │ information are not available. │ │ │ │ │ │ -See also [Send (procedure)], page 16. │ │ │ │ │ │ + │ │ │ │ │ │ + 12 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ +See also [Send (procedure)], page 15. │ │ │ │ │ │ │ │ │ │ │ │ Getsockopt (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Retrieve a socket option │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -626,40 +617,37 @@ │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ procedure Listen (Socket : Socket FD; │ │ │ │ │ │ Queue_Size : Positive := 5); │ │ │ │ │ │ Parameters │ │ │ │ │ │ Socket │ │ │ │ │ │ +Queue Size │ │ │ │ │ │ │ │ │ │ │ │ in │ │ │ │ │ │ +in │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Listen] │ │ │ │ │ │ │ │ │ │ │ │ Initialized and bound socket object │ │ │ │ │ │ - │ │ │ │ │ │ - Chapter 4: Sockets package │ │ │ │ │ │ - │ │ │ │ │ │ -Queue Size │ │ │ │ │ │ - │ │ │ │ │ │ -13 │ │ │ │ │ │ - │ │ │ │ │ │ -in │ │ │ │ │ │ - │ │ │ │ │ │ Requested slots in the listen queue │ │ │ │ │ │ │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure establishes a listen queue after a TCP socket as been initialized │ │ │ │ │ │ and bound. Each slot in the queue can hold one incoming connection that has │ │ │ │ │ │ not been accepted yet. Note that most operating systems ignore queue sizes │ │ │ │ │ │ larger than five. │ │ │ │ │ │ See also [Accept Socket (procedure)], page 7, │ │ │ │ │ │ [Bind (procedure)], page 8, │ │ │ │ │ │ [Socket (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +13 │ │ │ │ │ │ + │ │ │ │ │ │ New Line (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Send a CR/LF to a remote host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ @@ -681,15 +669,15 @@ │ │ │ │ │ │ This procedure sends one or more CR/LF combinations to the peer. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has prematurely closed the connection │ │ │ │ │ │ │ │ │ │ │ │ See also [Put (procedure)], page 13, │ │ │ │ │ │ -[Put Line (procedure)], page 14. │ │ │ │ │ │ +[Put Line (procedure)], page 13. │ │ │ │ │ │ │ │ │ │ │ │ Put (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Send a string to a remote host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -712,20 +700,16 @@ │ │ │ │ │ │ This procedure sends the content of Str over an outgoing or incoming socket. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has prematurely closed the connection │ │ │ │ │ │ │ │ │ │ │ │ See also [New Line (procedure)], page 13, │ │ │ │ │ │ -[Put Line (procedure)], page 14, │ │ │ │ │ │ -[Send (procedure)], page 16. │ │ │ │ │ │ - │ │ │ │ │ │ - 14 │ │ │ │ │ │ - │ │ │ │ │ │ -AdaSockets reference manual │ │ │ │ │ │ +[Put Line (procedure)], page 13, │ │ │ │ │ │ +[Send (procedure)], page 15. │ │ │ │ │ │ │ │ │ │ │ │ Put Line (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Send a CR/LF terminated string to a remote host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -740,25 +724,29 @@ │ │ │ │ │ │ in │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Put Line] │ │ │ │ │ │ │ │ │ │ │ │ Initialized and connected socket object │ │ │ │ │ │ String to send │ │ │ │ │ │ │ │ │ │ │ │ + 14 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure sends the content of Str plus a CR/LF combination over an │ │ │ │ │ │ outgoing or incoming socket. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has prematurely closed the connection │ │ │ │ │ │ │ │ │ │ │ │ See also [New Line (procedure)], page 13, │ │ │ │ │ │ [Put (procedure)], page 13, │ │ │ │ │ │ -[Send (procedure)], page 16. │ │ │ │ │ │ +[Send (procedure)], page 15. │ │ │ │ │ │ │ │ │ │ │ │ Receive (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Receive raw data over a socket │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -784,23 +772,19 @@ │ │ │ │ │ │ socket. Only one system call will be performed; this function will return whatever data has arrived. Note that in GNAT the secondary stack may be used to │ │ │ │ │ │ store the data and may result in stack storage exhaustion. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has closed the connection before sending any data │ │ │ │ │ │ │ │ │ │ │ │ -See also [Receive (procedure)], page 15, │ │ │ │ │ │ +See also [Receive (procedure)], page 14, │ │ │ │ │ │ [Receive Some (procedure)], page 15, │ │ │ │ │ │ [Get Line (function)], page 10, │ │ │ │ │ │ [Get Line (procedure)], page 10. │ │ │ │ │ │ │ │ │ │ │ │ - Chapter 4: Sockets package │ │ │ │ │ │ - │ │ │ │ │ │ -15 │ │ │ │ │ │ - │ │ │ │ │ │ Receive (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Receive raw data over a socket │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ @@ -816,14 +800,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ Initialized and bound or connected socket object │ │ │ │ │ │ Incoming data buffer │ │ │ │ │ │ │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure receives data from a bound UDP socket or a connected TCP │ │ │ │ │ │ socket. It will block until the Data reception buffer has been totally filled. │ │ │ │ │ │ + │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +15 │ │ │ │ │ │ + │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has closed the connection before Data’Length bytes │ │ │ │ │ │ were received │ │ │ │ │ │ │ │ │ │ │ │ See also [Get Line (function)], page 10, │ │ │ │ │ │ @@ -833,17 +822,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ Receive Some (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Receive raw data over a socket │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ - │ │ │ │ │ │ -procedure Receive_Some │ │ │ │ │ │ [Sockets.Receive Some] │ │ │ │ │ │ +procedure Receive_Some │ │ │ │ │ │ (Socket : Socket FD’Class; │ │ │ │ │ │ Data : out Ada.Streams.Stream Element Array; │ │ │ │ │ │ Last : out Ada.Streams.Stream Element Offset); │ │ │ │ │ │ Parameters │ │ │ │ │ │ Socket │ │ │ │ │ │ Data │ │ │ │ │ │ Last │ │ │ │ │ │ @@ -864,19 +852,15 @@ │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has closed the connection before sending any data │ │ │ │ │ │ │ │ │ │ │ │ See also [Get Line (function)], page 10, │ │ │ │ │ │ [Get Line (procedure)], page 10, │ │ │ │ │ │ [Receive (function)], page 14, │ │ │ │ │ │ -[Receive (procedure)], page 15. │ │ │ │ │ │ - │ │ │ │ │ │ - 16 │ │ │ │ │ │ - │ │ │ │ │ │ -AdaSockets reference manual │ │ │ │ │ │ +[Receive (procedure)], page 14. │ │ │ │ │ │ │ │ │ │ │ │ Send (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Send raw data over a socket │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -893,21 +877,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ Initialized and connected socket object │ │ │ │ │ │ Data to be sent │ │ │ │ │ │ │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure sends data over a connected outgoing socket or over an incoming │ │ │ │ │ │ socket. │ │ │ │ │ │ + │ │ │ │ │ │ + 16 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has prematurely closed the connection │ │ │ │ │ │ │ │ │ │ │ │ See also [Put (procedure)], page 13, │ │ │ │ │ │ -[Put Line (procedure)], page 14. │ │ │ │ │ │ +[Put Line (procedure)], page 13. │ │ │ │ │ │ │ │ │ │ │ │ Set Buffer (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Install a line-oriented buffer of the socket object │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -936,18 +925,14 @@ │ │ │ │ │ │ See also [Unset Buffer (procedure)], page 18. │ │ │ │ │ │ │ │ │ │ │ │ Setsockopt (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Set a socket option │ │ │ │ │ │ │ │ │ │ │ │ - Chapter 4: Sockets package │ │ │ │ │ │ - │ │ │ │ │ │ -17 │ │ │ │ │ │ - │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ procedure Setsockopt (Socket : Socket FD; │ │ │ │ │ │ [Sockets.Setsockopt] │ │ │ │ │ │ Level : Socket Level := SOL SOCKET; │ │ │ │ │ │ Optname : Socket Option; Optval : Integer); │ │ │ │ │ │ Parameters │ │ │ │ │ │ @@ -968,14 +953,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure sets options applicable to a socket. Please see your operating │ │ │ │ │ │ system manual for usable levels and options. │ │ │ │ │ │ Two levels are defined: SOL_SOCKET (the default) and IPPROTO_IP. The options │ │ │ │ │ │ are SO_REUSEADDR, SO_REUSEPORT, IP_MULTICAST_TTL, IP_ADD_MEMBERSHIP, │ │ │ │ │ │ IP_DROP_MEMBERSHIP, IP_MULTICAST_LOOP, SO_SNDBUF and IP_RCVBUF. │ │ │ │ │ │ + │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +17 │ │ │ │ │ │ + │ │ │ │ │ │ Note that unlike their C language counterpart, Getsockopt and Setsockopt │ │ │ │ │ │ do not require an extra parameter representing the length in bytes of the option │ │ │ │ │ │ value. AdaSockets nows the right size for every option. │ │ │ │ │ │ See also [Getsockopt (procedure)], page 12. │ │ │ │ │ │ │ │ │ │ │ │ Shutdown (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ @@ -1017,38 +1007,39 @@ │ │ │ │ │ │ Domain │ │ │ │ │ │ Typ │ │ │ │ │ │ │ │ │ │ │ │ out │ │ │ │ │ │ in │ │ │ │ │ │ in │ │ │ │ │ │ │ │ │ │ │ │ +[Sockets.Socket] │ │ │ │ │ │ + │ │ │ │ │ │ Socket object to initialize │ │ │ │ │ │ Protocol family │ │ │ │ │ │ Kind of sockets │ │ │ │ │ │ │ │ │ │ │ │ -[Sockets.Socket] │ │ │ │ │ │ - │ │ │ │ │ │ - 18 │ │ │ │ │ │ - │ │ │ │ │ │ -AdaSockets reference manual │ │ │ │ │ │ - │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure initializes a new socket object by reserving a file descriptor to │ │ │ │ │ │ the operating system. For backward compatibility with older versions of this │ │ │ │ │ │ library, AF_INET is still accepted as a value but should be replaced as soon as │ │ │ │ │ │ possible with the proper PF_INET. Using SOCK_STREAM for the Typ argument │ │ │ │ │ │ will create a TCP socket while a SOCK_DGRAM will create a UDP one. │ │ │ │ │ │ Example │ │ │ │ │ │ declare │ │ │ │ │ │ Sock : Socket_FD; │ │ │ │ │ │ begin │ │ │ │ │ │ -- Create a TCP socket │ │ │ │ │ │ Socket (Sock, PF_INET, SOCK_STREAM); │ │ │ │ │ │ -- Perform some operations on socket │ │ │ │ │ │ [...] │ │ │ │ │ │ + │ │ │ │ │ │ + 18 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ -- Shutdown the socket in both directions │ │ │ │ │ │ Shutdown (Sock, Both); │ │ │ │ │ │ end; │ │ │ │ │ │ See also [Shutdown (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ Unset Buffer (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ @@ -1149,15 +1140,15 @@ │ │ │ │ │ │ Accept_Socket (Sock, Incoming); │ │ │ │ │ │ -- Do some dialog with the remote host │ │ │ │ │ │ Do_Some_Dialog (Incoming); │ │ │ │ │ │ -- Close incoming socket and wait for next connection │ │ │ │ │ │ Shutdown (Incoming); │ │ │ │ │ │ end loop; │ │ │ │ │ │ end; │ │ │ │ │ │ -See also [Send (procedure)], page 16, │ │ │ │ │ │ +See also [Send (procedure)], page 15, │ │ │ │ │ │ [Shutdown (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ Create Multicast Socket (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Create an IP multicast socket │ │ │ │ │ │ │ │ │ │ │ │ @@ -1205,15 +1196,15 @@ │ │ │ │ │ │ Connect (Sock, "mail.rfc1149.net", 25); │ │ │ │ │ │ │ │ │ │ │ │ Chapter 5: Sockets.Multicast package │ │ │ │ │ │ │ │ │ │ │ │ -- Do a mail transaction then close the socket │ │ │ │ │ │ [...] │ │ │ │ │ │ end; │ │ │ │ │ │ -See also [Send (procedure)], page 16, │ │ │ │ │ │ +See also [Send (procedure)], page 15, │ │ │ │ │ │ [Shutdown (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ 21 │ │ │ │ │ │ │ │ │ │ │ │ 23 │ │ │ │ │ │ │ │ │ │ │ │ 6 Sockets.Naming package │ │ │ │ │ │ @@ -1594,32 +1585,32 @@ │ │ │ │ │ │ Index │ │ │ │ │ │ A │ │ │ │ │ │ │ │ │ │ │ │ G │ │ │ │ │ │ │ │ │ │ │ │ Accept_Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ Accepting a new connection . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ -Ada.Streams.Stream_Element_Array . . 6, 14, 15, 16 │ │ │ │ │ │ +Ada.Streams.Stream_Element_Array . . . . 6, 14, 15 │ │ │ │ │ │ Ada.Streams.Stream_Element_Count . . . . . . . 14, 15 │ │ │ │ │ │ AdaSockets presentation . . . . . . . . . . . . . . . . . . . . . . . . 1 │ │ │ │ │ │ Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ Address_Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ Address_Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ Address_Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -AF_INET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ +AF_INET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ Any_Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ Assigning a local port . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ │ │ │ │ │ │ Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ Get_Char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ -Get_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11 │ │ │ │ │ │ +Get_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 │ │ │ │ │ │ Get_Peer_Addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ Get_Peer_Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ Get_Receive_Queue_Size . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ -Get_Send_Queue_Size. . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ +Get_Send_Queue_Size. . . . . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ Get_Sock_Addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ Get_Sock_Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ Getsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ Group communication . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ │ │ │ │ │ │ H │ │ │ │ │ │ B │ │ │ │ │ │ @@ -1648,19 +1639,19 @@ │ │ │ │ │ │ Creating a UDP socket . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ Creating a unicast socket . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ CR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11, 13 │ │ │ │ │ │ │ │ │ │ │ │ Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ Info_Of_Name_Or_IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ Installing AdaSockets . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 │ │ │ │ │ │ -IP_ADD_MEMBERSHIP . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -IP_DROP_MEMBERSHIP . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -IP_MULTICAST_LOOP . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -IP_MULTICAST_TTL . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -IPPROTO_IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ +IP_ADD_MEMBERSHIP . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +IP_DROP_MEMBERSHIP . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +IP_MULTICAST_LOOP . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +IP_MULTICAST_TTL . . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +IPPROTO_IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ Is_IP_Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ │ │ │ │ │ │ L │ │ │ │ │ │ LF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11, 13 │ │ │ │ │ │ Listen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ Listen queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ │ │ │ │ │ │ @@ -1701,80 +1692,80 @@ │ │ │ │ │ │ Sockets.Naming.Image . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ Sockets.Naming.Info_Of_Name_Or_IP . . . . . . . . . 26 │ │ │ │ │ │ Sockets.Naming.Is_IP_Address . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ Sockets.Naming.Name_Of . . . . . . . . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ Sockets.Naming.Value . . . . . . . . . . . . . . . . . . . . . . . . 27 │ │ │ │ │ │ Sockets.New_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ Sockets.Put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ -Sockets.Put_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 │ │ │ │ │ │ -Sockets.Receive. . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 15 │ │ │ │ │ │ +Sockets.Put_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ +Sockets.Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 │ │ │ │ │ │ Sockets.Receive_Some . . . . . . . . . . . . . . . . . . . . . . . . 15 │ │ │ │ │ │ -Sockets.Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ +Sockets.Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 │ │ │ │ │ │ Sockets.Set_Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ -Sockets.Setsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ +Sockets.Setsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ Sockets.Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ -Sockets.SO_RCVBUF . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Sockets.SO_REUSEADDR . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Sockets.SO_REUSEPORT . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Sockets.SO_SNDBUF . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ +Sockets.SO_RCVBUF . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Sockets.SO_REUSEADDR . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Sockets.SO_REUSEPORT . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Sockets.SO_SNDBUF . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ Sockets.Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 17 │ │ │ │ │ │ -Sockets.SOL_SOCKET . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ +Sockets.SOL_SOCKET . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ Sockets.Unset_Buffer . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ -SOL_SOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Stream_Element_Array . . . . . . . . . . . . . . . 6, 14, 15, 16 │ │ │ │ │ │ +SOL_SOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Stream_Element_Array . . . . . . . . . . . . . . . . . . 6, 14, 15 │ │ │ │ │ │ Stream_Element_Count . . . . . . . . . . . . . . . . . . . . . 14, 15 │ │ │ │ │ │ String_Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ String_Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ Suggesting a feature . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 │ │ │ │ │ │ │ │ │ │ │ │ -PF_INET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ +PF_INET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ Put . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ -Put_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 │ │ │ │ │ │ +Put_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ │ │ │ │ │ │ R │ │ │ │ │ │ Raw data manipulation . . . . . . . . . . . . . . . . . . . . . . . . . 6 │ │ │ │ │ │ -Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 15, 17 │ │ │ │ │ │ +Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 17 │ │ │ │ │ │ Receive_Some . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 │ │ │ │ │ │ Receiving data . . . . . . . . . . 6, 9, 10, 11, 14, 15, 16, 18 │ │ │ │ │ │ Reporting a bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 │ │ │ │ │ │ Representing IP addresses . . . . . . . . . . . . . . . . . . 25, 27 │ │ │ │ │ │ Retrieving socket options. . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ │ │ │ │ │ │ S │ │ │ │ │ │ -Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 17 │ │ │ │ │ │ -Sending data . . . . . . . . . . . . . . . . . . . . . 6, 11, 13, 14, 16 │ │ │ │ │ │ +Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15, 17 │ │ │ │ │ │ +Sending data . . . . . . . . . . . . . . . . . . . . . . . . . 6, 11, 13, 15 │ │ │ │ │ │ Sending patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 │ │ │ │ │ │ Set_Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ -Setsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ +Setsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ Setting socket options . . . . . . . . . . . . . . . . . . . . . . . . . . 16 │ │ │ │ │ │ Shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ -SO_RCVBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -SO_REUSEADDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -SO_REUSEPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -SO_SNDBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -SOCK_DGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ -SOCK_STREAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ +SO_RCVBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +SO_REUSEADDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +SO_REUSEPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +SO_SNDBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +SOCK_DGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ +SOCK_STREAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ Socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 17 │ │ │ │ │ │ Socket shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ Socket_Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ Socket_FD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 7 │ │ │ │ │ │ Sockets.Accept_Socket . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ Sockets.Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ Sockets.Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ Sockets.Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ Sockets.Get_Char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ -Sockets.Get_Line . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11 │ │ │ │ │ │ +Sockets.Get_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 │ │ │ │ │ │ Sockets.Get_Receive_Queue_Size . . . . . . . . . . . . . 11 │ │ │ │ │ │ -Sockets.Get_Send_Queue_Size . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ +Sockets.Get_Send_Queue_Size . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ Sockets.Getsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ -Sockets.IP_ADD_MEMBERSHIP . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Sockets.IP_DROP_MEMBERSHIP . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Sockets.IP_MULTICAST_LOOP . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Sockets.IP_MULTICAST_TTL . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ -Sockets.IPPROTO_IP . . . . . . . . . . . . . . . . . . . . . . . 12, 17 │ │ │ │ │ │ +Sockets.IP_ADD_MEMBERSHIP . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Sockets.IP_DROP_MEMBERSHIP . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Sockets.IP_MULTICAST_LOOP . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Sockets.IP_MULTICAST_TTL . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Sockets.IPPROTO_IP . . . . . . . . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ Sockets.Listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ │ │ │ │ │ │ T │ │ │ │ │ │ TCP socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ │ │ │ │ │ │ U │ │ │ │ │ │ UDP socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ ├── ./usr/share/info/adasockets.info.gz │ │ │ │ ├── adasockets.info │ │ │ │ │ @@ -546,446 +546,4408 @@ │ │ │ │ │ 00002210: 7320 7061 636b 6167 652c 2020 4e65 7874 s package, Next │ │ │ │ │ 00002220: 3a20 536f 636b 6574 732e 4d75 6c74 6963 : Sockets.Multic │ │ │ │ │ 00002230: 6173 7420 7061 636b 6167 652c 2020 5072 ast package, Pr │ │ │ │ │ 00002240: 6576 3a20 5573 696e 6720 4164 6153 6f63 ev: Using AdaSoc │ │ │ │ │ 00002250: 6b65 7473 2c20 2055 703a 2054 6f70 0a0a kets, Up: Top.. │ │ │ │ │ 00002260: 3420 536f 636b 6574 7320 7061 636b 6167 4 Sockets packag │ │ │ │ │ 00002270: 650a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a e.************** │ │ │ │ │ -00002280: 2a2a 2a0a 0a1f 0a46 696c 653a 2061 6461 ***....File: ada │ │ │ │ │ -00002290: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ -000022a0: 6f64 653a 2053 6f63 6b65 7473 2e4d 756c ode: Sockets.Mul │ │ │ │ │ -000022b0: 7469 6361 7374 2070 6163 6b61 6765 2c20 ticast package, │ │ │ │ │ -000022c0: 204e 6578 743a 2053 6f63 6b65 7473 2e4e Next: Sockets.N │ │ │ │ │ -000022d0: 616d 696e 6720 7061 636b 6167 652c 2020 aming package, │ │ │ │ │ -000022e0: 5072 6576 3a20 536f 636b 6574 7320 7061 Prev: Sockets pa │ │ │ │ │ -000022f0: 636b 6167 652c 2020 5570 3a20 546f 700a ckage, Up: Top. │ │ │ │ │ -00002300: 0a35 2053 6f63 6b65 7473 2e4d 756c 7469 .5 Sockets.Multi │ │ │ │ │ -00002310: 6361 7374 2070 6163 6b61 6765 0a2a 2a2a cast package.*** │ │ │ │ │ -00002320: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -00002330: 2a2a 2a2a 2a2a 2a2a 0a0a 1f0a 4669 6c65 ********....File │ │ │ │ │ -00002340: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ -00002350: 6f2c 2020 4e6f 6465 3a20 536f 636b 6574 o, Node: Socket │ │ │ │ │ -00002360: 732e 4e61 6d69 6e67 2070 6163 6b61 6765 s.Naming package │ │ │ │ │ -00002370: 2c20 204e 6578 743a 2043 6f6e 7472 6962 , Next: Contrib │ │ │ │ │ -00002380: 7574 6f72 732c 2020 5072 6576 3a20 536f utors, Prev: So │ │ │ │ │ -00002390: 636b 6574 732e 4d75 6c74 6963 6173 7420 ckets.Multicast │ │ │ │ │ -000023a0: 7061 636b 6167 652c 2020 5570 3a20 546f package, Up: To │ │ │ │ │ -000023b0: 700a 0a36 2053 6f63 6b65 7473 2e4e 616d p..6 Sockets.Nam │ │ │ │ │ -000023c0: 696e 6720 7061 636b 6167 650a 2a2a 2a2a ing package.**** │ │ │ │ │ -000023d0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -000023e0: 2a2a 2a2a 0a0a 1f0a 4669 6c65 3a20 6164 ****....File: ad │ │ │ │ │ -000023f0: 6173 6f63 6b65 7473 2e69 6e66 6f2c 2020 asockets.info, │ │ │ │ │ -00002400: 4e6f 6465 3a20 436f 6e74 7269 6275 746f Node: Contributo │ │ │ │ │ -00002410: 7273 2c20 204e 6578 743a 2052 6573 6f75 rs, Next: Resou │ │ │ │ │ -00002420: 7263 6573 206f 6e20 7468 6520 496e 7465 rces on the Inte │ │ │ │ │ -00002430: 726e 6574 2c20 2050 7265 763a 2053 6f63 rnet, Prev: Soc │ │ │ │ │ -00002440: 6b65 7473 2e4e 616d 696e 6720 7061 636b kets.Naming pack │ │ │ │ │ -00002450: 6167 652c 2020 5570 3a20 546f 700a 0a41 age, Up: Top..A │ │ │ │ │ -00002460: 7070 656e 6469 7820 4120 436f 6e74 7269 ppendix A Contri │ │ │ │ │ -00002470: 6275 746f 7273 0a2a 2a2a 2a2a 2a2a 2a2a butors.********* │ │ │ │ │ -00002480: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 0a0a **************.. │ │ │ │ │ -00002490: 4164 6153 6f63 6b65 7473 2068 6173 2062 AdaSockets has b │ │ │ │ │ -000024a0: 6565 6e20 6f72 6967 696e 616c 6c79 2064 een originally d │ │ │ │ │ -000024b0: 6576 656c 6f70 7065 6420 6279 2053 616d evelopped by Sam │ │ │ │ │ -000024c0: 7565 6c20 5461 7264 6965 7520 7768 6f20 uel Tardieu who │ │ │ │ │ -000024d0: 7374 696c 6c0a 6d61 696e 7461 696e 7320 still.maintains │ │ │ │ │ -000024e0: 6974 2e20 2048 6f77 6576 6572 2c20 7468 it. However, th │ │ │ │ │ -000024f0: 6520 666f 6c6c 6f77 696e 6720 7065 6f70 e following peop │ │ │ │ │ -00002500: 6c65 2068 6176 6520 6d61 6465 2063 7275 le have made cru │ │ │ │ │ -00002510: 6369 616c 0a63 6f6e 7472 6962 7574 696f cial.contributio │ │ │ │ │ -00002520: 6e73 2074 6f20 4164 6153 6f63 6b65 7473 ns to AdaSockets │ │ │ │ │ -00002530: 2c20 6265 2074 6865 7920 6e65 7720 636f , be they new co │ │ │ │ │ -00002540: 6465 2c20 6275 6720 6669 7865 7320 6f72 de, bug fixes or │ │ │ │ │ -00002550: 2070 6f72 7469 6e67 2074 6f0a 6e65 7720 porting to.new │ │ │ │ │ -00002560: 6f70 6572 6174 696e 6720 7379 7374 656d operating system │ │ │ │ │ -00002570: 733a 0a0a 2020 202a 2044 6d69 7472 6979 s:.. * Dmitriy │ │ │ │ │ -00002580: 2041 6e69 7369 6d6b 6f76 2028 3c61 6e69 Anisimkov (). * Alan Bar │ │ │ │ │ -000025b0: 6e65 7320 283c 6261 726e 6573 6140 6173 nes (). * │ │ │ │ │ -000025d0: 204a 7561 6e6d 6120 4261 7272 616e 7175 Juanma Barranqu │ │ │ │ │ -000025e0: 6572 6f20 283c 6c65 6b74 7540 7465 7272 ero (). * Bobb │ │ │ │ │ -00002600: 7920 442e 2042 7279 616e 7420 283c 6264 y D. Bryant (). * Sa │ │ │ │ │ -00002630: 6e64 6572 2043 6f78 2028 3c73 616e 6465 nder Cox (). * Sune Fa │ │ │ │ │ -00002660: 6c6b 2028 3c73 756e 652e 6661 6c63 6b40 lk (). * │ │ │ │ │ -00002680: 2047 7569 6c6c 6175 6d65 2046 6f6c 6961 Guillaume Folia │ │ │ │ │ -00002690: 7264 2028 3c67 7569 666f 4077 616e 6164 rd (). * Lau │ │ │ │ │ -000026b0: 7265 6e74 2047 7565 7262 7920 283c 6775 rent Guerby (). * Dav │ │ │ │ │ -000026e0: 6964 204a 2e20 4b72 6973 746f 6c61 2028 id J. Kristola ( │ │ │ │ │ -000026f0: 3c44 6176 6964 3935 3033 3740 616f 6c2e ). * Domin │ │ │ │ │ -00002710: 696b 204d 6164 6f6e 2028 3c64 6f6d 696e ik Madon (). │ │ │ │ │ -00002730: 2a20 5061 7363 616c 204f 6272 7920 283c * Pascal Obry (< │ │ │ │ │ -00002740: 702e 6f62 7279 4077 616e 6164 6f6f 2e66 p.obry@wanadoo.f │ │ │ │ │ -00002750: 723e 290a 2020 202a 204e 6963 6f6c 6173 r>). * Nicolas │ │ │ │ │ -00002760: 204f 6c6c 696e 6765 7220 283c 4e69 636f Ollinger (). * │ │ │ │ │ -00002790: 5374 e970 6861 6e65 2050 6174 7572 6561 St.phane Paturea │ │ │ │ │ -000027a0: 7520 283c 7370 6174 7572 6561 406d 656c u (). * │ │ │ │ │ -000027d0: 5468 6f6d 6173 2051 7569 6e6f 7420 283c Thomas Quinot (< │ │ │ │ │ -000027e0: 7468 6f6d 6173 4063 7569 7672 652e 6672 thomas@cuivre.fr │ │ │ │ │ -000027f0: 2e65 752e 6f72 673e 290a 2020 202a 2050 .eu.org>). * P │ │ │ │ │ -00002800: 7265 6265 6e20 5261 6e64 686f 6c20 283c reben Randhol (< │ │ │ │ │ -00002810: 7261 6e64 686f 6c40 7076 762e 6f72 673e randhol@pvv.org> │ │ │ │ │ -00002820: 290a 2020 202a 204d 6178 696d 2052 657a ). * Maxim Rez │ │ │ │ │ -00002830: 6e69 6b20 283c 6d61 7831 406d 6261 6e6b nik (). * J │ │ │ │ │ -00002850: 6f65 6c20 5368 6572 7269 6c6c 2028 3c6a oel Sherrill (). * │ │ │ │ │ -00002880: 5361 6d75 656c 2054 6172 6469 6575 2028 Samuel Tardieu ( │ │ │ │ │ -00002890: 3c73 616d 4072 6663 3131 3439 2e6e 6574 ).. If you fe │ │ │ │ │ -000028b0: 656c 2074 6861 7420 796f 7520 6861 7665 el that you have │ │ │ │ │ -000028c0: 2062 6565 6e20 666f 7267 6f74 7465 6e2c been forgotten, │ │ │ │ │ -000028d0: 2070 6c65 6173 6520 7365 6e64 206d 6520 please send me │ │ │ │ │ -000028e0: 6120 6d61 696c 2073 6f0a 7468 6174 2049 a mail so.that I │ │ │ │ │ -000028f0: 2063 616e 2066 6978 2069 7420 696e 2074 can fix it in t │ │ │ │ │ -00002900: 6865 206e 6578 7420 7665 7273 696f 6e2e he next version. │ │ │ │ │ -00002910: 0a0a 2020 202a 4e6f 7465 2052 6573 6f75 .. *Note Resou │ │ │ │ │ -00002920: 7263 6573 206f 6e20 7468 6520 496e 7465 rces on the Inte │ │ │ │ │ -00002930: 726e 6574 3a3a 2c20 666f 7220 686f 7720 rnet::, for how │ │ │ │ │ -00002940: 746f 2063 6f6e 7472 6962 7574 652e 0a0a to contribute... │ │ │ │ │ -00002950: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ -00002960: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ -00002970: 5265 736f 7572 6365 7320 6f6e 2074 6865 Resources on the │ │ │ │ │ -00002980: 2049 6e74 6572 6e65 742c 2020 4e65 7874 Internet, Next │ │ │ │ │ -00002990: 3a20 496e 6465 782c 2020 5072 6576 3a20 : Index, Prev: │ │ │ │ │ -000029a0: 436f 6e74 7269 6275 746f 7273 2c20 2055 Contributors, U │ │ │ │ │ -000029b0: 703a 2054 6f70 0a0a 4170 7065 6e64 6978 p: Top..Appendix │ │ │ │ │ -000029c0: 2042 2052 6573 6f75 7263 6573 206f 6e20 B Resources on │ │ │ │ │ -000029d0: 7468 6520 496e 7465 726e 6574 0a2a 2a2a the Internet.*** │ │ │ │ │ -000029e0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -000029f0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -00002a00: 2a0a 0a54 6865 206c 6174 6573 7420 7665 *..The latest ve │ │ │ │ │ -00002a10: 7273 696f 6e20 6f66 2041 6461 536f 636b rsion of AdaSock │ │ │ │ │ -00002a20: 6574 7320 6361 6e20 616c 7761 7973 2062 ets can always b │ │ │ │ │ -00002a30: 6520 666f 756e 6420 6174 3a0a 0a20 2020 e found at:.. │ │ │ │ │ -00002a40: 2020 2020 2020 2020 2020 2020 3c68 7474 .. You ca │ │ │ │ │ -00002a80: 6e20 7265 706f 7274 2069 7373 7565 7320 n report issues │ │ │ │ │ -00002a90: 6f72 2073 7562 6d69 7420 7175 6573 7469 or submit questi │ │ │ │ │ -00002aa0: 6f6e 7320 6f6e 2047 6974 4875 6227 7320 ons on GitHub's │ │ │ │ │ -00002ab0: 6973 7375 6520 7472 6163 6b65 720a 6174 issue tracker.at │ │ │ │ │ -00002ac0: 3a0a 0a20 2020 2020 2020 2020 3c68 7474 :.. │ │ │ │ │ -00002b00: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ -00002b10: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ -00002b20: 3a20 496e 6465 782c 2020 5072 6576 3a20 : Index, Prev: │ │ │ │ │ -00002b30: 5265 736f 7572 6365 7320 6f6e 2074 6865 Resources on the │ │ │ │ │ -00002b40: 2049 6e74 6572 6e65 742c 2020 5570 3a20 Internet, Up: │ │ │ │ │ -00002b50: 546f 700a 0a49 6e64 6578 0a2a 2a2a 2a2a Top..Index.***** │ │ │ │ │ -00002b60: 0a0a 0008 5b69 6e64 6578 0008 5d0a 2a20 ....[index..].* │ │ │ │ │ -00002b70: 4d65 6e75 3a0a 0a2a 2041 6461 2e53 7472 Menu:..* Ada.Str │ │ │ │ │ -00002b80: 6561 6d73 2e53 7472 6561 6d5f 456c 656d eams.Stream_Elem │ │ │ │ │ -00002b90: 656e 745f 4172 7261 793a 2020 2020 2020 ent_Array: │ │ │ │ │ -00002ba0: 5261 7720 6461 7461 206d 616e 6970 756c Raw data manipul │ │ │ │ │ -00002bb0: 6174 696f 6e2e 0a20 2020 2020 2020 2020 ation.. │ │ │ │ │ -00002bc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002bd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002be0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002bf0: 2020 2020 2020 286c 696e 6520 2036 290a (line 6). │ │ │ │ │ -00002c00: 2a20 4164 6153 6f63 6b65 7473 2070 7265 * AdaSockets pre │ │ │ │ │ -00002c10: 7365 6e74 6174 696f 6e3a 2020 2020 2020 sentation: │ │ │ │ │ -00002c20: 2020 2020 2020 2020 2057 6861 7420 6973 What is │ │ │ │ │ -00002c30: 2041 6461 536f 636b 6574 733f 2e20 2028 AdaSockets?. ( │ │ │ │ │ -00002c40: 6c69 6e65 2020 3629 0a2a 2043 6f6d 7061 line 6).* Compa │ │ │ │ │ -00002c50: 7261 6973 6f6e 2077 6974 6820 474e 4154 raison with GNAT │ │ │ │ │ -00002c60: 2e53 6f63 6b65 7473 3a20 2020 2020 2020 .Sockets: │ │ │ │ │ -00002c70: 2020 5768 6174 2069 7320 4164 6153 6f63 What is AdaSoc │ │ │ │ │ -00002c80: 6b65 7473 3f2e 2020 286c 696e 6520 2036 kets?. (line 6 │ │ │ │ │ -00002c90: 290a 2a20 436f 6e74 7269 6275 7469 6e67 ).* Contributing │ │ │ │ │ -00002ca0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -00002cb0: 2020 2020 2020 2020 2020 2043 6f6e 7472 Contr │ │ │ │ │ -00002cc0: 6962 7574 6f72 732e 2020 2020 2020 2020 ibutors. │ │ │ │ │ -00002cd0: 2028 6c69 6e65 2020 3629 0a2a 2043 6f6e (line 6).* Con │ │ │ │ │ -00002ce0: 7472 6962 7574 696e 6720 3c31 3e3a 2020 tributing <1>: │ │ │ │ │ -00002cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002d00: 2020 2020 5265 736f 7572 6365 7320 6f6e Resources on │ │ │ │ │ -00002d10: 2074 6865 2049 6e74 6572 6e65 742e 0a20 the Internet.. │ │ │ │ │ -00002d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002d30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002d40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002d50: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -00002d60: 696e 6520 2036 290a 2a20 4372 6561 7465 ine 6).* Create │ │ │ │ │ -00002d70: 5f4d 756c 7469 6361 7374 5f53 6f63 6b65 _Multicast_Socke │ │ │ │ │ -00002d80: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ │ -00002d90: 2053 6574 7469 6e67 2075 7020 6d75 6c74 Setting up mult │ │ │ │ │ -00002da0: 6963 6173 7420 736f 636b 6574 732e 0a20 icast sockets.. │ │ │ │ │ -00002db0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002dc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002dd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002de0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -00002df0: 696e 6520 3136 290a 2a20 4372 6561 7469 ine 16).* Creati │ │ │ │ │ -00002e00: 6e67 2061 206d 756c 7469 6361 7374 2073 ng a multicast s │ │ │ │ │ -00002e10: 6f63 6b65 743a 2020 2020 2020 2020 2020 ocket: │ │ │ │ │ -00002e20: 2053 6574 7469 6e67 2075 7020 6d75 6c74 Setting up mult │ │ │ │ │ -00002e30: 6963 6173 7420 736f 636b 6574 732e 0a20 icast sockets.. │ │ │ │ │ -00002e40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002e50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002e60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002e70: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -00002e80: 696e 6520 2036 290a 2a20 4372 6561 7469 ine 6).* Creati │ │ │ │ │ -00002e90: 6e67 2061 2073 6f63 6b65 743a 2020 2020 ng a socket: │ │ │ │ │ -00002ea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002eb0: 2053 6574 7469 6e67 2075 7020 756e 6963 Setting up unic │ │ │ │ │ -00002ec0: 6173 7420 736f 636b 6574 732e 0a20 2020 ast sockets.. │ │ │ │ │ -00002ed0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002ee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002ef0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002f00: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00002f10: 6520 2036 290a 2a20 4372 6561 7469 6e67 e 6).* Creating │ │ │ │ │ -00002f20: 2061 2054 4350 2073 6f63 6b65 743a 2020 a TCP socket: │ │ │ │ │ -00002f30: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -00002f40: 6574 7469 6e67 2075 7020 756e 6963 6173 etting up unicas │ │ │ │ │ -00002f50: 7420 736f 636b 6574 732e 0a20 2020 2020 t sockets.. │ │ │ │ │ -00002f60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002f70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002f80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00002f90: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -00002fa0: 2036 290a 2a20 4372 6561 7469 6e67 2061 6).* Creating a │ │ │ │ │ -00002fb0: 2055 4450 2073 6f63 6b65 743a 2020 2020 UDP socket: │ │ │ │ │ -00002fc0: 2020 2020 2020 2020 2020 2020 2053 6574 Set │ │ │ │ │ -00002fd0: 7469 6e67 2075 7020 756e 6963 6173 7420 ting up unicast │ │ │ │ │ -00002fe0: 736f 636b 6574 732e 0a20 2020 2020 2020 sockets.. │ │ │ │ │ -00002ff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003020: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ │ -00003030: 290a 2a20 4372 6561 7469 6e67 2061 2075 ).* Creating a u │ │ │ │ │ -00003040: 6e69 6361 7374 2073 6f63 6b65 743a 2020 nicast socket: │ │ │ │ │ -00003050: 2020 2020 2020 2020 2020 2053 6574 7469 Setti │ │ │ │ │ -00003060: 6e67 2075 7020 756e 6963 6173 7420 736f ng up unicast so │ │ │ │ │ -00003070: 636b 6574 732e 0a20 2020 2020 2020 2020 ckets.. │ │ │ │ │ -00003080: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003090: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000030a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000030b0: 2020 2020 2020 286c 696e 6520 2036 290a (line 6). │ │ │ │ │ -000030c0: 2a20 4669 6e64 696e 6720 4164 6153 6f63 * Finding AdaSoc │ │ │ │ │ -000030d0: 6b65 7473 206f 6e20 7468 6520 496e 7465 kets on the Inte │ │ │ │ │ -000030e0: 726e 6574 3a20 2020 2052 6573 6f75 7263 rnet: Resourc │ │ │ │ │ -000030f0: 6573 206f 6e20 7468 6520 496e 7465 726e es on the Intern │ │ │ │ │ -00003100: 6574 2e0a 2020 2020 2020 2020 2020 2020 et.. │ │ │ │ │ -00003110: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003120: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003140: 2020 2028 6c69 6e65 2020 3629 0a2a 2047 (line 6).* G │ │ │ │ │ -00003150: 726f 7570 2063 6f6d 6d75 6e69 6361 7469 roup communicati │ │ │ │ │ -00003160: 6f6e 3a20 2020 2020 2020 2020 2020 2020 on: │ │ │ │ │ -00003170: 2020 2020 2020 5365 7474 696e 6720 7570 Setting up │ │ │ │ │ -00003180: 206d 756c 7469 6361 7374 2073 6f63 6b65 multicast socke │ │ │ │ │ -00003190: 7473 2e0a 2020 2020 2020 2020 2020 2020 ts.. │ │ │ │ │ -000031a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000031b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000031c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000031d0: 2020 2028 6c69 6e65 2020 3629 0a2a 2049 (line 6).* I │ │ │ │ │ -000031e0: 6e73 7461 6c6c 696e 6720 4164 6153 6f63 nstalling AdaSoc │ │ │ │ │ -000031f0: 6b65 7473 3a20 2020 2020 2020 2020 2020 kets: │ │ │ │ │ -00003200: 2020 2020 2020 496e 7374 616c 6c69 6e67 Installing │ │ │ │ │ -00003210: 2041 6461 536f 636b 6574 732e 0a20 2020 AdaSockets.. │ │ │ │ │ -00003220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003230: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003250: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00003260: 6520 2036 290a 2a20 4d62 6f6e 653a 2020 e 6).* Mbone: │ │ │ │ │ -00003270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003280: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -00003290: 6574 7469 6e67 2075 7020 6d75 6c74 6963 etting up multic │ │ │ │ │ -000032a0: 6173 7420 736f 636b 6574 732e 0a20 2020 ast sockets.. │ │ │ │ │ -000032b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000032c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000032d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000032e0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -000032f0: 6520 2036 290a 2a20 4d75 6c74 6963 6173 e 6).* Multicas │ │ │ │ │ -00003300: 7420 736f 636b 6574 733a 2020 2020 2020 t sockets: │ │ │ │ │ -00003310: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -00003320: 6574 7469 6e67 2075 7020 6d75 6c74 6963 etting up multic │ │ │ │ │ -00003330: 6173 7420 736f 636b 6574 732e 0a20 2020 ast sockets.. │ │ │ │ │ -00003340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003350: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003360: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003370: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00003380: 6520 2036 290a 2a20 4d75 6c74 6963 6173 e 6).* Multicas │ │ │ │ │ -00003390: 745f 536f 636b 6574 5f46 443a 2020 2020 t_Socket_FD: │ │ │ │ │ -000033a0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -000033b0: 6574 7469 6e67 2075 7020 6d75 6c74 6963 etting up multic │ │ │ │ │ -000033c0: 6173 7420 736f 636b 6574 732e 0a20 2020 ast sockets.. │ │ │ │ │ -000033d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000033e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000033f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003400: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00003410: 6520 3136 290a 2a20 5261 7720 6461 7461 e 16).* Raw data │ │ │ │ │ -00003420: 206d 616e 6970 756c 6174 696f 6e3a 2020 manipulation: │ │ │ │ │ -00003430: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ │ -00003440: 6177 2064 6174 6120 6d61 6e69 7075 6c61 aw data manipula │ │ │ │ │ -00003450: 7469 6f6e 2e0a 2020 2020 2020 2020 2020 tion.. │ │ │ │ │ -00003460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003480: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003490: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ │ -000034a0: 2052 6563 6569 7669 6e67 2064 6174 613a Receiving data: │ │ │ │ │ -000034b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000034c0: 2020 2020 2020 2020 5365 6e64 696e 6720 Sending │ │ │ │ │ -000034d0: 616e 6420 7265 6365 6976 696e 6720 6461 and receiving da │ │ │ │ │ -000034e0: 7461 2e0a 2020 2020 2020 2020 2020 2020 ta.. │ │ │ │ │ -000034f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003510: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003520: 2020 2028 6c69 6e65 2020 3629 0a2a 2052 (line 6).* R │ │ │ │ │ -00003530: 6570 6f72 7469 6e67 2061 2062 7567 3a20 eporting a bug: │ │ │ │ │ -00003540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003550: 2020 2020 2020 5265 736f 7572 6365 7320 Resources │ │ │ │ │ -00003560: 6f6e 2074 6865 2049 6e74 6572 6e65 742e on the Internet. │ │ │ │ │ -00003570: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -00003580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000035a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000035b0: 286c 696e 6520 2036 290a 2a20 5365 6e64 (line 6).* Send │ │ │ │ │ -000035c0: 696e 6720 6461 7461 3a20 2020 2020 2020 ing data: │ │ │ │ │ -000035d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000035e0: 2020 2053 656e 6469 6e67 2061 6e64 2072 Sending and r │ │ │ │ │ -000035f0: 6563 6569 7669 6e67 2064 6174 612e 0a20 eceiving data.. │ │ │ │ │ -00003600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003610: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003620: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003630: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -00003640: 696e 6520 2036 290a 2a20 5365 6e64 696e ine 6).* Sendin │ │ │ │ │ -00003650: 6720 7061 7463 6865 733a 2020 2020 2020 g patches: │ │ │ │ │ -00003660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003670: 2052 6573 6f75 7263 6573 206f 6e20 7468 Resources on th │ │ │ │ │ -00003680: 6520 496e 7465 726e 6574 2e0a 2020 2020 e Internet.. │ │ │ │ │ -00003690: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000036a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000036b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000036c0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -000036d0: 2020 3629 0a2a 2053 6f63 6b65 743a 2020 6).* Socket: │ │ │ │ │ -000036e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000036f0: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ -00003700: 7474 696e 6720 7570 2075 6e69 6361 7374 tting up unicast │ │ │ │ │ -00003710: 2073 6f63 6b65 7473 2e0a 2020 2020 2020 sockets.. │ │ │ │ │ -00003720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003750: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ -00003760: 3629 0a2a 2053 6f63 6b65 7473 2e4d 756c 6).* Sockets.Mul │ │ │ │ │ -00003770: 7469 6361 7374 2e43 7265 6174 655f 4d75 ticast.Create_Mu │ │ │ │ │ -00003780: 6c74 6963 6173 745f 536f 636b 6574 3a20 lticast_Socket: │ │ │ │ │ -00003790: 5365 7474 696e 6720 7570 206d 756c 7469 Setting up multi │ │ │ │ │ -000037a0: 6361 7374 2073 6f63 6b65 7473 2e0a 2020 cast sockets.. │ │ │ │ │ -000037b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000037c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000037d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000037e0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -000037f0: 6e65 2031 3629 0a2a 2053 6f63 6b65 7473 ne 16).* Sockets │ │ │ │ │ -00003800: 2e53 6f63 6b65 743a 2020 2020 2020 2020 .Socket: │ │ │ │ │ -00003810: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003820: 5365 7474 696e 6720 7570 2075 6e69 6361 Setting up unica │ │ │ │ │ -00003830: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ -00003840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003870: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -00003880: 2020 3629 0a2a 2053 6f63 6b65 745f 4644 6).* Socket_FD │ │ │ │ │ -00003890: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -000038a0: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ -000038b0: 7474 696e 6720 7570 2075 6e69 6361 7374 tting up unicast │ │ │ │ │ -000038c0: 2073 6f63 6b65 7473 2e0a 2020 2020 2020 sockets.. │ │ │ │ │ -000038d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000038e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000038f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003900: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ -00003910: 3629 0a2a 2053 7472 6561 6d5f 456c 656d 6).* Stream_Elem │ │ │ │ │ -00003920: 656e 745f 4172 7261 793a 2020 2020 2020 ent_Array: │ │ │ │ │ -00003930: 2020 2020 2020 2020 2020 2020 5261 7720 Raw │ │ │ │ │ -00003940: 6461 7461 206d 616e 6970 756c 6174 696f data manipulatio │ │ │ │ │ -00003950: 6e2e 0a20 2020 2020 2020 2020 2020 2020 n.. │ │ │ │ │ -00003960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003970: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003980: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003990: 2020 286c 696e 6520 2036 290a 2a20 5375 (line 6).* Su │ │ │ │ │ -000039a0: 6767 6573 7469 6e67 2061 2066 6561 7475 ggesting a featu │ │ │ │ │ -000039b0: 7265 3a20 2020 2020 2020 2020 2020 2020 re: │ │ │ │ │ -000039c0: 2020 2020 2052 6573 6f75 7263 6573 206f Resources o │ │ │ │ │ -000039d0: 6e20 7468 6520 496e 7465 726e 6574 2e0a n the Internet.. │ │ │ │ │ -000039e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000039f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003a00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003a10: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ -00003a20: 6c69 6e65 2020 3629 0a2a 2054 4350 2073 line 6).* TCP s │ │ │ │ │ -00003a30: 6f63 6b65 743a 2020 2020 2020 2020 2020 ocket: │ │ │ │ │ -00003a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003a50: 2020 5365 7474 696e 6720 7570 2075 6e69 Setting up uni │ │ │ │ │ -00003a60: 6361 7374 2073 6f63 6b65 7473 2e0a 2020 cast sockets.. │ │ │ │ │ -00003a70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003a80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003a90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003aa0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -00003ab0: 6e65 2020 3629 0a2a 2055 4450 2073 6f63 ne 6).* UDP soc │ │ │ │ │ -00003ac0: 6b65 743a 2020 2020 2020 2020 2020 2020 ket: │ │ │ │ │ -00003ad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003ae0: 5365 7474 696e 6720 7570 2075 6e69 6361 Setting up unica │ │ │ │ │ -00003af0: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ -00003b00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003b10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003b20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003b30: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -00003b40: 2020 3629 0a2a 2055 6e69 6361 7374 2073 6).* Unicast s │ │ │ │ │ -00003b50: 6f63 6b65 7473 3a20 2020 2020 2020 2020 ockets: │ │ │ │ │ -00003b60: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ -00003b70: 7474 696e 6720 7570 2075 6e69 6361 7374 tting up unicast │ │ │ │ │ -00003b80: 2073 6f63 6b65 7473 2e0a 2020 2020 2020 sockets.. │ │ │ │ │ -00003b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003ba0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003bb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003bc0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ -00003bd0: 3629 0a0a 0a1f 0a54 6167 2054 6162 6c65 6).....Tag Table │ │ │ │ │ -00003be0: 3a0a 4e6f 6465 3a20 546f 707f 3831 370a :.Node: Top.817. │ │ │ │ │ -00003bf0: 4e6f 6465 3a20 5768 6174 2069 7320 4164 Node: What is Ad │ │ │ │ │ -00003c00: 6153 6f63 6b65 7473 3f7f 3133 3930 0a4e aSockets?.1390.N │ │ │ │ │ -00003c10: 6f64 653a 2049 6e73 7461 6c6c 696e 6720 ode: Installing │ │ │ │ │ -00003c20: 4164 6153 6f63 6b65 7473 7f32 3238 330a AdaSockets.2283. │ │ │ │ │ -00003c30: 4e6f 6465 3a20 5573 696e 6720 4164 6153 Node: Using AdaS │ │ │ │ │ -00003c40: 6f63 6b65 7473 7f33 3237 300a 4e6f 6465 ockets.3270.Node │ │ │ │ │ -00003c50: 3a20 436f 6d70 696c 696e 6720 616e 2041 : Compiling an A │ │ │ │ │ -00003c60: 6461 2061 7070 6c69 6361 7469 6f6e 7f33 da application.3 │ │ │ │ │ -00003c70: 3536 310a 4e6f 6465 3a20 5365 7474 696e 561.Node: Settin │ │ │ │ │ -00003c80: 6720 7570 2075 6e69 6361 7374 2073 6f63 g up unicast soc │ │ │ │ │ -00003c90: 6b65 7473 7f34 3138 380a 4e6f 6465 3a20 kets.4188.Node: │ │ │ │ │ -00003ca0: 5365 7474 696e 6720 7570 206d 756c 7469 Setting up multi │ │ │ │ │ -00003cb0: 6361 7374 2073 6f63 6b65 7473 7f35 3439 cast sockets.549 │ │ │ │ │ -00003cc0: 340a 4e6f 6465 3a20 5365 6e64 696e 6720 4.Node: Sending │ │ │ │ │ -00003cd0: 616e 6420 7265 6365 6976 696e 6720 6461 and receiving da │ │ │ │ │ -00003ce0: 7461 7f36 3832 330a 4e6f 6465 3a20 5261 ta.6823.Node: Ra │ │ │ │ │ -00003cf0: 7720 6461 7461 206d 616e 6970 756c 6174 w data manipulat │ │ │ │ │ -00003d00: 696f 6e7f 3731 3835 0a4e 6f64 653a 2053 ion.7185.Node: S │ │ │ │ │ -00003d10: 7472 696e 672d 6f72 6965 6e74 6564 2065 tring-oriented e │ │ │ │ │ -00003d20: 7863 6861 6e67 6573 7f37 3538 350a 4e6f xchanges.7585.No │ │ │ │ │ -00003d30: 6465 3a20 536f 636b 6574 7320 7061 636b de: Sockets pack │ │ │ │ │ -00003d40: 6167 657f 3836 3832 0a4e 6f64 653a 2053 age.8682.Node: S │ │ │ │ │ -00003d50: 6f63 6b65 7473 2e4d 756c 7469 6361 7374 ockets.Multicast │ │ │ │ │ -00003d60: 2070 6163 6b61 6765 7f38 3833 370a 4e6f package.8837.No │ │ │ │ │ -00003d70: 6465 3a20 536f 636b 6574 732e 4e61 6d69 de: Sockets.Nami │ │ │ │ │ -00003d80: 6e67 2070 6163 6b61 6765 7f39 3031 380a ng package.9018. │ │ │ │ │ -00003d90: 4e6f 6465 3a20 436f 6e74 7269 6275 746f Node: Contributo │ │ │ │ │ -00003da0: 7273 7f39 3139 300a 4e6f 6465 3a20 5265 rs.9190.Node: Re │ │ │ │ │ -00003db0: 736f 7572 6365 7320 6f6e 2074 6865 2049 sources on the I │ │ │ │ │ -00003dc0: 6e74 6572 6e65 747f 3130 3537 360a 4e6f nternet.10576.No │ │ │ │ │ -00003dd0: 6465 3a20 496e 6465 787f 3131 3031 300a de: Index.11010. │ │ │ │ │ -00003de0: 1f0a 456e 6420 5461 6720 5461 626c 650a ..End Tag Table. │ │ │ │ │ +00002280: 2a2a 2a0a 0a54 6865 2027 536f 636b 6574 ***..The 'Socket │ │ │ │ │ +00002290: 7327 2070 6163 6b61 6765 2063 6f6e 7461 s' package conta │ │ │ │ │ +000022a0: 696e 7320 616c 6c20 7468 6520 6465 6669 ins all the defi │ │ │ │ │ +000022b0: 6e69 7469 6f6e 7320 616e 6420 7375 6270 nitions and subp │ │ │ │ │ +000022c0: 726f 6772 616d 730a 6e65 6564 6564 2074 rograms.needed t │ │ │ │ │ +000022d0: 6f20 6275 696c 6420 6120 7369 6d70 6c65 o build a simple │ │ │ │ │ +000022e0: 2075 6e69 6361 7374 2063 6c69 656e 7420 unicast client │ │ │ │ │ +000022f0: 6f72 2073 6572 7665 722e 0a0a 202d 2d20 or server... -- │ │ │ │ │ +00002300: 536f 636b 6574 732e 536f 636b 6574 5f46 Sockets.Socket_F │ │ │ │ │ +00002310: 443a 2074 7970 6520 536f 636b 6574 5f46 D: type Socket_F │ │ │ │ │ +00002320: 4420 6973 2074 6167 6765 6420 7072 6976 D is tagged priv │ │ │ │ │ +00002330: 6174 653b 0a20 2020 2020 5468 6520 2753 ate;. The 'S │ │ │ │ │ +00002340: 6f63 6b65 745f 4644 2720 7461 6767 6564 ocket_FD' tagged │ │ │ │ │ +00002350: 2074 7970 6520 6973 2074 6865 2072 6f6f type is the roo │ │ │ │ │ +00002360: 7420 7479 7065 206f 6620 616c 6c20 736f t type of all so │ │ │ │ │ +00002370: 636b 6574 732e 2020 4974 0a20 2020 2020 ckets. It. │ │ │ │ │ +00002380: 6765 7473 2069 6e69 7469 616c 697a 6564 gets initialized │ │ │ │ │ +00002390: 2062 7920 6361 6c6c 696e 6720 2a6e 6f74 by calling *not │ │ │ │ │ +000023a0: 6520 536f 636b 6574 2028 7072 6f63 6564 e Socket (proced │ │ │ │ │ +000023b0: 7572 6529 3a3a 2e20 2041 6e0a 2020 2020 ure)::. An. │ │ │ │ │ +000023c0: 2075 6e69 6e69 7469 616c 697a 6564 2027 uninitialized ' │ │ │ │ │ +000023d0: 536f 636b 6574 5f46 4427 2063 616e 2062 Socket_FD' can b │ │ │ │ │ +000023e0: 6520 7375 6363 6573 6675 6c6c 7920 636f e succesfully co │ │ │ │ │ +000023f0: 6d70 6172 6564 2074 6f0a 2020 2020 2027 mpared to. ' │ │ │ │ │ +00002400: 4e75 6c6c 5f53 6f63 6b65 745f 4644 272e Null_Socket_FD'. │ │ │ │ │ +00002410: 0a0a 2a20 4d65 6e75 3a0a 0a2a 2041 6363 ..* Menu:..* Acc │ │ │ │ │ +00002420: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +00002430: 6564 7572 6529 3a3a 0a20 2020 2020 2020 edure)::. │ │ │ │ │ +00002440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00002450: 2041 6363 6570 7420 616e 2069 6e63 6f6d Accept an incom │ │ │ │ │ +00002460: 696e 6720 636f 6e6e 6563 7469 6f6e 0a2a ing connection.* │ │ │ │ │ +00002470: 2042 696e 6420 2870 726f 6365 6475 7265 Bind (procedure │ │ │ │ │ +00002480: 293a 3a20 2020 2041 7373 6f63 6961 7465 ):: Associate │ │ │ │ │ +00002490: 2061 206c 6f63 616c 2070 6f72 7420 746f a local port to │ │ │ │ │ +000024a0: 2061 2073 6f63 6b65 740a 2a20 436f 6e6e a socket.* Conn │ │ │ │ │ +000024b0: 6563 7420 2870 726f 6365 6475 7265 293a ect (procedure): │ │ │ │ │ +000024c0: 3a20 436f 6e6e 6563 7420 6120 736f 636b : Connect a sock │ │ │ │ │ +000024d0: 6574 206f 6e20 6120 6769 7665 6e20 686f et on a given ho │ │ │ │ │ +000024e0: 7374 2f70 6f72 740a 2a20 4765 7420 2866 st/port.* Get (f │ │ │ │ │ +000024f0: 756e 6374 696f 6e29 3a3a 2020 2020 2020 unction):: │ │ │ │ │ +00002500: 4765 7420 6120 7374 7269 6e67 2066 726f Get a string fro │ │ │ │ │ +00002510: 6d20 6120 7265 6d6f 7465 2068 6f73 740a m a remote host. │ │ │ │ │ +00002520: 2a20 4765 745f 4368 6172 2028 6675 6e63 * Get_Char (func │ │ │ │ │ +00002530: 7469 6f6e 293a 3a20 4765 7420 6120 6368 tion):: Get a ch │ │ │ │ │ +00002540: 6172 6163 7465 7220 6672 6f6d 2061 2072 aracter from a r │ │ │ │ │ +00002550: 656d 6f74 6520 686f 7374 0a2a 2047 6574 emote host.* Get │ │ │ │ │ +00002560: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ +00002570: 3a3a 2047 6574 2061 2077 686f 6c65 206c :: Get a whole l │ │ │ │ │ +00002580: 696e 6520 6672 6f6d 2061 2072 656d 6f74 ine from a remot │ │ │ │ │ +00002590: 6520 686f 7374 0a2a 2047 6574 5f4c 696e e host.* Get_Lin │ │ │ │ │ +000025a0: 6520 2870 726f 6365 6475 7265 293a 3a0a e (procedure)::. │ │ │ │ │ +000025b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000025c0: 2020 2020 2020 2020 4765 7420 6120 7768 Get a wh │ │ │ │ │ +000025d0: 6f6c 6520 6c69 6e65 2066 726f 6d20 6120 ole line from a │ │ │ │ │ +000025e0: 7265 6d6f 7465 2068 6f73 740a 2a20 4765 remote host.* Ge │ │ │ │ │ +000025f0: 745f 5265 6365 6976 655f 5175 6575 655f t_Receive_Queue_ │ │ │ │ │ +00002600: 5369 7a65 2028 6675 6e63 7469 6f6e 293a Size (function): │ │ │ │ │ +00002610: 3a0a 2020 2020 2020 2020 2020 2020 2020 :. │ │ │ │ │ +00002620: 2020 2020 2020 2020 2020 5265 7475 726e Return │ │ │ │ │ +00002630: 2074 6865 2073 697a 6520 6f66 2074 6865 the size of the │ │ │ │ │ +00002640: 2075 6e72 6561 6420 6461 7461 2069 6e20 unread data in │ │ │ │ │ +00002650: 7468 6520 696e 7075 7420 7175 6575 650a the input queue. │ │ │ │ │ +00002660: 2a20 4765 745f 5365 6e64 5f51 7565 7565 * Get_Send_Queue │ │ │ │ │ +00002670: 5f53 697a 6520 2866 756e 6374 696f 6e29 _Size (function) │ │ │ │ │ +00002680: 3a3a 0a20 2020 2020 2020 2020 2020 2020 ::. │ │ │ │ │ +00002690: 2020 2020 2020 2020 2020 2052 6574 7572 Retur │ │ │ │ │ +000026a0: 6e20 7468 6520 7369 7a65 206f 6620 7468 n the size of th │ │ │ │ │ +000026b0: 6520 756e 7365 6e74 2064 6174 6120 696e e unsent data in │ │ │ │ │ +000026c0: 2074 6865 206f 7574 7075 7420 7175 6575 the output queu │ │ │ │ │ +000026d0: 650a 2a20 4765 7473 6f63 6b6f 7074 2028 e.* Getsockopt ( │ │ │ │ │ +000026e0: 7072 6f63 6564 7572 6529 3a3a 0a20 2020 procedure)::. │ │ │ │ │ +000026f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00002700: 2020 2020 2052 6574 7269 6576 6520 6120 Retrieve a │ │ │ │ │ +00002710: 736f 636b 6574 206f 7074 696f 6e0a 2a20 socket option.* │ │ │ │ │ +00002720: 4c69 7374 656e 2028 7072 6f63 6564 7572 Listen (procedur │ │ │ │ │ +00002730: 6529 3a3a 2020 4573 7461 626c 6973 6820 e):: Establish │ │ │ │ │ +00002740: 6120 6c69 7374 656e 2071 7565 7565 0a2a a listen queue.* │ │ │ │ │ +00002750: 204e 6577 5f4c 696e 6520 2870 726f 6365 New_Line (proce │ │ │ │ │ +00002760: 6475 7265 293a 3a0a 2020 2020 2020 2020 dure)::. │ │ │ │ │ +00002770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00002780: 5365 6e64 2061 2043 522f 4c46 2074 6f20 Send a CR/LF to │ │ │ │ │ +00002790: 6120 7265 6d6f 7465 2068 6f73 740a 2a20 a remote host.* │ │ │ │ │ +000027a0: 5075 7420 2870 726f 6365 6475 7265 293a Put (procedure): │ │ │ │ │ +000027b0: 3a20 2020 2020 5365 6e64 2061 2073 7472 : Send a str │ │ │ │ │ +000027c0: 696e 6720 746f 2061 2072 656d 6f74 6520 ing to a remote │ │ │ │ │ +000027d0: 686f 7374 0a2a 2050 7574 5f4c 696e 6520 host.* Put_Line │ │ │ │ │ +000027e0: 2870 726f 6365 6475 7265 293a 3a0a 2020 (procedure)::. │ │ │ │ │ +000027f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00002800: 2020 2020 2020 5365 6e64 2061 2043 522f Send a CR/ │ │ │ │ │ +00002810: 4c46 2074 6572 6d69 6e61 7465 6420 7374 LF terminated st │ │ │ │ │ +00002820: 7269 6e67 2074 6f20 6120 7265 6d6f 7465 ring to a remote │ │ │ │ │ +00002830: 2068 6f73 740a 2a20 5265 6365 6976 6520 host.* Receive │ │ │ │ │ +00002840: 2866 756e 6374 696f 6e29 3a3a 2020 5265 (function):: Re │ │ │ │ │ +00002850: 6365 6976 6520 7261 7720 6461 7461 206f ceive raw data o │ │ │ │ │ +00002860: 7665 7220 6120 736f 636b 6574 0a2a 2052 ver a socket.* R │ │ │ │ │ +00002870: 6563 6569 7665 2028 7072 6f63 6564 7572 eceive (procedur │ │ │ │ │ +00002880: 6529 3a3a 2052 6563 6569 7665 2072 6177 e):: Receive raw │ │ │ │ │ +00002890: 2064 6174 6120 6f76 6572 2061 2073 6f63 data over a soc │ │ │ │ │ +000028a0: 6b65 740a 2a20 5265 6365 6976 655f 536f ket.* Receive_So │ │ │ │ │ +000028b0: 6d65 2028 7072 6f63 6564 7572 6529 3a3a me (procedure):: │ │ │ │ │ +000028c0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +000028d0: 2020 2020 2020 2020 2052 6563 6569 7665 Receive │ │ │ │ │ +000028e0: 2072 6177 2064 6174 6120 6f76 6572 2061 raw data over a │ │ │ │ │ +000028f0: 2073 6f63 6b65 740a 2a20 5365 6e64 2028 socket.* Send ( │ │ │ │ │ +00002900: 7072 6f63 6564 7572 6529 3a3a 2020 2020 procedure):: │ │ │ │ │ +00002910: 5365 6e64 2072 6177 2064 6174 6120 6f76 Send raw data ov │ │ │ │ │ +00002920: 6572 2061 2073 6f63 6b65 740a 2a20 5365 er a socket.* Se │ │ │ │ │ +00002930: 745f 4275 6666 6572 2028 7072 6f63 6564 t_Buffer (proced │ │ │ │ │ +00002940: 7572 6529 3a3a 0a20 2020 2020 2020 2020 ure)::. │ │ │ │ │ +00002950: 2020 2020 2020 2020 2020 2020 2020 2049 I │ │ │ │ │ +00002960: 6e73 7461 6c6c 2061 206c 696e 652d 6f72 nstall a line-or │ │ │ │ │ +00002970: 6965 6e74 6564 2062 7566 6665 7220 6f66 iented buffer of │ │ │ │ │ +00002980: 2074 6865 2073 6f63 6b65 7420 6f62 6a65 the socket obje │ │ │ │ │ +00002990: 6374 0a2a 2053 6574 736f 636b 6f70 7420 ct.* Setsockopt │ │ │ │ │ +000029a0: 2870 726f 6365 6475 7265 293a 3a0a 2020 (procedure)::. │ │ │ │ │ +000029b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000029c0: 2020 2020 2020 5365 7420 6120 736f 636b Set a sock │ │ │ │ │ +000029d0: 6574 206f 7074 696f 6e0a 2a20 5368 7574 et option.* Shut │ │ │ │ │ +000029e0: 646f 776e 2028 7072 6f63 6564 7572 6529 down (procedure) │ │ │ │ │ +000029f0: 3a3a 0a20 2020 2020 2020 2020 2020 2020 ::. │ │ │ │ │ +00002a00: 2020 2020 2020 2020 2020 2053 6875 7464 Shutd │ │ │ │ │ +00002a10: 6f77 6e20 6120 736f 636b 6574 0a2a 2053 own a socket.* S │ │ │ │ │ +00002a20: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00002a30: 293a 3a20 2043 7265 6174 6520 6120 736f ):: Create a so │ │ │ │ │ +00002a40: 636b 6574 206f 6620 7468 6520 6769 7665 cket of the give │ │ │ │ │ +00002a50: 6e20 6d6f 6465 0a2a 2055 6e73 6574 5f42 n mode.* Unset_B │ │ │ │ │ +00002a60: 7566 6665 7220 2870 726f 6365 6475 7265 uffer (procedure │ │ │ │ │ +00002a70: 293a 3a0a 2020 2020 2020 2020 2020 2020 )::. │ │ │ │ │ +00002a80: 2020 2020 2020 2020 2020 2020 4465 696e Dein │ │ │ │ │ +00002a90: 7374 616c 6c20 7468 6520 6c69 6e65 2d6f stall the line-o │ │ │ │ │ +00002aa0: 7269 656e 7465 6420 6275 6666 6572 206f riented buffer o │ │ │ │ │ +00002ab0: 6620 7468 6520 736f 636b 6574 206f 626a f the socket obj │ │ │ │ │ +00002ac0: 6563 740a 0a1f 0a46 696c 653a 2061 6461 ect....File: ada │ │ │ │ │ +00002ad0: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +00002ae0: 6f64 653a 2041 6363 6570 745f 536f 636b ode: Accept_Sock │ │ │ │ │ +00002af0: 6574 2028 7072 6f63 6564 7572 6529 2c20 et (procedure), │ │ │ │ │ +00002b00: 204e 6578 743a 2042 696e 6420 2870 726f Next: Bind (pro │ │ │ │ │ +00002b10: 6365 6475 7265 292c 2020 5570 3a20 536f cedure), Up: So │ │ │ │ │ +00002b20: 636b 6574 7320 7061 636b 6167 650a 0a41 ckets package..A │ │ │ │ │ +00002b30: 6363 6570 745f 536f 636b 6574 2028 7072 ccept_Socket (pr │ │ │ │ │ +00002b40: 6f63 6564 7572 6529 0a3d 3d3d 3d3d 3d3d ocedure).======= │ │ │ │ │ +00002b50: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ │ +00002b60: 3d3d 0a0a 5055 5250 4f53 450a 2020 2020 ==..PURPOSE. │ │ │ │ │ +00002b70: 2041 6363 6570 7420 616e 2069 6e63 6f6d Accept an incom │ │ │ │ │ +00002b80: 696e 6720 636f 6e6e 6563 7469 6f6e 0a50 ing connection.P │ │ │ │ │ +00002b90: 524f 544f 5459 5045 0a20 2020 2020 202d ROTOTYPE. - │ │ │ │ │ +00002ba0: 2d20 536f 636b 6574 732e 4163 6365 7074 - Sockets.Accept │ │ │ │ │ +00002bb0: 5f53 6f63 6b65 743a 2070 726f 6365 6475 _Socket: procedu │ │ │ │ │ +00002bc0: 7265 2041 6363 6570 745f 536f 636b 6574 re Accept_Socket │ │ │ │ │ +00002bd0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00002be0: 2853 4f43 4b45 5420 3a20 536f 636b 6574 (SOCKET : Socket │ │ │ │ │ +00002bf0: 5f46 443b 204e 4557 5f53 4f43 4b45 5420 _FD; NEW_SOCKET │ │ │ │ │ +00002c00: 3a20 6f75 7420 536f 636b 6574 5f46 4429 : out Socket_FD) │ │ │ │ │ +00002c10: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +00002c20: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ +00002c30: 2020 2020 2020 2020 2049 6e69 7469 616c Initial │ │ │ │ │ +00002c40: 697a 6564 0a20 2020 2020 4e45 575f 534f ized. NEW_SO │ │ │ │ │ +00002c50: 434b 4554 206f 7574 2020 2020 2020 2020 CKET out │ │ │ │ │ +00002c60: 496e 636f 6d69 6e67 2073 6f63 6b65 7420 Incoming socket │ │ │ │ │ +00002c70: 6f62 6a65 6374 0a0a 4445 5343 5249 5054 object..DESCRIPT │ │ │ │ │ +00002c80: 494f 4e0a 2020 2020 2054 6869 7320 7072 ION. This pr │ │ │ │ │ +00002c90: 6f63 6564 7572 6520 6372 6561 7465 7320 ocedure creates │ │ │ │ │ +00002ca0: 6120 6e65 7720 736f 636b 6574 2063 6f72 a new socket cor │ │ │ │ │ +00002cb0: 7265 7370 6f6e 6469 6e67 2074 6f20 616e responding to an │ │ │ │ │ +00002cc0: 2069 6e63 6f6d 696e 670a 2020 2020 2063 incoming. c │ │ │ │ │ +00002cd0: 6f6e 6e65 6374 696f 6e20 6f6e 2054 4350 onnection on TCP │ │ │ │ │ +00002ce0: 2073 6f63 6b65 7420 534f 434b 4554 2e20 socket SOCKET. │ │ │ │ │ +00002cf0: 2041 6c6c 2074 6865 2063 6f6d 6d75 6e69 All the communi │ │ │ │ │ +00002d00: 6361 7469 6f6e 7320 7769 7468 2074 6865 cations with the │ │ │ │ │ +00002d10: 0a20 2020 2020 7065 6572 2077 696c 6c20 . peer will │ │ │ │ │ +00002d20: 7461 6b65 2070 6c61 6365 206f 6e20 4e45 take place on NE │ │ │ │ │ +00002d30: 575f 534f 434b 4554 2c20 7768 696c 6520 W_SOCKET, while │ │ │ │ │ +00002d40: 7468 6520 7072 6f67 7261 6d20 6361 6e20 the program can │ │ │ │ │ +00002d50: 6163 6365 7074 0a20 2020 2020 616e 6f74 accept. anot │ │ │ │ │ +00002d60: 6865 7220 636f 6e6e 6563 7469 6f6e 206f her connection o │ │ │ │ │ +00002d70: 6e20 534f 434b 4554 2e0a 0a20 2020 2020 n SOCKET... │ │ │ │ │ +00002d80: 4e45 575f 534f 434b 4554 206d 7573 7420 NEW_SOCKET must │ │ │ │ │ +00002d90: 6e6f 7420 6265 2069 6e69 7469 616c 697a not be initializ │ │ │ │ │ +00002da0: 6564 2062 6566 6f72 6520 6361 6c6c 696e ed before callin │ │ │ │ │ +00002db0: 6720 7468 6973 2070 726f 6365 6475 7265 g this procedure │ │ │ │ │ +00002dc0: 2c0a 2020 2020 206f 7220 6d75 7374 2068 ,. or must h │ │ │ │ │ +00002dd0: 6176 6520 6265 656e 2063 6c65 616e 6564 ave been cleaned │ │ │ │ │ +00002de0: 2075 7020 6279 2063 616c 6c69 6e67 2027 up by calling ' │ │ │ │ │ +00002df0: 5368 7574 646f 776e 272c 2069 6e20 6f72 Shutdown', in or │ │ │ │ │ +00002e00: 6465 7220 746f 0a20 2020 2020 6176 6f69 der to. avoi │ │ │ │ │ +00002e10: 6420 6120 6669 6c65 2064 6573 6372 6970 d a file descrip │ │ │ │ │ +00002e20: 746f 7273 206c 6561 6b2e 0a0a 2020 2020 tors leak... │ │ │ │ │ +00002e30: 2027 4163 6365 7074 5f53 6f63 6b65 7427 'Accept_Socket' │ │ │ │ │ +00002e40: 2077 696c 6c20 626c 6f63 6b20 756e 7469 will block unti │ │ │ │ │ +00002e50: 6c20 616e 2069 6e63 6f6d 696e 6720 636f l an incoming co │ │ │ │ │ +00002e60: 6e6e 6563 7469 6f6e 2069 7320 7265 6164 nnection is read │ │ │ │ │ +00002e70: 7920 746f 0a20 2020 2020 6265 2061 6363 y to. be acc │ │ │ │ │ +00002e80: 6570 7465 642e 0a0a 4558 414d 504c 450a epted...EXAMPLE. │ │ │ │ │ +00002e90: 2020 2020 2020 2020 2020 6465 636c 6172 declar │ │ │ │ │ +00002ea0: 650a 2020 2020 2020 2020 2020 2020 2053 e. S │ │ │ │ │ +00002eb0: 6f63 6b20 2020 2020 3a20 536f 636b 6574 ock : Socket │ │ │ │ │ +00002ec0: 5f46 443b 0a20 2020 2020 2020 2020 2020 _FD;. │ │ │ │ │ +00002ed0: 2020 496e 636f 6d69 6e67 203a 2053 6f63 Incoming : Soc │ │ │ │ │ +00002ee0: 6b65 745f 4644 3b0a 2020 2020 2020 2020 ket_FD;. │ │ │ │ │ +00002ef0: 2020 6265 6769 6e0a 2020 2020 2020 2020 begin. │ │ │ │ │ +00002f00: 2020 2020 202d 2d20 4372 6561 7465 2061 -- Create a │ │ │ │ │ +00002f10: 2054 4350 2073 6f63 6b65 7420 6c69 7374 TCP socket list │ │ │ │ │ +00002f20: 656e 696e 6720 6f6e 206c 6f63 616c 2070 ening on local p │ │ │ │ │ +00002f30: 6f72 7420 3431 3631 0a20 2020 2020 2020 ort 4161. │ │ │ │ │ +00002f40: 2020 2020 2020 536f 636b 6574 2028 536f Socket (So │ │ │ │ │ +00002f50: 636b 2c20 5046 5f49 4e45 542c 2053 4f43 ck, PF_INET, SOC │ │ │ │ │ +00002f60: 4b5f 5354 5245 414d 293b 0a20 2020 2020 K_STREAM);. │ │ │ │ │ +00002f70: 2020 2020 2020 2020 4269 6e64 2028 536f Bind (So │ │ │ │ │ +00002f80: 636b 2c20 3431 3631 293b 0a20 2020 2020 ck, 4161);. │ │ │ │ │ +00002f90: 2020 2020 2020 2020 4c69 7374 656e 2028 Listen ( │ │ │ │ │ +00002fa0: 536f 636b 2c20 3329 3b0a 2020 2020 2020 Sock, 3);. │ │ │ │ │ +00002fb0: 2020 2020 2020 202d 2d20 4f6e 652d 636f -- One-co │ │ │ │ │ +00002fc0: 6e6e 6563 7469 6f6e 2d61 742d 612d 7469 nnection-at-a-ti │ │ │ │ │ +00002fd0: 6d65 2073 6572 7665 7220 2833 206d 6179 me server (3 may │ │ │ │ │ +00002fe0: 2062 6520 7065 6e64 696e 6729 0a20 2020 be pending). │ │ │ │ │ +00002ff0: 2020 2020 2020 2020 2020 6c6f 6f70 0a20 loop. │ │ │ │ │ +00003000: 2020 2020 2020 2020 2020 2020 2020 202d - │ │ │ │ │ +00003010: 2d20 5761 6974 2066 6f72 2061 206e 6577 - Wait for a new │ │ │ │ │ +00003020: 2063 6f6e 6e65 6374 696f 6e20 616e 6420 connection and │ │ │ │ │ +00003030: 6163 6365 7074 2069 740a 2020 2020 2020 accept it. │ │ │ │ │ +00003040: 2020 2020 2020 2020 2020 4163 6365 7074 Accept │ │ │ │ │ +00003050: 5f53 6f63 6b65 7420 2853 6f63 6b2c 2049 _Socket (Sock, I │ │ │ │ │ +00003060: 6e63 6f6d 696e 6729 3b0a 2020 2020 2020 ncoming);. │ │ │ │ │ +00003070: 2020 2020 2020 2020 2020 2d2d 2044 6f20 -- Do │ │ │ │ │ +00003080: 736f 6d65 2064 6961 6c6f 6720 7769 7468 some dialog with │ │ │ │ │ +00003090: 2074 6865 2072 656d 6f74 6520 686f 7374 the remote host │ │ │ │ │ +000030a0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +000030b0: 2044 6f5f 536f 6d65 5f44 6961 6c6f 6720 Do_Some_Dialog │ │ │ │ │ +000030c0: 2849 6e63 6f6d 696e 6729 3b0a 2020 2020 (Incoming);. │ │ │ │ │ +000030d0: 2020 2020 2020 2020 2020 2020 2d2d 2043 -- C │ │ │ │ │ +000030e0: 6c6f 7365 2069 6e63 6f6d 696e 6720 736f lose incoming so │ │ │ │ │ +000030f0: 636b 6574 2061 6e64 2077 6169 7420 666f cket and wait fo │ │ │ │ │ +00003100: 7220 6e65 7874 2063 6f6e 6e65 6374 696f r next connectio │ │ │ │ │ +00003110: 6e0a 2020 2020 2020 2020 2020 2020 2020 n. │ │ │ │ │ +00003120: 2020 5368 7574 646f 776e 2028 496e 636f Shutdown (Inco │ │ │ │ │ +00003130: 6d69 6e67 293b 0a20 2020 2020 2020 2020 ming);. │ │ │ │ │ +00003140: 2020 2020 656e 6420 6c6f 6f70 3b0a 2020 end loop;. │ │ │ │ │ +00003150: 2020 2020 2020 2020 656e 643b 0a0a 5345 end;..SE │ │ │ │ │ +00003160: 4520 414c 534f 0a20 2020 2020 2a6e 6f74 E ALSO. *not │ │ │ │ │ +00003170: 6520 4269 6e64 2028 7072 6f63 6564 7572 e Bind (procedur │ │ │ │ │ +00003180: 6529 3a3a 2c0a 2020 2020 202a 6e6f 7465 e)::,. *note │ │ │ │ │ +00003190: 204c 6973 7465 6e20 2870 726f 6365 6475 Listen (procedu │ │ │ │ │ +000031a0: 7265 293a 3a2c 0a20 2020 2020 2a6e 6f74 re)::,. *not │ │ │ │ │ +000031b0: 6520 5368 7574 646f 776e 2028 7072 6f63 e Shutdown (proc │ │ │ │ │ +000031c0: 6564 7572 6529 3a3a 2c0a 2020 2020 202a edure)::,. * │ │ │ │ │ +000031d0: 6e6f 7465 2053 6f63 6b65 7420 2870 726f note Socket (pro │ │ │ │ │ +000031e0: 6365 6475 7265 293a 3a2e 0a0a 2a20 4d65 cedure)::...* Me │ │ │ │ │ +000031f0: 6e75 3a0a 0a2a 2042 696e 6420 2870 726f nu:..* Bind (pro │ │ │ │ │ +00003200: 6365 6475 7265 293a 3a0a 2a20 436f 6e6e cedure)::.* Conn │ │ │ │ │ +00003210: 6563 7420 2870 726f 6365 6475 7265 293a ect (procedure): │ │ │ │ │ +00003220: 3a0a 2a20 4765 7420 2866 756e 6374 696f :.* Get (functio │ │ │ │ │ +00003230: 6e29 3a3a 0a2a 2047 6574 5f43 6861 7220 n)::.* Get_Char │ │ │ │ │ +00003240: 2866 756e 6374 696f 6e29 3a3a 0a2a 2047 (function)::.* G │ │ │ │ │ +00003250: 6574 5f4c 696e 6520 2866 756e 6374 696f et_Line (functio │ │ │ │ │ +00003260: 6e29 3a3a 0a2a 2047 6574 5f4c 696e 6520 n)::.* Get_Line │ │ │ │ │ +00003270: 2870 726f 6365 6475 7265 293a 3a0a 2a20 (procedure)::.* │ │ │ │ │ +00003280: 4765 745f 5265 6365 6976 655f 5175 6575 Get_Receive_Queu │ │ │ │ │ +00003290: 655f 5369 7a65 2028 6675 6e63 7469 6f6e e_Size (function │ │ │ │ │ +000032a0: 293a 3a0a 2a20 4765 745f 5365 6e64 5f51 )::.* Get_Send_Q │ │ │ │ │ +000032b0: 7565 7565 5f53 697a 6520 2866 756e 6374 ueue_Size (funct │ │ │ │ │ +000032c0: 696f 6e29 3a3a 0a2a 2047 6574 736f 636b ion)::.* Getsock │ │ │ │ │ +000032d0: 6f70 7420 2870 726f 6365 6475 7265 293a opt (procedure): │ │ │ │ │ +000032e0: 3a0a 2a20 4c69 7374 656e 2028 7072 6f63 :.* Listen (proc │ │ │ │ │ +000032f0: 6564 7572 6529 3a3a 0a2a 204e 6577 5f4c edure)::.* New_L │ │ │ │ │ +00003300: 696e 6520 2870 726f 6365 6475 7265 293a ine (procedure): │ │ │ │ │ +00003310: 3a0a 2a20 5075 7420 2870 726f 6365 6475 :.* Put (procedu │ │ │ │ │ +00003320: 7265 293a 3a0a 2a20 5075 745f 4c69 6e65 re)::.* Put_Line │ │ │ │ │ +00003330: 2028 7072 6f63 6564 7572 6529 3a3a 0a2a (procedure)::.* │ │ │ │ │ +00003340: 2052 6563 6569 7665 2028 6675 6e63 7469 Receive (functi │ │ │ │ │ +00003350: 6f6e 293a 3a0a 2a20 5265 6365 6976 6520 on)::.* Receive │ │ │ │ │ +00003360: 2870 726f 6365 6475 7265 293a 3a0a 2a20 (procedure)::.* │ │ │ │ │ +00003370: 5265 6365 6976 655f 536f 6d65 2028 7072 Receive_Some (pr │ │ │ │ │ +00003380: 6f63 6564 7572 6529 3a3a 0a2a 2053 656e ocedure)::.* Sen │ │ │ │ │ +00003390: 6420 2870 726f 6365 6475 7265 293a 3a0a d (procedure)::. │ │ │ │ │ +000033a0: 2a20 5365 745f 4275 6666 6572 2028 7072 * Set_Buffer (pr │ │ │ │ │ +000033b0: 6f63 6564 7572 6529 3a3a 0a2a 2053 6574 ocedure)::.* Set │ │ │ │ │ +000033c0: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +000033d0: 7265 293a 3a0a 2a20 5368 7574 646f 776e re)::.* Shutdown │ │ │ │ │ +000033e0: 2028 7072 6f63 6564 7572 6529 3a3a 0a2a (procedure)::.* │ │ │ │ │ +000033f0: 2053 6f63 6b65 7420 2870 726f 6365 6475 Socket (procedu │ │ │ │ │ +00003400: 7265 293a 3a0a 2a20 556e 7365 745f 4275 re)::.* Unset_Bu │ │ │ │ │ +00003410: 6666 6572 2028 7072 6f63 6564 7572 6529 ffer (procedure) │ │ │ │ │ +00003420: 3a3a 0a0a 1f0a 4669 6c65 3a20 6164 6173 ::....File: adas │ │ │ │ │ +00003430: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ +00003440: 6465 3a20 4269 6e64 2028 7072 6f63 6564 de: Bind (proced │ │ │ │ │ +00003450: 7572 6529 2c20 204e 6578 743a 2043 6f6e ure), Next: Con │ │ │ │ │ +00003460: 6e65 6374 2028 7072 6f63 6564 7572 6529 nect (procedure) │ │ │ │ │ +00003470: 2c20 2050 7265 763a 2041 6363 6570 745f , Prev: Accept_ │ │ │ │ │ +00003480: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +00003490: 6529 2c20 2055 703a 2041 6363 6570 745f e), Up: Accept_ │ │ │ │ │ +000034a0: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +000034b0: 6529 0a0a 4269 6e64 2028 7072 6f63 6564 e)..Bind (proced │ │ │ │ │ +000034c0: 7572 6529 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ure).----------- │ │ │ │ │ +000034d0: 2d2d 2d2d 2d0a 0a50 5552 504f 5345 0a20 -----..PURPOSE. │ │ │ │ │ +000034e0: 2020 2020 4173 736f 6369 6174 6520 6120 Associate a │ │ │ │ │ +000034f0: 6c6f 6361 6c20 706f 7274 2074 6f20 6120 local port to a │ │ │ │ │ +00003500: 736f 636b 6574 0a50 524f 544f 5459 5045 socket.PROTOTYPE │ │ │ │ │ +00003510: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +00003520: 732e 4269 6e64 3a20 7072 6f63 6564 7572 s.Bind: procedur │ │ │ │ │ +00003530: 6520 4269 6e64 2028 534f 434b 4554 203a e Bind (SOCKET : │ │ │ │ │ +00003540: 2053 6f63 6b65 745f 4644 3b0a 2020 2020 Socket_FD;. │ │ │ │ │ +00003550: 2020 2020 2020 2020 2020 2050 4f52 5420 PORT │ │ │ │ │ +00003560: 3a20 4e61 7475 7261 6c3b 2048 4f53 5420 : Natural; HOST │ │ │ │ │ +00003570: 3a20 5374 7269 6e67 203a 3d20 2222 293b : String := ""); │ │ │ │ │ +00003580: 0a0a 5041 5241 4d45 5445 5253 0a20 2020 ..PARAMETERS. │ │ │ │ │ +00003590: 2020 534f 434b 4554 2020 2020 2069 6e20 SOCKET in │ │ │ │ │ +000035a0: 2020 2020 2020 2020 496e 6974 6961 6c69 Initiali │ │ │ │ │ +000035b0: 7a65 6420 736f 636b 6574 206f 626a 6563 zed socket objec │ │ │ │ │ +000035c0: 740a 2020 2020 2050 4f52 5420 2020 2020 t. PORT │ │ │ │ │ +000035d0: 2020 696e 2020 2020 2020 2020 204c 6f63 in Loc │ │ │ │ │ +000035e0: 616c 2070 6f72 7420 746f 2062 696e 6420 al port to bind │ │ │ │ │ +000035f0: 746f 0a20 2020 2020 484f 5354 2020 2020 to. HOST │ │ │ │ │ +00003600: 2020 2069 6e20 2020 2020 2020 2020 4c6f in Lo │ │ │ │ │ +00003610: 6361 6c20 696e 7465 7266 6163 6520 746f cal interface to │ │ │ │ │ +00003620: 2062 696e 6420 746f 0a0a 4445 5343 5249 bind to..DESCRI │ │ │ │ │ +00003630: 5054 494f 4e0a 2020 2020 2054 6869 7320 PTION. This │ │ │ │ │ +00003640: 7072 6f63 6564 7572 6520 7265 7175 6573 procedure reques │ │ │ │ │ +00003650: 7473 2061 206c 6f63 616c 2070 6f72 7420 ts a local port │ │ │ │ │ +00003660: 6672 6f6d 2074 6865 206f 7065 7261 7469 from the operati │ │ │ │ │ +00003670: 6e67 2073 7973 7465 6d2e 2020 4966 0a20 ng system. If. │ │ │ │ │ +00003680: 2020 2020 3020 6973 2067 6976 656e 2069 0 is given i │ │ │ │ │ +00003690: 6e20 504f 5254 2c20 7468 6520 7379 7374 n PORT, the syst │ │ │ │ │ +000036a0: 656d 2077 696c 6c20 6173 7369 676e 2061 em will assign a │ │ │ │ │ +000036b0: 2066 7265 6520 706f 7274 2077 686f 7365 free port whose │ │ │ │ │ +000036c0: 206e 756d 6265 720a 2020 2020 2063 616e number. can │ │ │ │ │ +000036d0: 206c 6174 6572 2062 6520 7265 7472 6965 later be retrie │ │ │ │ │ +000036e0: 7665 6420 7573 696e 6720 2a6e 6f74 6520 ved using *note │ │ │ │ │ +000036f0: 4765 745f 536f 636b 5f50 6f72 7420 2866 Get_Sock_Port (f │ │ │ │ │ +00003700: 756e 6374 696f 6e29 3a3a 2e0a 2020 2020 unction)::.. │ │ │ │ │ +00003710: 2041 6c73 6f2c 206d 6f73 7420 6f70 6572 Also, most oper │ │ │ │ │ +00003720: 6174 696e 6720 7379 7374 656d 7320 7265 ating systems re │ │ │ │ │ +00003730: 7175 6972 6520 7370 6563 6961 6c20 7072 quire special pr │ │ │ │ │ +00003740: 6976 696c 6567 6573 2069 6620 796f 7520 ivileges if you │ │ │ │ │ +00003750: 7761 6e74 0a20 2020 2020 746f 2062 696e want. to bin │ │ │ │ │ +00003760: 6420 746f 2070 6f72 7473 2062 656c 6f77 d to ports below │ │ │ │ │ +00003770: 2031 3032 342e 0a0a 2020 2020 2049 6620 1024... If │ │ │ │ │ +00003780: 484f 5354 2069 7320 6e6f 7420 7468 6520 HOST is not the │ │ │ │ │ +00003790: 656d 7074 7920 7374 7269 6e67 2c20 6974 empty string, it │ │ │ │ │ +000037a0: 206d 7573 7420 636f 6e74 6169 6e20 7468 must contain th │ │ │ │ │ +000037b0: 6520 4950 2061 6464 7265 7373 206f 660a e IP address of. │ │ │ │ │ +000037c0: 2020 2020 2061 206c 6f63 616c 2069 6e74 a local int │ │ │ │ │ +000037d0: 6572 6661 6365 2074 6f20 6269 6e64 2074 erface to bind t │ │ │ │ │ +000037e0: 6f2c 206f 7220 6120 6e61 6d65 2077 6869 o, or a name whi │ │ │ │ │ +000037f0: 6368 2072 6573 6f6c 7665 7320 696e 746f ch resolves into │ │ │ │ │ +00003800: 2073 7563 6820 616e 0a20 2020 2020 6164 such an. ad │ │ │ │ │ +00003810: 6472 6573 732e 2020 4966 2061 6e20 656d dress. If an em │ │ │ │ │ +00003820: 7074 7920 7374 7269 6e67 2069 7320 6769 pty string is gi │ │ │ │ │ +00003830: 7665 6e20 2874 6865 2064 6566 6175 6c74 ven (the default │ │ │ │ │ +00003840: 292c 2074 6865 2073 6f63 6b65 740a 2020 ), the socket. │ │ │ │ │ +00003850: 2020 2077 696c 6c20 6265 2062 6f75 6e64 will be bound │ │ │ │ │ +00003860: 2074 6f20 616c 6c20 7468 6520 6176 6169 to all the avai │ │ │ │ │ +00003870: 6c61 626c 6520 696e 7465 7266 6163 6573 lable interfaces │ │ │ │ │ +00003880: 2e0a 0a45 5843 4550 5449 4f4e 530a 2020 ...EXCEPTIONS. │ │ │ │ │ +00003890: 2020 2027 536f 636b 6574 5f45 7272 6f72 'Socket_Error │ │ │ │ │ +000038a0: 2720 2020 2020 5265 7175 6573 7465 6420 ' Requested │ │ │ │ │ +000038b0: 706f 7274 206f 7220 696e 7465 7266 6163 port or interfac │ │ │ │ │ +000038c0: 6520 6e6f 7420 6176 6169 6c61 626c 650a e not available. │ │ │ │ │ +000038d0: 0a53 4545 2041 4c53 4f0a 2020 2020 202a .SEE ALSO. * │ │ │ │ │ +000038e0: 6e6f 7465 204c 6973 7465 6e20 2870 726f note Listen (pro │ │ │ │ │ +000038f0: 6365 6475 7265 293a 3a2c 0a20 2020 2020 cedure)::,. │ │ │ │ │ +00003900: 2a6e 6f74 6520 536f 636b 6574 2028 7072 *note Socket (pr │ │ │ │ │ +00003910: 6f63 6564 7572 6529 3a3a 2e0a 0a1f 0a46 ocedure)::.....F │ │ │ │ │ +00003920: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ +00003930: 696e 666f 2c20 204e 6f64 653a 2043 6f6e info, Node: Con │ │ │ │ │ +00003940: 6e65 6374 2028 7072 6f63 6564 7572 6529 nect (procedure) │ │ │ │ │ +00003950: 2c20 204e 6578 743a 2047 6574 2028 6675 , Next: Get (fu │ │ │ │ │ +00003960: 6e63 7469 6f6e 292c 2020 5072 6576 3a20 nction), Prev: │ │ │ │ │ +00003970: 4269 6e64 2028 7072 6f63 6564 7572 6529 Bind (procedure) │ │ │ │ │ +00003980: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ +00003990: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +000039a0: 0a0a 436f 6e6e 6563 7420 2870 726f 6365 ..Connect (proce │ │ │ │ │ +000039b0: 6475 7265 290a 2d2d 2d2d 2d2d 2d2d 2d2d dure).---------- │ │ │ │ │ +000039c0: 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f ---------..PURPO │ │ │ │ │ +000039d0: 5345 0a20 2020 2020 436f 6e6e 6563 7420 SE. Connect │ │ │ │ │ +000039e0: 6120 736f 636b 6574 206f 6e20 6120 6769 a socket on a gi │ │ │ │ │ +000039f0: 7665 6e20 686f 7374 2f70 6f72 740a 5052 ven host/port.PR │ │ │ │ │ +00003a00: 4f54 4f54 5950 450a 2020 2020 2020 2d2d OTOTYPE. -- │ │ │ │ │ +00003a10: 2053 6f63 6b65 7473 2e43 6f6e 6e65 6374 Sockets.Connect │ │ │ │ │ +00003a20: 3a20 7072 6f63 6564 7572 6520 436f 6e6e : procedure Conn │ │ │ │ │ +00003a30: 6563 7420 2853 4f43 4b45 5420 3a20 536f ect (SOCKET : So │ │ │ │ │ +00003a40: 636b 6574 5f46 443b 0a20 2020 2020 2020 cket_FD;. │ │ │ │ │ +00003a50: 2020 2020 2020 2020 484f 5354 203a 2053 HOST : S │ │ │ │ │ +00003a60: 7472 696e 673b 2050 4f52 5420 3a20 506f tring; PORT : Po │ │ │ │ │ +00003a70: 7369 7469 7665 293b 0a0a 5041 5241 4d45 sitive);..PARAME │ │ │ │ │ +00003a80: 5445 5253 0a20 2020 2020 534f 434b 4554 TERS. SOCKET │ │ │ │ │ +00003a90: 2020 2020 2069 6e20 2020 2020 2020 2020 in │ │ │ │ │ +00003aa0: 496e 6974 6961 6c69 7a65 6420 736f 636b Initialized sock │ │ │ │ │ +00003ab0: 6574 206f 626a 6563 740a 2020 2020 2048 et object. H │ │ │ │ │ +00003ac0: 4f53 5420 2020 2020 2020 696e 2020 2020 OST in │ │ │ │ │ +00003ad0: 2020 2020 2048 6f73 7420 746f 2063 6f6e Host to con │ │ │ │ │ +00003ae0: 6e65 6374 2074 6f0a 2020 2020 2050 4f52 nect to. POR │ │ │ │ │ +00003af0: 5420 2020 2020 2020 696e 2020 2020 2020 T in │ │ │ │ │ +00003b00: 2020 2050 6f72 7420 746f 2063 6f6e 6e65 Port to conne │ │ │ │ │ +00003b10: 6374 2074 6f0a 0a44 4553 4352 4950 5449 ct to..DESCRIPTI │ │ │ │ │ +00003b20: 4f4e 0a20 2020 2020 5468 6973 2070 726f ON. This pro │ │ │ │ │ +00003b30: 6365 6475 7265 2063 6f6e 6e65 6374 7320 cedure connects │ │ │ │ │ +00003b40: 616e 2069 6e69 7469 616c 697a 6564 2073 an initialized s │ │ │ │ │ +00003b50: 6f63 6b65 7420 746f 2061 2067 6976 656e ocket to a given │ │ │ │ │ +00003b60: 2068 6f73 7420 6f6e 2061 0a20 2020 2020 host on a. │ │ │ │ │ +00003b70: 6769 7665 6e20 706f 7274 2e20 2049 6e20 given port. In │ │ │ │ │ +00003b80: 7468 6520 6361 7365 206f 6620 6120 5443 the case of a TC │ │ │ │ │ +00003b90: 5020 736f 636b 6574 2c20 6120 7265 616c P socket, a real │ │ │ │ │ +00003ba0: 2063 6f6e 6e65 6374 696f 6e20 6973 0a20 connection is. │ │ │ │ │ +00003bb0: 2020 2020 6174 7465 6d70 7465 642e 2020 attempted. │ │ │ │ │ +00003bc0: 496e 2074 6865 2063 6173 6520 6f66 2061 In the case of a │ │ │ │ │ +00003bd0: 2055 4450 2073 6f63 6b65 742c 206e 6f20 UDP socket, no │ │ │ │ │ +00003be0: 636f 6e6e 6563 7469 6f6e 2074 616b 6573 connection takes │ │ │ │ │ +00003bf0: 2070 6c61 6365 0a20 2020 2020 6275 7420 place. but │ │ │ │ │ +00003c00: 7468 6520 656e 6470 6f69 6e74 2063 6f6f the endpoint coo │ │ │ │ │ +00003c10: 7264 696e 6174 6573 2061 7265 2072 6563 rdinates are rec │ │ │ │ │ +00003c20: 6f72 6465 642e 0a0a 4558 4345 5054 494f orded...EXCEPTIO │ │ │ │ │ +00003c30: 4e53 0a20 2020 2020 2743 6f6e 6e65 6374 NS. 'Connect │ │ │ │ │ +00003c40: 696f 6e5f 5265 6675 7365 6427 5468 6520 ion_Refused'The │ │ │ │ │ +00003c50: 636f 6e6e 6563 7469 6f6e 2068 6173 2062 connection has b │ │ │ │ │ +00003c60: 6565 6e20 7265 6675 7365 6420 6279 2074 een refused by t │ │ │ │ │ +00003c70: 6865 0a20 2020 2020 2020 2020 2020 2020 he. │ │ │ │ │ +00003c80: 2020 2020 2020 2020 2020 2073 6572 7665 serve │ │ │ │ │ +00003c90: 720a 2020 2020 2027 536f 636b 6574 5f45 r. 'Socket_E │ │ │ │ │ +00003ca0: 7272 6f72 2720 2020 2020 416e 6f74 6865 rror' Anothe │ │ │ │ │ +00003cb0: 7220 6572 726f 7220 6f63 6375 7272 6564 r error occurred │ │ │ │ │ +00003cc0: 2064 7572 696e 6720 7468 650a 2020 2020 during the. │ │ │ │ │ +00003cd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00003ce0: 2020 2020 636f 6e6e 6563 7469 6f6e 0a0a connection.. │ │ │ │ │ +00003cf0: 4558 414d 504c 450a 0a0a 5345 4520 414c EXAMPLE...SEE AL │ │ │ │ │ +00003d00: 534f 0a20 2020 2020 2a6e 6f74 6520 536f SO. *note So │ │ │ │ │ +00003d10: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +00003d20: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +00003d30: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +00003d40: 6f64 653a 2047 6574 2028 6675 6e63 7469 ode: Get (functi │ │ │ │ │ +00003d50: 6f6e 292c 2020 4e65 7874 3a20 4765 745f on), Next: Get_ │ │ │ │ │ +00003d60: 4368 6172 2028 6675 6e63 7469 6f6e 292c Char (function), │ │ │ │ │ +00003d70: 2020 5072 6576 3a20 436f 6e6e 6563 7420 Prev: Connect │ │ │ │ │ +00003d80: 2870 726f 6365 6475 7265 292c 2020 5570 (procedure), Up │ │ │ │ │ +00003d90: 3a20 4163 6365 7074 5f53 6f63 6b65 7420 : Accept_Socket │ │ │ │ │ +00003da0: 2870 726f 6365 6475 7265 290a 0a47 6574 (procedure)..Get │ │ │ │ │ +00003db0: 2028 6675 6e63 7469 6f6e 290a 2d2d 2d2d (function).---- │ │ │ │ │ +00003dc0: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ +00003dd0: 4f53 450a 2020 2020 2047 6574 2061 2073 OSE. Get a s │ │ │ │ │ +00003de0: 7472 696e 6720 6672 6f6d 2061 2072 656d tring from a rem │ │ │ │ │ +00003df0: 6f74 6520 686f 7374 0a50 524f 544f 5459 ote host.PROTOTY │ │ │ │ │ +00003e00: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ +00003e10: 6574 732e 4765 743a 2066 756e 6374 696f ets.Get: functio │ │ │ │ │ +00003e20: 6e20 4765 7420 2853 4f43 4b45 5420 3a20 n Get (SOCKET : │ │ │ │ │ +00003e30: 536f 636b 6574 5f46 4427 436c 6173 7329 Socket_FD'Class) │ │ │ │ │ +00003e40: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00003e50: 7265 7475 726e 2053 7472 696e 673b 0a0a return String;.. │ │ │ │ │ +00003e60: 5041 5241 4d45 5445 5253 0a20 2020 2020 PARAMETERS. │ │ │ │ │ +00003e70: 534f 434b 4554 2020 2020 2069 6e20 2020 SOCKET in │ │ │ │ │ +00003e80: 2020 2020 2020 496e 6974 6961 6c69 7a65 Initialize │ │ │ │ │ +00003e90: 6420 616e 6420 636f 6e6e 6563 7465 6420 d and connected │ │ │ │ │ +00003ea0: 736f 636b 6574 206f 626a 6563 740a 0a52 socket object..R │ │ │ │ │ +00003eb0: 4554 5552 4e20 5641 4c55 450a 2020 2020 ETURN VALUE. │ │ │ │ │ +00003ec0: 2053 6f6d 6520 6368 6172 6163 7465 7273 Some characters │ │ │ │ │ +00003ed0: 2074 6861 7420 6861 7665 2062 6565 6e20 that have been │ │ │ │ │ +00003ee0: 7265 6365 6976 6564 0a0a 4445 5343 5249 received..DESCRI │ │ │ │ │ +00003ef0: 5054 494f 4e0a 2020 2020 2054 6869 7320 PTION. This │ │ │ │ │ +00003f00: 6675 6e63 7469 6f6e 2072 6563 6569 7665 function receive │ │ │ │ │ +00003f10: 7320 736f 6d65 2063 6861 7261 6374 6572 s some character │ │ │ │ │ +00003f20: 7320 6672 6f6d 2061 2072 656d 6f74 6520 s from a remote │ │ │ │ │ +00003f30: 686f 7374 2e20 2041 7320 736f 6f6e 0a20 host. As soon. │ │ │ │ │ +00003f40: 2020 2020 7468 6174 2061 7420 6c65 6173 that at leas │ │ │ │ │ +00003f50: 7420 6f6e 6520 6368 6172 6163 7465 7220 t one character │ │ │ │ │ +00003f60: 6973 2061 7661 696c 6162 6c65 2c20 7468 is available, th │ │ │ │ │ +00003f70: 6520 6375 7272 656e 7420 7265 6365 7074 e current recept │ │ │ │ │ +00003f80: 696f 6e0a 2020 2020 2062 7566 6665 7220 ion. buffer │ │ │ │ │ +00003f90: 6973 2072 6574 7572 6e65 642e 0a0a 2020 is returned... │ │ │ │ │ +00003fa0: 2020 2054 6865 7265 2069 7320 7573 7561 There is usua │ │ │ │ │ +00003fb0: 6c6c 7920 6c69 7474 6c65 2067 6169 6e20 lly little gain │ │ │ │ │ +00003fc0: 696e 2075 7369 6e67 2074 6869 7320 6675 in using this fu │ │ │ │ │ +00003fd0: 6e63 7469 6f6e 2077 686f 7365 2062 6568 nction whose beh │ │ │ │ │ +00003fe0: 6176 696f 7572 0a20 2020 2020 6973 2063 aviour. is c │ │ │ │ │ +00003ff0: 6f6d 7061 7261 626c 6520 746f 2074 6865 omparable to the │ │ │ │ │ +00004000: 206f 6e65 206f 6620 2a6e 6f74 6520 5265 one of *note Re │ │ │ │ │ +00004010: 6365 6976 6520 2866 756e 6374 696f 6e29 ceive (function) │ │ │ │ │ +00004020: 3a3a 2e20 204f 7468 6572 0a20 2020 2020 ::. Other. │ │ │ │ │ +00004030: 6675 6e63 7469 6f6e 7320 7375 6368 2061 functions such a │ │ │ │ │ +00004040: 7320 2a6e 6f74 6520 4765 745f 4368 6172 s *note Get_Char │ │ │ │ │ +00004050: 2028 6675 6e63 7469 6f6e 293a 3a2c 206f (function)::, o │ │ │ │ │ +00004060: 7220 2a6e 6f74 6520 4765 745f 4c69 6e65 r *note Get_Line │ │ │ │ │ +00004070: 0a20 2020 2020 2866 756e 6374 696f 6e29 . (function) │ │ │ │ │ +00004080: 3a3a 2c20 616c 6c6f 7720 6d6f 7265 2073 ::, allow more s │ │ │ │ │ +00004090: 7472 7563 7475 7265 6420 7072 6f67 7261 tructured progra │ │ │ │ │ +000040a0: 6d6d 696e 672e 0a0a 2020 2020 2048 6f77 mming... How │ │ │ │ │ +000040b0: 6576 6572 2c20 7468 6973 2066 756e 6374 ever, this funct │ │ │ │ │ +000040c0: 696f 6e20 6d61 7920 6265 2075 7365 6420 ion may be used │ │ │ │ │ +000040d0: 746f 2061 766f 6964 206c 6f6f 7369 6e67 to avoid loosing │ │ │ │ │ +000040e0: 2063 6861 7261 6374 6572 7320 7768 656e characters when │ │ │ │ │ +000040f0: 0a20 2020 2020 6361 6c6c 696e 6720 2a6e . calling *n │ │ │ │ │ +00004100: 6f74 6520 556e 7365 745f 4275 6666 6572 ote Unset_Buffer │ │ │ │ │ +00004110: 2028 7072 6f63 6564 7572 6529 3a3a 2c20 (procedure)::, │ │ │ │ │ +00004120: 6966 2c20 666f 7220 736f 6d65 2072 6561 if, for some rea │ │ │ │ │ +00004130: 736f 6e2c 2074 6865 0a20 2020 2020 7265 son, the. re │ │ │ │ │ +00004140: 6d6f 7465 2068 6f73 7420 6d61 7920 6861 mote host may ha │ │ │ │ │ +00004150: 7665 2073 656e 7420 736f 6d65 2e0a 0a45 ve sent some...E │ │ │ │ │ +00004160: 5843 4550 5449 4f4e 530a 2020 2020 2027 XCEPTIONS. ' │ │ │ │ │ +00004170: 436f 6e6e 6563 7469 6f6e 5f43 6c6f 7365 Connection_Close │ │ │ │ │ +00004180: 6427 5065 6572 2068 6173 2063 6c6f 7365 d'Peer has close │ │ │ │ │ +00004190: 6420 7468 6520 636f 6e6e 6563 7469 6f6e d the connection │ │ │ │ │ +000041a0: 2062 6566 6f72 650a 2020 2020 2020 2020 before. │ │ │ │ │ +000041b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000041c0: 7365 6e64 696e 6720 616e 7920 6461 7461 sending any data │ │ │ │ │ +000041d0: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ +000041e0: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ +000041f0: 3a20 4765 745f 4368 6172 2028 6675 6e63 : Get_Char (func │ │ │ │ │ +00004200: 7469 6f6e 292c 2020 4e65 7874 3a20 4765 tion), Next: Ge │ │ │ │ │ +00004210: 745f 4c69 6e65 2028 6675 6e63 7469 6f6e t_Line (function │ │ │ │ │ +00004220: 292c 2020 5072 6576 3a20 4765 7420 2866 ), Prev: Get (f │ │ │ │ │ +00004230: 756e 6374 696f 6e29 2c20 2055 703a 2041 unction), Up: A │ │ │ │ │ +00004240: 6363 6570 745f 536f 636b 6574 2028 7072 ccept_Socket (pr │ │ │ │ │ +00004250: 6f63 6564 7572 6529 0a0a 4765 745f 4368 ocedure)..Get_Ch │ │ │ │ │ +00004260: 6172 2028 6675 6e63 7469 6f6e 290a 2d2d ar (function).-- │ │ │ │ │ +00004270: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00004280: 2d0a 0a50 5552 504f 5345 0a20 2020 2020 -..PURPOSE. │ │ │ │ │ +00004290: 4765 7420 6120 6368 6172 6163 7465 7220 Get a character │ │ │ │ │ +000042a0: 6672 6f6d 2061 2072 656d 6f74 6520 686f from a remote ho │ │ │ │ │ +000042b0: 7374 0a50 524f 544f 5459 5045 0a20 2020 st.PROTOTYPE. │ │ │ │ │ +000042c0: 2020 202d 2d20 536f 636b 6574 732e 4765 -- Sockets.Ge │ │ │ │ │ +000042d0: 745f 4368 6172 3a20 6675 6e63 7469 6f6e t_Char: function │ │ │ │ │ +000042e0: 2047 6574 5f43 6861 7220 2853 4f43 4b45 Get_Char (SOCKE │ │ │ │ │ +000042f0: 5420 3a20 536f 636b 6574 5f46 4427 436c T : Socket_FD'Cl │ │ │ │ │ +00004300: 6173 7329 0a20 2020 2020 2020 2020 2020 ass). │ │ │ │ │ +00004310: 2020 2020 7265 7475 726e 2043 6861 7261 return Chara │ │ │ │ │ +00004320: 6374 6572 3b0a 0a50 4152 414d 4554 4552 cter;..PARAMETER │ │ │ │ │ +00004330: 530a 2020 2020 2053 4f43 4b45 5420 2020 S. SOCKET │ │ │ │ │ +00004340: 2020 696e 2020 2020 2020 2020 2049 6e69 in Ini │ │ │ │ │ +00004350: 7469 616c 697a 6564 2061 6e64 2063 6f6e tialized and con │ │ │ │ │ +00004360: 6e65 6374 6564 2073 6f63 6b65 7420 6f62 nected socket ob │ │ │ │ │ +00004370: 6a65 6374 0a0a 5245 5455 524e 2056 414c ject..RETURN VAL │ │ │ │ │ +00004380: 5545 0a20 2020 2020 4f6e 6520 6368 6172 UE. One char │ │ │ │ │ +00004390: 6163 7465 7220 7365 6e74 2062 7920 7468 acter sent by th │ │ │ │ │ +000043a0: 6520 7265 6d6f 7465 2068 6f73 740a 0a44 e remote host..D │ │ │ │ │ +000043b0: 4553 4352 4950 5449 4f4e 0a20 2020 2020 ESCRIPTION. │ │ │ │ │ +000043c0: 5468 6973 2066 756e 6374 696f 6e20 7265 This function re │ │ │ │ │ +000043d0: 6365 6976 6573 2065 7861 6374 6c79 206f ceives exactly o │ │ │ │ │ +000043e0: 6e65 2063 6861 7261 6374 6572 2066 726f ne character fro │ │ │ │ │ +000043f0: 6d20 7468 6520 7265 6d6f 7465 2068 6f73 m the remote hos │ │ │ │ │ +00004400: 742e 0a0a 4558 4345 5054 494f 4e53 0a20 t...EXCEPTIONS. │ │ │ │ │ +00004410: 2020 2020 2743 6f6e 6e65 6374 696f 6e5f 'Connection_ │ │ │ │ │ +00004420: 436c 6f73 6564 2750 6565 7220 6861 7320 Closed'Peer has │ │ │ │ │ +00004430: 636c 6f73 6564 2074 6865 2063 6f6e 6e65 closed the conne │ │ │ │ │ +00004440: 6374 696f 6e20 6265 666f 7265 0a20 2020 ction before. │ │ │ │ │ +00004450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00004460: 2020 2020 2073 656e 6469 6e67 2074 6865 sending the │ │ │ │ │ +00004470: 2063 6861 7261 6374 6572 0a0a 5345 4520 character..SEE │ │ │ │ │ +00004480: 414c 534f 0a20 2020 2020 2a6e 6f74 6520 ALSO. *note │ │ │ │ │ +00004490: 4765 7420 2866 756e 6374 696f 6e29 3a3a Get (function):: │ │ │ │ │ +000044a0: 2c0a 2020 2020 202a 6e6f 7465 2047 6574 ,. *note Get │ │ │ │ │ +000044b0: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ +000044c0: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2047 ::,. *note G │ │ │ │ │ +000044d0: 6574 5f4c 696e 6520 2870 726f 6365 6475 et_Line (procedu │ │ │ │ │ +000044e0: 7265 293a 3a2c 0a20 2020 2020 2a6e 6f74 re)::,. *not │ │ │ │ │ +000044f0: 6520 5265 6365 6976 6520 2870 726f 6365 e Receive (proce │ │ │ │ │ +00004500: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ +00004510: 6f74 6520 5365 745f 4275 6666 6572 2028 ote Set_Buffer ( │ │ │ │ │ +00004520: 7072 6f63 6564 7572 6529 3a3a 2e0a 0a1f procedure)::.... │ │ │ │ │ +00004530: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ +00004540: 732e 696e 666f 2c20 204e 6f64 653a 2047 s.info, Node: G │ │ │ │ │ +00004550: 6574 5f4c 696e 6520 2866 756e 6374 696f et_Line (functio │ │ │ │ │ +00004560: 6e29 2c20 204e 6578 743a 2047 6574 5f4c n), Next: Get_L │ │ │ │ │ +00004570: 696e 6520 2870 726f 6365 6475 7265 292c ine (procedure), │ │ │ │ │ +00004580: 2020 5072 6576 3a20 4765 745f 4368 6172 Prev: Get_Char │ │ │ │ │ +00004590: 2028 6675 6e63 7469 6f6e 292c 2020 5570 (function), Up │ │ │ │ │ +000045a0: 3a20 4163 6365 7074 5f53 6f63 6b65 7420 : Accept_Socket │ │ │ │ │ +000045b0: 2870 726f 6365 6475 7265 290a 0a47 6574 (procedure)..Get │ │ │ │ │ +000045c0: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ +000045d0: 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d .--------------- │ │ │ │ │ +000045e0: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ +000045f0: 2020 2047 6574 2061 2077 686f 6c65 206c Get a whole l │ │ │ │ │ +00004600: 696e 6520 6672 6f6d 2061 2072 656d 6f74 ine from a remot │ │ │ │ │ +00004610: 6520 686f 7374 0a50 524f 544f 5459 5045 e host.PROTOTYPE │ │ │ │ │ +00004620: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +00004630: 732e 4765 745f 4c69 6e65 3a20 6675 6e63 s.Get_Line: func │ │ │ │ │ +00004640: 7469 6f6e 2047 6574 5f4c 696e 6520 2853 tion Get_Line (S │ │ │ │ │ +00004650: 4f43 4b45 5420 3a20 536f 636b 6574 5f46 OCKET : Socket_F │ │ │ │ │ +00004660: 4427 436c 6173 733b 0a20 2020 2020 2020 D'Class;. │ │ │ │ │ +00004670: 2020 2020 2020 2020 4d41 585f 4c45 4e47 MAX_LENG │ │ │ │ │ +00004680: 5448 203a 2050 6f73 6974 6976 6520 3a3d TH : Positive := │ │ │ │ │ +00004690: 2032 3034 3829 0a20 2020 2020 2020 2020 2048). │ │ │ │ │ +000046a0: 2020 2020 2020 7265 7475 726e 2053 7472 return Str │ │ │ │ │ +000046b0: 696e 673b 0a0a 5041 5241 4d45 5445 5253 ing;..PARAMETERS │ │ │ │ │ +000046c0: 0a20 2020 2020 534f 434b 4554 2020 2020 . SOCKET │ │ │ │ │ +000046d0: 2069 6e20 2020 2020 2020 2020 496e 6974 in Init │ │ │ │ │ +000046e0: 6961 6c69 7a65 6420 616e 6420 636f 6e6e ialized and conn │ │ │ │ │ +000046f0: 6563 7465 6420 736f 636b 6574 206f 626a ected socket obj │ │ │ │ │ +00004700: 6563 740a 2020 2020 204d 4158 5f4c 454e ect. MAX_LEN │ │ │ │ │ +00004710: 4754 4820 696e 2020 2020 2020 2020 204d GTH in M │ │ │ │ │ +00004720: 6178 696d 756d 2072 6574 7572 6e65 6420 aximum returned │ │ │ │ │ +00004730: 6c69 6e65 206c 656e 6774 680a 0a52 4554 line length..RET │ │ │ │ │ +00004740: 5552 4e20 5641 4c55 450a 2020 2020 2041 URN VALUE. A │ │ │ │ │ +00004750: 206c 696e 6520 7769 7468 6f75 7420 7468 line without th │ │ │ │ │ +00004760: 6520 4352 2061 6e64 204c 4620 7365 7061 e CR and LF sepa │ │ │ │ │ +00004770: 7261 746f 7273 0a0a 4445 5343 5249 5054 rators..DESCRIPT │ │ │ │ │ +00004780: 494f 4e0a 2020 2020 2054 6869 7320 6675 ION. This fu │ │ │ │ │ +00004790: 6e63 7469 6f6e 2072 6563 6569 7665 7320 nction receives │ │ │ │ │ +000047a0: 6f6e 6520 6c69 6e65 2066 726f 6d20 7468 one line from th │ │ │ │ │ +000047b0: 6520 7265 6d6f 7465 2068 6f73 742e 2020 e remote host. │ │ │ │ │ +000047c0: 4120 6c69 6e65 0a20 2020 2020 636f 6e73 A line. cons │ │ │ │ │ +000047d0: 6973 7473 2069 6e74 6f20 7a65 726f 206f ists into zero o │ │ │ │ │ +000047e0: 7220 6d6f 7265 2063 6861 7261 6374 6572 r more character │ │ │ │ │ +000047f0: 7320 666f 6c6c 6f77 6564 2062 7920 616e s followed by an │ │ │ │ │ +00004800: 206f 7074 696f 6e61 6c20 4352 0a20 2020 optional CR. │ │ │ │ │ +00004810: 2020 616e 6420 6279 2061 204c 462e 2054 and by a LF. T │ │ │ │ │ +00004820: 686f 7365 2074 6572 6d69 6e61 746f 7273 hose terminators │ │ │ │ │ +00004830: 2061 7265 2073 7472 6970 7065 6420 6265 are stripped be │ │ │ │ │ +00004840: 666f 7265 2074 6865 206c 696e 6520 6973 fore the line is │ │ │ │ │ +00004850: 0a20 2020 2020 7265 7475 726e 6564 2e0a . returned.. │ │ │ │ │ +00004860: 0a20 2020 2020 5468 6973 2066 756e 6374 . This funct │ │ │ │ │ +00004870: 696f 6e20 626c 6f63 6b73 2075 6e74 696c ion blocks until │ │ │ │ │ +00004880: 206f 6e65 2066 756c 6c20 6c69 6e65 2068 one full line h │ │ │ │ │ +00004890: 6173 2062 6565 6e20 7265 6365 6976 6564 as been received │ │ │ │ │ +000048a0: 2e20 2054 6865 0a20 2020 2020 6c69 6e65 . The. line │ │ │ │ │ +000048b0: 206c 656e 6774 6820 6973 206c 696d 6974 length is limit │ │ │ │ │ +000048c0: 6564 2077 6974 6820 7468 6520 7661 6c75 ed with the valu │ │ │ │ │ +000048d0: 6520 6f66 2074 6865 204d 6178 5f4c 656e e of the Max_Len │ │ │ │ │ +000048e0: 6774 6820 6172 6775 6d65 6e74 2c0a 2020 gth argument,. │ │ │ │ │ +000048f0: 2020 2074 6f20 6176 6f69 6420 6578 6861 to avoid exha │ │ │ │ │ +00004900: 7573 7469 6f6e 206f 6620 7468 6520 7365 ustion of the se │ │ │ │ │ +00004910: 636f 6e64 6172 7920 7374 6163 6b2e 0a0a condary stack... │ │ │ │ │ +00004920: 4558 4345 5054 494f 4e53 0a20 2020 2020 EXCEPTIONS. │ │ │ │ │ +00004930: 2743 6f6e 6e65 6374 696f 6e5f 436c 6f73 'Connection_Clos │ │ │ │ │ +00004940: 6564 2750 6565 7220 6861 7320 636c 6f73 ed'Peer has clos │ │ │ │ │ +00004950: 6564 2074 6865 2063 6f6e 6e65 6374 696f ed the connectio │ │ │ │ │ +00004960: 6e20 6265 666f 7265 0a20 2020 2020 2020 n before. │ │ │ │ │ +00004970: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00004980: 2073 656e 6469 6e67 2061 2077 686f 6c65 sending a whole │ │ │ │ │ +00004990: 206c 696e 650a 0a53 4545 2041 4c53 4f0a line..SEE ALSO. │ │ │ │ │ +000049a0: 2020 2020 202a 6e6f 7465 2047 6574 2028 *note Get ( │ │ │ │ │ +000049b0: 6675 6e63 7469 6f6e 293a 3a2c 0a20 2020 function)::,. │ │ │ │ │ +000049c0: 2020 2a6e 6f74 6520 4765 745f 4368 6172 *note Get_Char │ │ │ │ │ +000049d0: 2028 6675 6e63 7469 6f6e 293a 3a2c 0a20 (function)::,. │ │ │ │ │ +000049e0: 2020 2020 2a6e 6f74 6520 4765 745f 4c69 *note Get_Li │ │ │ │ │ +000049f0: 6e65 2028 7072 6f63 6564 7572 6529 3a3a ne (procedure):: │ │ │ │ │ +00004a00: 2c0a 2020 2020 202a 6e6f 7465 2052 6563 ,. *note Rec │ │ │ │ │ +00004a10: 6569 7665 2028 7072 6f63 6564 7572 6529 eive (procedure) │ │ │ │ │ +00004a20: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2053 ::,. *note S │ │ │ │ │ +00004a30: 6574 5f42 7566 6665 7220 2870 726f 6365 et_Buffer (proce │ │ │ │ │ +00004a40: 6475 7265 293a 3a2e 0a0a 1f0a 4669 6c65 dure)::.....File │ │ │ │ │ +00004a50: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ +00004a60: 6f2c 2020 4e6f 6465 3a20 4765 745f 4c69 o, Node: Get_Li │ │ │ │ │ +00004a70: 6e65 2028 7072 6f63 6564 7572 6529 2c20 ne (procedure), │ │ │ │ │ +00004a80: 204e 6578 743a 2047 6574 5f52 6563 6569 Next: Get_Recei │ │ │ │ │ +00004a90: 7665 5f51 7565 7565 5f53 697a 6520 2866 ve_Queue_Size (f │ │ │ │ │ +00004aa0: 756e 6374 696f 6e29 2c20 2050 7265 763a unction), Prev: │ │ │ │ │ +00004ab0: 2047 6574 5f4c 696e 6520 2866 756e 6374 Get_Line (funct │ │ │ │ │ +00004ac0: 696f 6e29 2c20 2055 703a 2041 6363 6570 ion), Up: Accep │ │ │ │ │ +00004ad0: 745f 536f 636b 6574 2028 7072 6f63 6564 t_Socket (proced │ │ │ │ │ +00004ae0: 7572 6529 0a0a 4765 745f 4c69 6e65 2028 ure)..Get_Line ( │ │ │ │ │ +00004af0: 7072 6f63 6564 7572 6529 0a2d 2d2d 2d2d procedure).----- │ │ │ │ │ +00004b00: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ │ +00004b10: 0a50 5552 504f 5345 0a20 2020 2020 4765 .PURPOSE. Ge │ │ │ │ │ +00004b20: 7420 6120 7768 6f6c 6520 6c69 6e65 2066 t a whole line f │ │ │ │ │ +00004b30: 726f 6d20 6120 7265 6d6f 7465 2068 6f73 rom a remote hos │ │ │ │ │ +00004b40: 740a 5052 4f54 4f54 5950 450a 2020 2020 t.PROTOTYPE. │ │ │ │ │ +00004b50: 2020 2d2d 2053 6f63 6b65 7473 2e47 6574 -- Sockets.Get │ │ │ │ │ +00004b60: 5f4c 696e 653a 2070 726f 6365 6475 7265 _Line: procedure │ │ │ │ │ +00004b70: 2047 6574 5f4c 696e 6520 2853 4f43 4b45 Get_Line (SOCKE │ │ │ │ │ +00004b80: 5420 3a20 536f 636b 6574 5f46 4427 436c T : Socket_FD'Cl │ │ │ │ │ +00004b90: 6173 733b 0a20 2020 2020 2020 2020 2020 ass;. │ │ │ │ │ +00004ba0: 2020 2020 5354 5220 3a20 696e 206f 7574 STR : in out │ │ │ │ │ +00004bb0: 2053 7472 696e 673b 204c 4153 5420 3a20 String; LAST : │ │ │ │ │ +00004bc0: 6f75 7420 4e61 7475 7261 6c29 3b0a 0a50 out Natural);..P │ │ │ │ │ +00004bd0: 4152 414d 4554 4552 530a 2020 2020 2053 ARAMETERS. S │ │ │ │ │ +00004be0: 4f43 4b45 5420 2020 2020 696e 2020 2020 OCKET in │ │ │ │ │ +00004bf0: 2020 2020 2049 6e69 7469 616c 697a 6564 Initialized │ │ │ │ │ +00004c00: 2061 6e64 2063 6f6e 6e65 6374 6564 2073 and connected s │ │ │ │ │ +00004c10: 6f63 6b65 7420 6f62 6a65 6374 0a20 2020 ocket object. │ │ │ │ │ +00004c20: 2020 5354 5220 2020 2020 2020 2069 6e20 STR in │ │ │ │ │ +00004c30: 6f75 7420 2020 2020 5374 7269 6e67 2074 out String t │ │ │ │ │ +00004c40: 6f20 6669 6c6c 0a20 2020 2020 4c41 5354 o fill. LAST │ │ │ │ │ +00004c50: 2020 2020 2020 206f 7574 2020 2020 2020 out │ │ │ │ │ +00004c60: 2020 4c61 7374 2069 6e64 6578 2075 7365 Last index use │ │ │ │ │ +00004c70: 6420 696e 2074 6865 2073 7472 696e 670a d in the string. │ │ │ │ │ +00004c80: 0a44 4553 4352 4950 5449 4f4e 0a20 2020 .DESCRIPTION. │ │ │ │ │ +00004c90: 2020 5468 6973 2070 726f 6365 6475 7265 This procedure │ │ │ │ │ +00004ca0: 2072 6563 6569 7665 7320 6f6e 6520 6c69 receives one li │ │ │ │ │ +00004cb0: 6e65 2066 726f 6d20 7468 6520 7265 6d6f ne from the remo │ │ │ │ │ +00004cc0: 7465 2068 6f73 742e 2020 4120 6c69 6e65 te host. A line │ │ │ │ │ +00004cd0: 0a20 2020 2020 636f 6e73 6973 7473 2069 . consists i │ │ │ │ │ +00004ce0: 6e74 6f20 7a65 726f 206f 7220 6d6f 7265 nto zero or more │ │ │ │ │ +00004cf0: 2063 6861 7261 6374 6572 7320 666f 6c6c characters foll │ │ │ │ │ +00004d00: 6f77 6564 2062 7920 616e 206f 7074 696f owed by an optio │ │ │ │ │ +00004d10: 6e61 6c20 4352 0a20 2020 2020 616e 6420 nal CR. and │ │ │ │ │ +00004d20: 6279 2061 204c 462e 2054 686f 7365 2074 by a LF. Those t │ │ │ │ │ +00004d30: 6572 6d69 6e61 746f 7273 2061 7265 2073 erminators are s │ │ │ │ │ +00004d40: 7472 6970 7065 6420 6265 666f 7265 2074 tripped before t │ │ │ │ │ +00004d50: 6865 206c 696e 6520 6973 0a20 2020 2020 he line is. │ │ │ │ │ +00004d60: 7265 7475 726e 6564 2e0a 0a20 2020 2020 returned... │ │ │ │ │ +00004d70: 5468 6973 2070 726f 6365 6475 7265 2062 This procedure b │ │ │ │ │ +00004d80: 6c6f 636b 7320 756e 7469 6c20 6f6e 6520 locks until one │ │ │ │ │ +00004d90: 6675 6c6c 206c 696e 6520 6861 7320 6265 full line has be │ │ │ │ │ +00004da0: 656e 2072 6563 6569 7665 642e 0a0a 4558 en received...EX │ │ │ │ │ +00004db0: 4345 5054 494f 4e53 0a20 2020 2020 2743 CEPTIONS. 'C │ │ │ │ │ +00004dc0: 6f6e 6e65 6374 696f 6e5f 436c 6f73 6564 onnection_Closed │ │ │ │ │ +00004dd0: 2750 6565 7220 6861 7320 636c 6f73 6564 'Peer has closed │ │ │ │ │ +00004de0: 2074 6865 2063 6f6e 6e65 6374 696f 6e20 the connection │ │ │ │ │ +00004df0: 6265 666f 7265 0a20 2020 2020 2020 2020 before. │ │ │ │ │ +00004e00: 2020 2020 2020 2020 2020 2020 2020 2073 s │ │ │ │ │ +00004e10: 656e 6469 6e67 2061 2077 686f 6c65 206c ending a whole l │ │ │ │ │ +00004e20: 696e 650a 0a53 4545 2041 4c53 4f0a 2020 ine..SEE ALSO. │ │ │ │ │ +00004e30: 2020 202a 6e6f 7465 2047 6574 2028 6675 *note Get (fu │ │ │ │ │ +00004e40: 6e63 7469 6f6e 293a 3a2c 0a20 2020 2020 nction)::,. │ │ │ │ │ +00004e50: 2a6e 6f74 6520 4765 745f 4368 6172 2028 *note Get_Char ( │ │ │ │ │ +00004e60: 6675 6e63 7469 6f6e 293a 3a2c 0a20 2020 function)::,. │ │ │ │ │ +00004e70: 2020 2a6e 6f74 6520 4765 745f 4c69 6e65 *note Get_Line │ │ │ │ │ +00004e80: 2028 6675 6e63 7469 6f6e 293a 3a2c 0a20 (function)::,. │ │ │ │ │ +00004e90: 2020 2020 2a6e 6f74 6520 5265 6365 6976 *note Receiv │ │ │ │ │ +00004ea0: 6520 2870 726f 6365 6475 7265 293a 3a2c e (procedure)::, │ │ │ │ │ +00004eb0: 0a20 2020 2020 2a6e 6f74 6520 5365 745f . *note Set_ │ │ │ │ │ +00004ec0: 4275 6666 6572 2028 7072 6f63 6564 7572 Buffer (procedur │ │ │ │ │ +00004ed0: 6529 3a3a 2e0a 0a1f 0a46 696c 653a 2061 e)::.....File: a │ │ │ │ │ +00004ee0: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ +00004ef0: 204e 6f64 653a 2047 6574 5f52 6563 6569 Node: Get_Recei │ │ │ │ │ +00004f00: 7665 5f51 7565 7565 5f53 697a 6520 2866 ve_Queue_Size (f │ │ │ │ │ +00004f10: 756e 6374 696f 6e29 2c20 204e 6578 743a unction), Next: │ │ │ │ │ +00004f20: 2047 6574 5f53 656e 645f 5175 6575 655f Get_Send_Queue_ │ │ │ │ │ +00004f30: 5369 7a65 2028 6675 6e63 7469 6f6e 292c Size (function), │ │ │ │ │ +00004f40: 2020 5072 6576 3a20 4765 745f 4c69 6e65 Prev: Get_Line │ │ │ │ │ +00004f50: 2028 7072 6f63 6564 7572 6529 2c20 2055 (procedure), U │ │ │ │ │ +00004f60: 703a 2041 6363 6570 745f 536f 636b 6574 p: Accept_Socket │ │ │ │ │ +00004f70: 2028 7072 6f63 6564 7572 6529 0a0a 4765 (procedure)..Ge │ │ │ │ │ +00004f80: 745f 5265 6365 6976 655f 5175 6575 655f t_Receive_Queue_ │ │ │ │ │ +00004f90: 5369 7a65 2028 6675 6e63 7469 6f6e 290a Size (function). │ │ │ │ │ +00004fa0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00004fb0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00004fc0: 2d0a 0a50 5552 504f 5345 0a20 2020 2020 -..PURPOSE. │ │ │ │ │ +00004fd0: 5265 7475 726e 2074 6865 2073 697a 6520 Return the size │ │ │ │ │ +00004fe0: 6f66 2074 6865 2075 6e72 6561 6420 6461 of the unread da │ │ │ │ │ +00004ff0: 7461 2069 6e20 7468 6520 696e 7075 7420 ta in the input │ │ │ │ │ +00005000: 7175 6575 650a 5052 4f54 4f54 5950 450a queue.PROTOTYPE. │ │ │ │ │ +00005010: 2020 2020 2020 2d2d 2053 6f63 6b65 7473 -- Sockets │ │ │ │ │ +00005020: 2e47 6574 5f52 6563 6569 7665 5f51 7565 .Get_Receive_Que │ │ │ │ │ +00005030: 7565 5f53 697a 653a 2066 756e 6374 696f ue_Size: functio │ │ │ │ │ +00005040: 6e20 4765 745f 5265 6365 6976 655f 5175 n Get_Receive_Qu │ │ │ │ │ +00005050: 6575 655f 5369 7a65 0a20 2020 2020 2020 eue_Size. │ │ │ │ │ +00005060: 2020 2020 2020 2020 2853 4f43 4b45 5420 (SOCKET │ │ │ │ │ +00005070: 3a20 536f 636b 6574 5f46 4427 436c 6173 : Socket_FD'Clas │ │ │ │ │ +00005080: 7329 0a20 2020 2020 2020 2020 2020 2020 s). │ │ │ │ │ +00005090: 2020 7265 7475 726e 2049 6e74 6567 6572 return Integer │ │ │ │ │ +000050a0: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +000050b0: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ +000050c0: 2020 2020 2020 2020 2049 6e69 7469 616c Initial │ │ │ │ │ +000050d0: 697a 6564 2061 6e64 2063 6f6e 6e65 6374 ized and connect │ │ │ │ │ +000050e0: 6564 2073 6f63 6b65 7420 6f62 6a65 6374 ed socket object │ │ │ │ │ +000050f0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ +00005100: 2020 2020 5468 6520 6e6f 6e2d 6e65 6761 The non-nega │ │ │ │ │ +00005110: 7469 7665 2073 697a 6520 696e 2062 7974 tive size in byt │ │ │ │ │ +00005120: 6573 206f 6620 7468 6520 696e 7075 7420 es of the input │ │ │ │ │ +00005130: 7175 6575 650a 0a44 4553 4352 4950 5449 queue..DESCRIPTI │ │ │ │ │ +00005140: 4f4e 0a20 2020 2020 5468 6973 2066 756e ON. This fun │ │ │ │ │ +00005150: 6374 696f 6e20 6973 206f 6e6c 7920 6176 ction is only av │ │ │ │ │ +00005160: 6169 6c61 626c 6520 6f6e 204c 696e 7578 ailable on Linux │ │ │ │ │ +00005170: 2070 6c61 7466 6f72 6d73 2e20 204f 6e20 platforms. On │ │ │ │ │ +00005180: 6f74 6865 720a 2020 2020 206f 7065 7261 other. opera │ │ │ │ │ +00005190: 7469 6e67 2073 7973 7465 6d73 2c20 6974 ting systems, it │ │ │ │ │ +000051a0: 2077 696c 6c20 7265 7475 726e 202d 3220 will return -2 │ │ │ │ │ +000051b0: 746f 2069 6e64 6963 6174 6520 7468 6174 to indicate that │ │ │ │ │ +000051c0: 2074 6865 206e 6563 6573 7361 7279 0a20 the necessary. │ │ │ │ │ +000051d0: 2020 2020 6d65 6368 616e 6973 6d73 2074 mechanisms t │ │ │ │ │ +000051e0: 6f20 7265 7472 6965 7665 2074 6865 2069 o retrieve the i │ │ │ │ │ +000051f0: 6e66 6f72 6d61 7469 6f6e 2061 7265 206e nformation are n │ │ │ │ │ +00005200: 6f74 2061 7661 696c 6162 6c65 2e0a 0a53 ot available...S │ │ │ │ │ +00005210: 4545 2041 4c53 4f0a 2020 2020 202a 6e6f EE ALSO. *no │ │ │ │ │ +00005220: 7465 2052 6563 6569 7665 2028 7072 6f63 te Receive (proc │ │ │ │ │ +00005230: 6564 7572 6529 3a3a 2e0a 0a1f 0a46 696c edure)::.....Fil │ │ │ │ │ +00005240: 653a 2061 6461 736f 636b 6574 732e 696e e: adasockets.in │ │ │ │ │ +00005250: 666f 2c20 204e 6f64 653a 2047 6574 5f53 fo, Node: Get_S │ │ │ │ │ +00005260: 656e 645f 5175 6575 655f 5369 7a65 2028 end_Queue_Size ( │ │ │ │ │ +00005270: 6675 6e63 7469 6f6e 292c 2020 4e65 7874 function), Next │ │ │ │ │ +00005280: 3a20 4765 7473 6f63 6b6f 7074 2028 7072 : Getsockopt (pr │ │ │ │ │ +00005290: 6f63 6564 7572 6529 2c20 2050 7265 763a ocedure), Prev: │ │ │ │ │ +000052a0: 2047 6574 5f52 6563 6569 7665 5f51 7565 Get_Receive_Que │ │ │ │ │ +000052b0: 7565 5f53 697a 6520 2866 756e 6374 696f ue_Size (functio │ │ │ │ │ +000052c0: 6e29 2c20 2055 703a 2041 6363 6570 745f n), Up: Accept_ │ │ │ │ │ +000052d0: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +000052e0: 6529 0a0a 4765 745f 5365 6e64 5f51 7565 e)..Get_Send_Que │ │ │ │ │ +000052f0: 7565 5f53 697a 6520 2866 756e 6374 696f ue_Size (functio │ │ │ │ │ +00005300: 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d n).------------- │ │ │ │ │ +00005310: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00005320: 2d0a 0a50 5552 504f 5345 0a20 2020 2020 -..PURPOSE. │ │ │ │ │ +00005330: 5265 7475 726e 2074 6865 2073 697a 6520 Return the size │ │ │ │ │ +00005340: 6f66 2074 6865 2075 6e73 656e 7420 6461 of the unsent da │ │ │ │ │ +00005350: 7461 2069 6e20 7468 6520 6f75 7470 7574 ta in the output │ │ │ │ │ +00005360: 2071 7565 7565 0a50 524f 544f 5459 5045 queue.PROTOTYPE │ │ │ │ │ +00005370: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +00005380: 732e 4765 745f 5365 6e64 5f51 7565 7565 s.Get_Send_Queue │ │ │ │ │ +00005390: 5f53 697a 653a 2066 756e 6374 696f 6e20 _Size: function │ │ │ │ │ +000053a0: 4765 745f 5365 6e64 5f51 7565 7565 5f53 Get_Send_Queue_S │ │ │ │ │ +000053b0: 697a 650a 2020 2020 2020 2020 2020 2020 ize. │ │ │ │ │ +000053c0: 2020 2028 534f 434b 4554 203a 2053 6f63 (SOCKET : Soc │ │ │ │ │ +000053d0: 6b65 745f 4644 2743 6c61 7373 290a 2020 ket_FD'Class). │ │ │ │ │ +000053e0: 2020 2020 2020 2020 2020 2020 2072 6574 ret │ │ │ │ │ +000053f0: 7572 6e20 496e 7465 6765 723b 0a0a 5041 urn Integer;..PA │ │ │ │ │ +00005400: 5241 4d45 5445 5253 0a20 2020 2020 534f RAMETERS. SO │ │ │ │ │ +00005410: 434b 4554 2020 2020 2069 6e20 2020 2020 CKET in │ │ │ │ │ +00005420: 2020 2020 496e 6974 6961 6c69 7a65 6420 Initialized │ │ │ │ │ +00005430: 616e 6420 636f 6e6e 6563 7465 6420 736f and connected so │ │ │ │ │ +00005440: 636b 6574 206f 626a 6563 740a 0a52 4554 cket object..RET │ │ │ │ │ +00005450: 5552 4e20 5641 4c55 450a 2020 2020 2054 URN VALUE. T │ │ │ │ │ +00005460: 6865 206e 6f6e 2d6e 6567 6174 6976 6520 he non-negative │ │ │ │ │ +00005470: 7369 7a65 2069 6e20 6279 7465 7320 6f66 size in bytes of │ │ │ │ │ +00005480: 2074 6865 206f 7574 7075 7420 7175 6575 the output queu │ │ │ │ │ +00005490: 650a 0a44 4553 4352 4950 5449 4f4e 0a20 e..DESCRIPTION. │ │ │ │ │ +000054a0: 2020 2020 5468 6973 2066 756e 6374 696f This functio │ │ │ │ │ +000054b0: 6e20 6973 206f 6e6c 7920 6176 6169 6c61 n is only availa │ │ │ │ │ +000054c0: 626c 6520 6f6e 204c 696e 7578 2070 6c61 ble on Linux pla │ │ │ │ │ +000054d0: 7466 6f72 6d73 2e20 204f 6e20 6f74 6865 tforms. On othe │ │ │ │ │ +000054e0: 720a 2020 2020 206f 7065 7261 7469 6e67 r. operating │ │ │ │ │ +000054f0: 2073 7973 7465 6d73 2c20 6974 2077 696c systems, it wil │ │ │ │ │ +00005500: 6c20 7265 7475 726e 202d 3220 746f 2069 l return -2 to i │ │ │ │ │ +00005510: 6e64 6963 6174 6520 7468 6174 2074 6865 ndicate that the │ │ │ │ │ +00005520: 206e 6563 6573 7361 7279 0a20 2020 2020 necessary. │ │ │ │ │ +00005530: 6d65 6368 616e 6973 6d73 2074 6f20 7265 mechanisms to re │ │ │ │ │ +00005540: 7472 6965 7665 2074 6865 2069 6e66 6f72 trieve the infor │ │ │ │ │ +00005550: 6d61 7469 6f6e 2061 7265 206e 6f74 2061 mation are not a │ │ │ │ │ +00005560: 7661 696c 6162 6c65 2e0a 0a53 4545 2041 vailable...SEE A │ │ │ │ │ +00005570: 4c53 4f0a 2020 2020 202a 6e6f 7465 2053 LSO. *note S │ │ │ │ │ +00005580: 656e 6420 2870 726f 6365 6475 7265 293a end (procedure): │ │ │ │ │ +00005590: 3a2e 0a0a 1f0a 4669 6c65 3a20 6164 6173 :.....File: adas │ │ │ │ │ +000055a0: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ +000055b0: 6465 3a20 4765 7473 6f63 6b6f 7074 2028 de: Getsockopt ( │ │ │ │ │ +000055c0: 7072 6f63 6564 7572 6529 2c20 204e 6578 procedure), Nex │ │ │ │ │ +000055d0: 743a 204c 6973 7465 6e20 2870 726f 6365 t: Listen (proce │ │ │ │ │ +000055e0: 6475 7265 292c 2020 5072 6576 3a20 4765 dure), Prev: Ge │ │ │ │ │ +000055f0: 745f 5365 6e64 5f51 7565 7565 5f53 697a t_Send_Queue_Siz │ │ │ │ │ +00005600: 6520 2866 756e 6374 696f 6e29 2c20 2055 e (function), U │ │ │ │ │ +00005610: 703a 2041 6363 6570 745f 536f 636b 6574 p: Accept_Socket │ │ │ │ │ +00005620: 2028 7072 6f63 6564 7572 6529 0a0a 4765 (procedure)..Ge │ │ │ │ │ +00005630: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ +00005640: 7572 6529 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ure).----------- │ │ │ │ │ +00005650: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 -----------..PUR │ │ │ │ │ +00005660: 504f 5345 0a20 2020 2020 5265 7472 6965 POSE. Retrie │ │ │ │ │ +00005670: 7665 2061 2073 6f63 6b65 7420 6f70 7469 ve a socket opti │ │ │ │ │ +00005680: 6f6e 0a50 524f 544f 5459 5045 0a20 2020 on.PROTOTYPE. │ │ │ │ │ +00005690: 2020 202d 2d20 536f 636b 6574 732e 4765 -- Sockets.Ge │ │ │ │ │ +000056a0: 7473 6f63 6b6f 7074 3a20 7072 6f63 6564 tsockopt: proced │ │ │ │ │ +000056b0: 7572 6520 4765 7473 6f63 6b6f 7074 2028 ure Getsockopt ( │ │ │ │ │ +000056c0: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ +000056d0: 4644 3b0a 2020 2020 2020 2020 2020 2020 FD;. │ │ │ │ │ +000056e0: 2020 204c 4556 454c 203a 2053 6f63 6b65 LEVEL : Socke │ │ │ │ │ +000056f0: 745f 4c65 7665 6c20 3a3d 2053 4f4c 5f53 t_Level := SOL_S │ │ │ │ │ +00005700: 4f43 4b45 543b 0a20 2020 2020 2020 2020 OCKET;. │ │ │ │ │ +00005710: 2020 2020 2020 4f50 544e 414d 4520 3a20 OPTNAME : │ │ │ │ │ +00005720: 536f 636b 6574 5f4f 7074 696f 6e3b 204f Socket_Option; O │ │ │ │ │ +00005730: 5054 5641 4c20 3a20 6f75 7420 496e 7465 PTVAL : out Inte │ │ │ │ │ +00005740: 6765 7229 3b0a 0a50 4152 414d 4554 4552 ger);..PARAMETER │ │ │ │ │ +00005750: 530a 2020 2020 2053 4f43 4b45 5420 2020 S. SOCKET │ │ │ │ │ +00005760: 2020 696e 2020 2020 2020 2020 2049 6e69 in Ini │ │ │ │ │ +00005770: 7469 616c 697a 6564 2061 6e64 2062 6f75 tialized and bou │ │ │ │ │ +00005780: 6e64 2073 6f63 6b65 7420 6f62 6a65 6374 nd socket object │ │ │ │ │ +00005790: 0a20 2020 2020 4c45 5645 4c20 2020 2020 . LEVEL │ │ │ │ │ +000057a0: 2069 6e20 2020 2020 2020 2020 5072 6f74 in Prot │ │ │ │ │ +000057b0: 6f63 6f6c 206c 6576 656c 0a20 2020 2020 ocol level. │ │ │ │ │ +000057c0: 4f50 544e 414d 4520 2020 2069 6e20 2020 OPTNAME in │ │ │ │ │ +000057d0: 2020 2020 2020 4f70 7469 6f6e 206e 616d Option nam │ │ │ │ │ +000057e0: 650a 2020 2020 204f 5054 5641 4c20 2020 e. OPTVAL │ │ │ │ │ +000057f0: 2020 6f75 7420 2020 2020 2020 204f 7074 out Opt │ │ │ │ │ +00005800: 696f 6e20 7661 6c75 650a 0a44 4553 4352 ion value..DESCR │ │ │ │ │ +00005810: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ +00005820: 2070 726f 6365 6475 7265 2072 6574 7269 procedure retri │ │ │ │ │ +00005830: 6576 6573 206f 7074 696f 6e73 2061 7070 eves options app │ │ │ │ │ +00005840: 6c69 6361 626c 6520 746f 2061 2073 6f63 licable to a soc │ │ │ │ │ +00005850: 6b65 742e 2020 506c 6561 7365 0a20 2020 ket. Please. │ │ │ │ │ +00005860: 2020 7365 6520 796f 7572 206f 7065 7261 see your opera │ │ │ │ │ +00005870: 7469 6e67 2073 7973 7465 6d20 6d61 6e75 ting system manu │ │ │ │ │ +00005880: 616c 2066 6f72 2075 7361 626c 6520 6c65 al for usable le │ │ │ │ │ +00005890: 7665 6c73 2061 6e64 206f 7074 696f 6e73 vels and options │ │ │ │ │ +000058a0: 2e0a 0a20 2020 2020 5477 6f20 6c65 7665 ... Two leve │ │ │ │ │ +000058b0: 6c73 2061 7265 2064 6566 696e 6564 3a20 ls are defined: │ │ │ │ │ +000058c0: 2753 4f4c 5f53 4f43 4b45 5427 2028 7468 'SOL_SOCKET' (th │ │ │ │ │ +000058d0: 6520 6465 6661 756c 7429 2061 6e64 0a20 e default) and. │ │ │ │ │ +000058e0: 2020 2020 2749 5050 524f 544f 5f49 5027 'IPPROTO_IP' │ │ │ │ │ +000058f0: 2e20 2054 6865 206f 7074 696f 6e73 2061 . The options a │ │ │ │ │ +00005900: 7265 2027 534f 5f52 4555 5345 4144 4452 re 'SO_REUSEADDR │ │ │ │ │ +00005910: 272c 2027 534f 5f52 4555 5345 504f 5254 ', 'SO_REUSEPORT │ │ │ │ │ +00005920: 272c 0a20 2020 2020 2749 505f 4d55 4c54 ',. 'IP_MULT │ │ │ │ │ +00005930: 4943 4153 545f 5454 4c27 2c20 2749 505f ICAST_TTL', 'IP_ │ │ │ │ │ +00005940: 4144 445f 4d45 4d42 4552 5348 4950 272c ADD_MEMBERSHIP', │ │ │ │ │ +00005950: 2027 4950 5f44 524f 505f 4d45 4d42 4552 'IP_DROP_MEMBER │ │ │ │ │ +00005960: 5348 4950 272c 0a20 2020 2020 2749 505f SHIP',. 'IP_ │ │ │ │ │ +00005970: 4d55 4c54 4943 4153 545f 4c4f 4f50 272c MULTICAST_LOOP', │ │ │ │ │ +00005980: 2027 534f 5f53 4e44 4255 4627 2061 6e64 'SO_SNDBUF' and │ │ │ │ │ +00005990: 2027 4950 5f52 4356 4255 4627 2e0a 0a20 'IP_RCVBUF'... │ │ │ │ │ +000059a0: 2020 2020 4e6f 7465 2074 6861 7420 756e Note that un │ │ │ │ │ +000059b0: 6c69 6b65 2074 6865 6972 2043 206c 616e like their C lan │ │ │ │ │ +000059c0: 6775 6167 6520 636f 756e 7465 7270 6172 guage counterpar │ │ │ │ │ +000059d0: 742c 2027 4765 7473 6f63 6b6f 7074 2720 t, 'Getsockopt' │ │ │ │ │ +000059e0: 616e 640a 2020 2020 2027 5365 7473 6f63 and. 'Setsoc │ │ │ │ │ +000059f0: 6b6f 7074 2720 646f 206e 6f74 2072 6571 kopt' do not req │ │ │ │ │ +00005a00: 7569 7265 2061 6e20 6578 7472 6120 7061 uire an extra pa │ │ │ │ │ +00005a10: 7261 6d65 7465 7220 7265 7072 6573 656e rameter represen │ │ │ │ │ +00005a20: 7469 6e67 2074 6865 0a20 2020 2020 6c65 ting the. le │ │ │ │ │ +00005a30: 6e67 7468 2069 6e20 6279 7465 7320 6f66 ngth in bytes of │ │ │ │ │ +00005a40: 2074 6865 206f 7074 696f 6e20 7661 6c75 the option valu │ │ │ │ │ +00005a50: 652e 2020 4164 6153 6f63 6b65 7473 206e e. AdaSockets n │ │ │ │ │ +00005a60: 6f77 7320 7468 6520 7269 6768 740a 2020 ows the right. │ │ │ │ │ +00005a70: 2020 2073 697a 6520 666f 7220 6576 6572 size for ever │ │ │ │ │ +00005a80: 7920 6f70 7469 6f6e 2e0a 0a53 4545 2041 y option...SEE A │ │ │ │ │ +00005a90: 4c53 4f0a 2020 2020 202a 6e6f 7465 2053 LSO. *note S │ │ │ │ │ +00005aa0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +00005ab0: 6475 7265 293a 3a2e 0a0a 1f0a 4669 6c65 dure)::.....File │ │ │ │ │ +00005ac0: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ +00005ad0: 6f2c 2020 4e6f 6465 3a20 4c69 7374 656e o, Node: Listen │ │ │ │ │ +00005ae0: 2028 7072 6f63 6564 7572 6529 2c20 204e (procedure), N │ │ │ │ │ +00005af0: 6578 743a 204e 6577 5f4c 696e 6520 2870 ext: New_Line (p │ │ │ │ │ +00005b00: 726f 6365 6475 7265 292c 2020 5072 6576 rocedure), Prev │ │ │ │ │ +00005b10: 3a20 4765 7473 6f63 6b6f 7074 2028 7072 : Getsockopt (pr │ │ │ │ │ +00005b20: 6f63 6564 7572 6529 2c20 2055 703a 2041 ocedure), Up: A │ │ │ │ │ +00005b30: 6363 6570 745f 536f 636b 6574 2028 7072 ccept_Socket (pr │ │ │ │ │ +00005b40: 6f63 6564 7572 6529 0a0a 4c69 7374 656e ocedure)..Listen │ │ │ │ │ +00005b50: 2028 7072 6f63 6564 7572 6529 0a2d 2d2d (procedure).--- │ │ │ │ │ +00005b60: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ │ +00005b70: 0a50 5552 504f 5345 0a20 2020 2020 4573 .PURPOSE. Es │ │ │ │ │ +00005b80: 7461 626c 6973 6820 6120 6c69 7374 656e tablish a listen │ │ │ │ │ +00005b90: 2071 7565 7565 0a50 524f 544f 5459 5045 queue.PROTOTYPE │ │ │ │ │ +00005ba0: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +00005bb0: 732e 4c69 7374 656e 3a20 7072 6f63 6564 s.Listen: proced │ │ │ │ │ +00005bc0: 7572 6520 4c69 7374 656e 2028 534f 434b ure Listen (SOCK │ │ │ │ │ +00005bd0: 4554 203a 2053 6f63 6b65 745f 4644 3b0a ET : Socket_FD;. │ │ │ │ │ +00005be0: 2020 2020 2020 2020 2020 2020 2020 2051 Q │ │ │ │ │ +00005bf0: 5545 5545 5f53 495a 4520 3a20 506f 7369 UEUE_SIZE : Posi │ │ │ │ │ +00005c00: 7469 7665 203a 3d20 3529 3b0a 0a50 4152 tive := 5);..PAR │ │ │ │ │ +00005c10: 414d 4554 4552 530a 2020 2020 2053 4f43 AMETERS. SOC │ │ │ │ │ +00005c20: 4b45 5420 2020 2020 696e 2020 2020 2020 KET in │ │ │ │ │ +00005c30: 2020 2049 6e69 7469 616c 697a 6564 2061 Initialized a │ │ │ │ │ +00005c40: 6e64 2062 6f75 6e64 2073 6f63 6b65 7420 nd bound socket │ │ │ │ │ +00005c50: 6f62 6a65 6374 0a20 2020 2020 5155 4555 object. QUEU │ │ │ │ │ +00005c60: 455f 5349 5a45 2069 6e20 2020 2020 2020 E_SIZE in │ │ │ │ │ +00005c70: 2020 5265 7175 6573 7465 6420 736c 6f74 Requested slot │ │ │ │ │ +00005c80: 7320 696e 2074 6865 206c 6973 7465 6e20 s in the listen │ │ │ │ │ +00005c90: 7175 6575 650a 0a44 4553 4352 4950 5449 queue..DESCRIPTI │ │ │ │ │ +00005ca0: 4f4e 0a20 2020 2020 5468 6973 2070 726f ON. This pro │ │ │ │ │ +00005cb0: 6365 6475 7265 2065 7374 6162 6c69 7368 cedure establish │ │ │ │ │ +00005cc0: 6573 2061 206c 6973 7465 6e20 7175 6575 es a listen queu │ │ │ │ │ +00005cd0: 6520 6166 7465 7220 6120 5443 5020 736f e after a TCP so │ │ │ │ │ +00005ce0: 636b 6574 2061 730a 2020 2020 2062 6565 cket as. bee │ │ │ │ │ +00005cf0: 6e20 696e 6974 6961 6c69 7a65 6420 616e n initialized an │ │ │ │ │ +00005d00: 6420 626f 756e 642e 2020 4561 6368 2073 d bound. Each s │ │ │ │ │ +00005d10: 6c6f 7420 696e 2074 6865 2071 7565 7565 lot in the queue │ │ │ │ │ +00005d20: 2063 616e 2068 6f6c 6420 6f6e 650a 2020 can hold one. │ │ │ │ │ +00005d30: 2020 2069 6e63 6f6d 696e 6720 636f 6e6e incoming conn │ │ │ │ │ +00005d40: 6563 7469 6f6e 2074 6861 7420 6861 7320 ection that has │ │ │ │ │ +00005d50: 6e6f 7420 6265 656e 2061 6363 6570 7465 not been accepte │ │ │ │ │ +00005d60: 6420 7965 742e 2020 4e6f 7465 2074 6861 d yet. Note tha │ │ │ │ │ +00005d70: 7420 6d6f 7374 0a20 2020 2020 6f70 6572 t most. oper │ │ │ │ │ +00005d80: 6174 696e 6720 7379 7374 656d 7320 6967 ating systems ig │ │ │ │ │ +00005d90: 6e6f 7265 2071 7565 7565 2073 697a 6573 nore queue sizes │ │ │ │ │ +00005da0: 206c 6172 6765 7220 7468 616e 2066 6976 larger than fiv │ │ │ │ │ +00005db0: 652e 0a0a 5345 4520 414c 534f 0a20 2020 e...SEE ALSO. │ │ │ │ │ +00005dc0: 2020 2a6e 6f74 6520 4163 6365 7074 5f53 *note Accept_S │ │ │ │ │ +00005dd0: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00005de0: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ +00005df0: 4269 6e64 2028 7072 6f63 6564 7572 6529 Bind (procedure) │ │ │ │ │ +00005e00: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2053 ::,. *note S │ │ │ │ │ +00005e10: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00005e20: 293a 3a2e 0a0a 1f0a 4669 6c65 3a20 6164 )::.....File: ad │ │ │ │ │ +00005e30: 6173 6f63 6b65 7473 2e69 6e66 6f2c 2020 asockets.info, │ │ │ │ │ +00005e40: 4e6f 6465 3a20 4e65 775f 4c69 6e65 2028 Node: New_Line ( │ │ │ │ │ +00005e50: 7072 6f63 6564 7572 6529 2c20 204e 6578 procedure), Nex │ │ │ │ │ +00005e60: 743a 2050 7574 2028 7072 6f63 6564 7572 t: Put (procedur │ │ │ │ │ +00005e70: 6529 2c20 2050 7265 763a 204c 6973 7465 e), Prev: Liste │ │ │ │ │ +00005e80: 6e20 2870 726f 6365 6475 7265 292c 2020 n (procedure), │ │ │ │ │ +00005e90: 5570 3a20 4163 6365 7074 5f53 6f63 6b65 Up: Accept_Socke │ │ │ │ │ +00005ea0: 7420 2870 726f 6365 6475 7265 290a 0a4e t (procedure)..N │ │ │ │ │ +00005eb0: 6577 5f4c 696e 6520 2870 726f 6365 6475 ew_Line (procedu │ │ │ │ │ +00005ec0: 7265 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d re).------------ │ │ │ │ │ +00005ed0: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ +00005ee0: 450a 2020 2020 2053 656e 6420 6120 4352 E. Send a CR │ │ │ │ │ +00005ef0: 2f4c 4620 746f 2061 2072 656d 6f74 6520 /LF to a remote │ │ │ │ │ +00005f00: 686f 7374 0a50 524f 544f 5459 5045 0a20 host.PROTOTYPE. │ │ │ │ │ +00005f10: 2020 2020 202d 2d20 536f 636b 6574 732e -- Sockets. │ │ │ │ │ +00005f20: 4e65 775f 4c69 6e65 3a20 7072 6f63 6564 New_Line: proced │ │ │ │ │ +00005f30: 7572 6520 4e65 775f 4c69 6e65 2028 534f ure New_Line (SO │ │ │ │ │ +00005f40: 434b 4554 203a 2053 6f63 6b65 745f 4644 CKET : Socket_FD │ │ │ │ │ +00005f50: 2743 6c61 7373 3b0a 2020 2020 2020 2020 'Class;. │ │ │ │ │ +00005f60: 2020 2020 2020 2043 4f55 4e54 203a 204e COUNT : N │ │ │ │ │ +00005f70: 6174 7572 616c 203a 3d20 3129 3b0a 0a50 atural := 1);..P │ │ │ │ │ +00005f80: 4152 414d 4554 4552 530a 2020 2020 2053 ARAMETERS. S │ │ │ │ │ +00005f90: 4f43 4b45 5420 2020 2020 696e 2020 2020 OCKET in │ │ │ │ │ +00005fa0: 2020 2020 2049 6e69 7469 616c 697a 6564 Initialized │ │ │ │ │ +00005fb0: 2061 6e64 2063 6f6e 6e65 6374 6564 2073 and connected s │ │ │ │ │ +00005fc0: 6f63 6b65 7420 6f62 6a65 6374 0a20 2020 ocket object. │ │ │ │ │ +00005fd0: 2020 434f 554e 5420 2020 2020 2069 6e20 COUNT in │ │ │ │ │ +00005fe0: 2020 2020 2020 2020 4e75 6d62 6572 206f Number o │ │ │ │ │ +00005ff0: 6620 4352 2f4c 4620 7365 7175 656e 6365 f CR/LF sequence │ │ │ │ │ +00006000: 7320 746f 2073 656e 640a 0a44 4553 4352 s to send..DESCR │ │ │ │ │ +00006010: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ +00006020: 2070 726f 6365 6475 7265 2073 656e 6473 procedure sends │ │ │ │ │ +00006030: 206f 6e65 206f 7220 6d6f 7265 2043 522f one or more CR/ │ │ │ │ │ +00006040: 4c46 2063 6f6d 6269 6e61 7469 6f6e 7320 LF combinations │ │ │ │ │ +00006050: 746f 2074 6865 2070 6565 722e 0a0a 4558 to the peer...EX │ │ │ │ │ +00006060: 4345 5054 494f 4e53 0a20 2020 2020 2743 CEPTIONS. 'C │ │ │ │ │ +00006070: 6f6e 6e65 6374 696f 6e5f 436c 6f73 6564 onnection_Closed │ │ │ │ │ +00006080: 2750 6565 7220 6861 7320 7072 656d 6174 'Peer has premat │ │ │ │ │ +00006090: 7572 656c 7920 636c 6f73 6564 2074 6865 urely closed the │ │ │ │ │ +000060a0: 2063 6f6e 6e65 6374 696f 6e0a 0a53 4545 connection..SEE │ │ │ │ │ +000060b0: 2041 4c53 4f0a 2020 2020 202a 6e6f 7465 ALSO. *note │ │ │ │ │ +000060c0: 2050 7574 2028 7072 6f63 6564 7572 6529 Put (procedure) │ │ │ │ │ +000060d0: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2050 ::,. *note P │ │ │ │ │ +000060e0: 7574 5f4c 696e 6520 2870 726f 6365 6475 ut_Line (procedu │ │ │ │ │ +000060f0: 7265 293a 3a2e 0a0a 1f0a 4669 6c65 3a20 re)::.....File: │ │ │ │ │ +00006100: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ +00006110: 2020 4e6f 6465 3a20 5075 7420 2870 726f Node: Put (pro │ │ │ │ │ +00006120: 6365 6475 7265 292c 2020 4e65 7874 3a20 cedure), Next: │ │ │ │ │ +00006130: 5075 745f 4c69 6e65 2028 7072 6f63 6564 Put_Line (proced │ │ │ │ │ +00006140: 7572 6529 2c20 2050 7265 763a 204e 6577 ure), Prev: New │ │ │ │ │ +00006150: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ +00006160: 292c 2020 5570 3a20 4163 6365 7074 5f53 ), Up: Accept_S │ │ │ │ │ +00006170: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00006180: 290a 0a50 7574 2028 7072 6f63 6564 7572 )..Put (procedur │ │ │ │ │ +00006190: 6529 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d e).------------- │ │ │ │ │ +000061a0: 2d2d 0a0a 5055 5250 4f53 450a 2020 2020 --..PURPOSE. │ │ │ │ │ +000061b0: 2053 656e 6420 6120 7374 7269 6e67 2074 Send a string t │ │ │ │ │ +000061c0: 6f20 6120 7265 6d6f 7465 2068 6f73 740a o a remote host. │ │ │ │ │ +000061d0: 5052 4f54 4f54 5950 450a 2020 2020 2020 PROTOTYPE. │ │ │ │ │ +000061e0: 2d2d 2053 6f63 6b65 7473 2e50 7574 3a20 -- Sockets.Put: │ │ │ │ │ +000061f0: 7072 6f63 6564 7572 6520 5075 7420 2853 procedure Put (S │ │ │ │ │ +00006200: 4f43 4b45 5420 3a20 536f 636b 6574 5f46 OCKET : Socket_F │ │ │ │ │ +00006210: 4427 436c 6173 733b 0a20 2020 2020 2020 D'Class;. │ │ │ │ │ +00006220: 2020 2020 2020 2020 5354 5220 3a20 5374 STR : St │ │ │ │ │ +00006230: 7269 6e67 293b 0a0a 5041 5241 4d45 5445 ring);..PARAMETE │ │ │ │ │ +00006240: 5253 0a20 2020 2020 534f 434b 4554 2020 RS. SOCKET │ │ │ │ │ +00006250: 2020 2069 6e20 2020 2020 2020 2020 496e in In │ │ │ │ │ +00006260: 6974 6961 6c69 7a65 6420 616e 6420 636f itialized and co │ │ │ │ │ +00006270: 6e6e 6563 7465 6420 736f 636b 6574 206f nnected socket o │ │ │ │ │ +00006280: 626a 6563 740a 2020 2020 2053 5452 2020 bject. STR │ │ │ │ │ +00006290: 2020 2020 2020 696e 2020 2020 2020 2020 in │ │ │ │ │ +000062a0: 2053 7472 696e 6720 746f 2073 656e 640a String to send. │ │ │ │ │ +000062b0: 0a44 4553 4352 4950 5449 4f4e 0a20 2020 .DESCRIPTION. │ │ │ │ │ +000062c0: 2020 5468 6973 2070 726f 6365 6475 7265 This procedure │ │ │ │ │ +000062d0: 2073 656e 6473 2074 6865 2063 6f6e 7465 sends the conte │ │ │ │ │ +000062e0: 6e74 206f 6620 5354 5220 6f76 6572 2061 nt of STR over a │ │ │ │ │ +000062f0: 6e20 6f75 7467 6f69 6e67 206f 720a 2020 n outgoing or. │ │ │ │ │ +00006300: 2020 2069 6e63 6f6d 696e 6720 736f 636b incoming sock │ │ │ │ │ +00006310: 6574 2e0a 0a45 5843 4550 5449 4f4e 530a et...EXCEPTIONS. │ │ │ │ │ +00006320: 2020 2020 2027 436f 6e6e 6563 7469 6f6e 'Connection │ │ │ │ │ +00006330: 5f43 6c6f 7365 6427 5065 6572 2068 6173 _Closed'Peer has │ │ │ │ │ +00006340: 2070 7265 6d61 7475 7265 6c79 2063 6c6f prematurely clo │ │ │ │ │ +00006350: 7365 6420 7468 6520 636f 6e6e 6563 7469 sed the connecti │ │ │ │ │ +00006360: 6f6e 0a0a 5345 4520 414c 534f 0a20 2020 on..SEE ALSO. │ │ │ │ │ +00006370: 2020 2a6e 6f74 6520 4e65 775f 4c69 6e65 *note New_Line │ │ │ │ │ +00006380: 2028 7072 6f63 6564 7572 6529 3a3a 2c0a (procedure)::,. │ │ │ │ │ +00006390: 2020 2020 202a 6e6f 7465 2050 7574 5f4c *note Put_L │ │ │ │ │ +000063a0: 696e 6520 2870 726f 6365 6475 7265 293a ine (procedure): │ │ │ │ │ +000063b0: 3a2c 0a20 2020 2020 2a6e 6f74 6520 5365 :,. *note Se │ │ │ │ │ +000063c0: 6e64 2028 7072 6f63 6564 7572 6529 3a3a nd (procedure):: │ │ │ │ │ +000063d0: 2e0a 0a1f 0a46 696c 653a 2061 6461 736f .....File: adaso │ │ │ │ │ +000063e0: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ +000063f0: 653a 2050 7574 5f4c 696e 6520 2870 726f e: Put_Line (pro │ │ │ │ │ +00006400: 6365 6475 7265 292c 2020 4e65 7874 3a20 cedure), Next: │ │ │ │ │ +00006410: 5265 6365 6976 6520 2866 756e 6374 696f Receive (functio │ │ │ │ │ +00006420: 6e29 2c20 2050 7265 763a 2050 7574 2028 n), Prev: Put ( │ │ │ │ │ +00006430: 7072 6f63 6564 7572 6529 2c20 2055 703a procedure), Up: │ │ │ │ │ +00006440: 2041 6363 6570 745f 536f 636b 6574 2028 Accept_Socket ( │ │ │ │ │ +00006450: 7072 6f63 6564 7572 6529 0a0a 5075 745f procedure)..Put_ │ │ │ │ │ +00006460: 4c69 6e65 2028 7072 6f63 6564 7572 6529 Line (procedure) │ │ │ │ │ +00006470: 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d .--------------- │ │ │ │ │ +00006480: 2d2d 2d2d 2d0a 0a50 5552 504f 5345 0a20 -----..PURPOSE. │ │ │ │ │ +00006490: 2020 2020 5365 6e64 2061 2043 522f 4c46 Send a CR/LF │ │ │ │ │ +000064a0: 2074 6572 6d69 6e61 7465 6420 7374 7269 terminated stri │ │ │ │ │ +000064b0: 6e67 2074 6f20 6120 7265 6d6f 7465 2068 ng to a remote h │ │ │ │ │ +000064c0: 6f73 740a 5052 4f54 4f54 5950 450a 2020 ost.PROTOTYPE. │ │ │ │ │ +000064d0: 2020 2020 2d2d 2053 6f63 6b65 7473 2e50 -- Sockets.P │ │ │ │ │ +000064e0: 7574 5f4c 696e 653a 2070 726f 6365 6475 ut_Line: procedu │ │ │ │ │ +000064f0: 7265 2050 7574 5f4c 696e 6520 2853 4f43 re Put_Line (SOC │ │ │ │ │ +00006500: 4b45 5420 3a20 536f 636b 6574 5f46 4427 KET : Socket_FD' │ │ │ │ │ +00006510: 436c 6173 733b 0a20 2020 2020 2020 2020 Class;. │ │ │ │ │ +00006520: 2020 2020 2020 5354 5220 3a20 5374 7269 STR : Stri │ │ │ │ │ +00006530: 6e67 293b 0a0a 5041 5241 4d45 5445 5253 ng);..PARAMETERS │ │ │ │ │ +00006540: 0a20 2020 2020 534f 434b 4554 2020 2020 . SOCKET │ │ │ │ │ +00006550: 2069 6e20 2020 2020 2020 2020 496e 6974 in Init │ │ │ │ │ +00006560: 6961 6c69 7a65 6420 616e 6420 636f 6e6e ialized and conn │ │ │ │ │ +00006570: 6563 7465 6420 736f 636b 6574 206f 626a ected socket obj │ │ │ │ │ +00006580: 6563 740a 2020 2020 2053 5452 2020 2020 ect. STR │ │ │ │ │ +00006590: 2020 2020 696e 2020 2020 2020 2020 2053 in S │ │ │ │ │ +000065a0: 7472 696e 6720 746f 2073 656e 640a 0a44 tring to send..D │ │ │ │ │ +000065b0: 4553 4352 4950 5449 4f4e 0a20 2020 2020 ESCRIPTION. │ │ │ │ │ +000065c0: 5468 6973 2070 726f 6365 6475 7265 2073 This procedure s │ │ │ │ │ +000065d0: 656e 6473 2074 6865 2063 6f6e 7465 6e74 ends the content │ │ │ │ │ +000065e0: 206f 6620 5354 5220 706c 7573 2061 2043 of STR plus a C │ │ │ │ │ +000065f0: 522f 4c46 2063 6f6d 6269 6e61 7469 6f6e R/LF combination │ │ │ │ │ +00006600: 0a20 2020 2020 6f76 6572 2061 6e20 6f75 . over an ou │ │ │ │ │ +00006610: 7467 6f69 6e67 206f 7220 696e 636f 6d69 tgoing or incomi │ │ │ │ │ +00006620: 6e67 2073 6f63 6b65 742e 0a0a 4558 4345 ng socket...EXCE │ │ │ │ │ +00006630: 5054 494f 4e53 0a20 2020 2020 2743 6f6e PTIONS. 'Con │ │ │ │ │ +00006640: 6e65 6374 696f 6e5f 436c 6f73 6564 2750 nection_Closed'P │ │ │ │ │ +00006650: 6565 7220 6861 7320 7072 656d 6174 7572 eer has prematur │ │ │ │ │ +00006660: 656c 7920 636c 6f73 6564 2074 6865 2063 ely closed the c │ │ │ │ │ +00006670: 6f6e 6e65 6374 696f 6e0a 0a53 4545 2041 onnection..SEE A │ │ │ │ │ +00006680: 4c53 4f0a 2020 2020 202a 6e6f 7465 204e LSO. *note N │ │ │ │ │ +00006690: 6577 5f4c 696e 6520 2870 726f 6365 6475 ew_Line (procedu │ │ │ │ │ +000066a0: 7265 293a 3a2c 0a20 2020 2020 2a6e 6f74 re)::,. *not │ │ │ │ │ +000066b0: 6520 5075 7420 2870 726f 6365 6475 7265 e Put (procedure │ │ │ │ │ +000066c0: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ +000066d0: 5365 6e64 2028 7072 6f63 6564 7572 6529 Send (procedure) │ │ │ │ │ +000066e0: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +000066f0: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +00006700: 6f64 653a 2052 6563 6569 7665 2028 6675 ode: Receive (fu │ │ │ │ │ +00006710: 6e63 7469 6f6e 292c 2020 4e65 7874 3a20 nction), Next: │ │ │ │ │ +00006720: 5265 6365 6976 6520 2870 726f 6365 6475 Receive (procedu │ │ │ │ │ +00006730: 7265 292c 2020 5072 6576 3a20 5075 745f re), Prev: Put_ │ │ │ │ │ +00006740: 4c69 6e65 2028 7072 6f63 6564 7572 6529 Line (procedure) │ │ │ │ │ +00006750: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ +00006760: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +00006770: 0a0a 5265 6365 6976 6520 2866 756e 6374 ..Receive (funct │ │ │ │ │ +00006780: 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ion).----------- │ │ │ │ │ +00006790: 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f 5345 -------..PURPOSE │ │ │ │ │ +000067a0: 0a20 2020 2020 5265 6365 6976 6520 7261 . Receive ra │ │ │ │ │ +000067b0: 7720 6461 7461 206f 7665 7220 6120 736f w data over a so │ │ │ │ │ +000067c0: 636b 6574 0a50 524f 544f 5459 5045 0a20 cket.PROTOTYPE. │ │ │ │ │ +000067d0: 2020 2020 202d 2d20 536f 636b 6574 732e -- Sockets. │ │ │ │ │ +000067e0: 5265 6365 6976 653a 2066 756e 6374 696f Receive: functio │ │ │ │ │ +000067f0: 6e20 5265 6365 6976 6520 2853 4f43 4b45 n Receive (SOCKE │ │ │ │ │ +00006800: 5420 3a20 536f 636b 6574 5f46 443b 0a20 T : Socket_FD;. │ │ │ │ │ +00006810: 2020 2020 2020 2020 2020 2020 2020 4d41 MA │ │ │ │ │ +00006820: 5820 3a20 4164 612e 5374 7265 616d 732e X : Ada.Streams. │ │ │ │ │ +00006830: 5374 7265 616d 5f45 6c65 6d65 6e74 5f43 Stream_Element_C │ │ │ │ │ +00006840: 6f75 6e74 203a 3d20 3430 3936 290a 2020 ount := 4096). │ │ │ │ │ +00006850: 2020 2020 2020 2020 2020 2020 2072 6574 ret │ │ │ │ │ +00006860: 7572 6e20 4164 612e 5374 7265 616d 732e urn Ada.Streams. │ │ │ │ │ +00006870: 5374 7265 616d 5f45 6c65 6d65 6e74 5f41 Stream_Element_A │ │ │ │ │ +00006880: 7272 6179 3b0a 0a50 4152 414d 4554 4552 rray;..PARAMETER │ │ │ │ │ +00006890: 530a 2020 2020 2053 4f43 4b45 5420 2020 S. SOCKET │ │ │ │ │ +000068a0: 2020 696e 2020 2020 2020 2020 2049 6e69 in Ini │ │ │ │ │ +000068b0: 7469 616c 697a 6564 2061 6e64 2062 6f75 tialized and bou │ │ │ │ │ +000068c0: 6e64 206f 7220 636f 6e6e 6563 7465 640a nd or connected. │ │ │ │ │ +000068d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000068e0: 2020 2020 2020 2020 2020 2073 6f63 6b65 socke │ │ │ │ │ +000068f0: 7420 6f62 6a65 6374 0a20 2020 2020 4d41 t object. MA │ │ │ │ │ +00006900: 5820 2020 2020 2020 2069 6e20 2020 2020 X in │ │ │ │ │ +00006910: 2020 2020 4d61 7869 6d75 6d20 6461 7461 Maximum data │ │ │ │ │ +00006920: 206c 656e 6774 680a 0a52 4554 5552 4e20 length..RETURN │ │ │ │ │ +00006930: 5641 4c55 450a 2020 2020 2052 6563 6569 VALUE. Recei │ │ │ │ │ +00006940: 7665 6420 7261 7720 6461 7461 0a0a 4445 ved raw data..DE │ │ │ │ │ +00006950: 5343 5249 5054 494f 4e0a 2020 2020 2054 SCRIPTION. T │ │ │ │ │ +00006960: 6869 7320 7072 6f63 6564 7572 6520 7265 his procedure re │ │ │ │ │ +00006970: 6365 6976 6573 2064 6174 6120 6672 6f6d ceives data from │ │ │ │ │ +00006980: 2061 2062 6f75 6e64 2055 4450 2073 6f63 a bound UDP soc │ │ │ │ │ +00006990: 6b65 7420 6f72 2061 2063 6f6e 6e65 6374 ket or a connect │ │ │ │ │ +000069a0: 6564 0a20 2020 2020 5443 5020 736f 636b ed. TCP sock │ │ │ │ │ +000069b0: 6574 2e20 204f 6e6c 7920 6f6e 6520 7379 et. Only one sy │ │ │ │ │ +000069c0: 7374 656d 2063 616c 6c20 7769 6c6c 2062 stem call will b │ │ │ │ │ +000069d0: 6520 7065 7266 6f72 6d65 643b 2074 6869 e performed; thi │ │ │ │ │ +000069e0: 7320 6675 6e63 7469 6f6e 0a20 2020 2020 s function. │ │ │ │ │ +000069f0: 7769 6c6c 2072 6574 7572 6e20 7768 6174 will return what │ │ │ │ │ +00006a00: 6576 6572 2064 6174 6120 6861 7320 6172 ever data has ar │ │ │ │ │ +00006a10: 7269 7665 642e 2020 4e6f 7465 2074 6861 rived. Note tha │ │ │ │ │ +00006a20: 7420 696e 2047 4e41 5420 7468 650a 2020 t in GNAT the. │ │ │ │ │ +00006a30: 2020 2073 6563 6f6e 6461 7279 2073 7461 secondary sta │ │ │ │ │ +00006a40: 636b 206d 6179 2062 6520 7573 6564 2074 ck may be used t │ │ │ │ │ +00006a50: 6f20 7374 6f72 6520 7468 6520 6461 7461 o store the data │ │ │ │ │ +00006a60: 2061 6e64 206d 6179 2072 6573 756c 7420 and may result │ │ │ │ │ +00006a70: 696e 0a20 2020 2020 7374 6163 6b20 7374 in. stack st │ │ │ │ │ +00006a80: 6f72 6167 6520 6578 6861 7573 7469 6f6e orage exhaustion │ │ │ │ │ +00006a90: 2e0a 0a45 5843 4550 5449 4f4e 530a 2020 ...EXCEPTIONS. │ │ │ │ │ +00006aa0: 2020 2027 436f 6e6e 6563 7469 6f6e 5f43 'Connection_C │ │ │ │ │ +00006ab0: 6c6f 7365 6427 5065 6572 2068 6173 2063 losed'Peer has c │ │ │ │ │ +00006ac0: 6c6f 7365 6420 7468 6520 636f 6e6e 6563 losed the connec │ │ │ │ │ +00006ad0: 7469 6f6e 2062 6566 6f72 650a 2020 2020 tion before. │ │ │ │ │ +00006ae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00006af0: 2020 2020 7365 6e64 696e 6720 616e 7920 sending any │ │ │ │ │ +00006b00: 6461 7461 0a0a 5345 4520 414c 534f 0a20 data..SEE ALSO. │ │ │ │ │ +00006b10: 2020 2020 2a6e 6f74 6520 5265 6365 6976 *note Receiv │ │ │ │ │ +00006b20: 6520 2870 726f 6365 6475 7265 293a 3a2c e (procedure)::, │ │ │ │ │ +00006b30: 0a20 2020 2020 2a6e 6f74 6520 5265 6365 . *note Rece │ │ │ │ │ +00006b40: 6976 655f 536f 6d65 2028 7072 6f63 6564 ive_Some (proced │ │ │ │ │ +00006b50: 7572 6529 3a3a 2c0a 2020 2020 202a 6e6f ure)::,. *no │ │ │ │ │ +00006b60: 7465 2047 6574 5f4c 696e 6520 2866 756e te Get_Line (fun │ │ │ │ │ +00006b70: 6374 696f 6e29 3a3a 2c0a 2020 2020 202a ction)::,. * │ │ │ │ │ +00006b80: 6e6f 7465 2047 6574 5f4c 696e 6520 2870 note Get_Line (p │ │ │ │ │ +00006b90: 726f 6365 6475 7265 293a 3a2e 0a0a 1f0a rocedure)::..... │ │ │ │ │ +00006ba0: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ +00006bb0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 5265 .info, Node: Re │ │ │ │ │ +00006bc0: 6365 6976 6520 2870 726f 6365 6475 7265 ceive (procedure │ │ │ │ │ +00006bd0: 292c 2020 4e65 7874 3a20 5265 6365 6976 ), Next: Receiv │ │ │ │ │ +00006be0: 655f 536f 6d65 2028 7072 6f63 6564 7572 e_Some (procedur │ │ │ │ │ +00006bf0: 6529 2c20 2050 7265 763a 2052 6563 6569 e), Prev: Recei │ │ │ │ │ +00006c00: 7665 2028 6675 6e63 7469 6f6e 292c 2020 ve (function), │ │ │ │ │ +00006c10: 5570 3a20 4163 6365 7074 5f53 6f63 6b65 Up: Accept_Socke │ │ │ │ │ +00006c20: 7420 2870 726f 6365 6475 7265 290a 0a52 t (procedure)..R │ │ │ │ │ +00006c30: 6563 6569 7665 2028 7072 6f63 6564 7572 eceive (procedur │ │ │ │ │ +00006c40: 6529 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d e).------------- │ │ │ │ │ +00006c50: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ +00006c60: 2020 2020 2052 6563 6569 7665 2072 6177 Receive raw │ │ │ │ │ +00006c70: 2064 6174 6120 6f76 6572 2061 2073 6f63 data over a soc │ │ │ │ │ +00006c80: 6b65 740a 5052 4f54 4f54 5950 450a 2020 ket.PROTOTYPE. │ │ │ │ │ +00006c90: 2020 2020 2d2d 2053 6f63 6b65 7473 2e52 -- Sockets.R │ │ │ │ │ +00006ca0: 6563 6569 7665 3a20 7072 6f63 6564 7572 eceive: procedur │ │ │ │ │ +00006cb0: 6520 5265 6365 6976 6520 2853 4f43 4b45 e Receive (SOCKE │ │ │ │ │ +00006cc0: 5420 3a20 536f 636b 6574 5f46 4427 436c T : Socket_FD'Cl │ │ │ │ │ +00006cd0: 6173 733b 0a20 2020 2020 2020 2020 2020 ass;. │ │ │ │ │ +00006ce0: 2020 2020 4441 5441 203a 206f 7574 2041 DATA : out A │ │ │ │ │ +00006cf0: 6461 2e53 7472 6561 6d73 2e53 7472 6561 da.Streams.Strea │ │ │ │ │ +00006d00: 6d5f 456c 656d 656e 745f 4172 7261 7929 m_Element_Array) │ │ │ │ │ +00006d10: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +00006d20: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ +00006d30: 2020 2020 2020 2020 2049 6e69 7469 616c Initial │ │ │ │ │ +00006d40: 697a 6564 2061 6e64 2062 6f75 6e64 206f ized and bound o │ │ │ │ │ +00006d50: 7220 636f 6e6e 6563 7465 640a 2020 2020 r connected. │ │ │ │ │ +00006d60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00006d70: 2020 2020 2020 2073 6f63 6b65 7420 6f62 socket ob │ │ │ │ │ +00006d80: 6a65 6374 0a20 2020 2020 4441 5441 2020 ject. DATA │ │ │ │ │ +00006d90: 2020 2020 206f 7574 2020 2020 2020 2020 out │ │ │ │ │ +00006da0: 496e 636f 6d69 6e67 2064 6174 6120 6275 Incoming data bu │ │ │ │ │ +00006db0: 6666 6572 0a0a 4445 5343 5249 5054 494f ffer..DESCRIPTIO │ │ │ │ │ +00006dc0: 4e0a 2020 2020 2054 6869 7320 7072 6f63 N. This proc │ │ │ │ │ +00006dd0: 6564 7572 6520 7265 6365 6976 6573 2064 edure receives d │ │ │ │ │ +00006de0: 6174 6120 6672 6f6d 2061 2062 6f75 6e64 ata from a bound │ │ │ │ │ +00006df0: 2055 4450 2073 6f63 6b65 7420 6f72 2061 UDP socket or a │ │ │ │ │ +00006e00: 2063 6f6e 6e65 6374 6564 0a20 2020 2020 connected. │ │ │ │ │ +00006e10: 5443 5020 736f 636b 6574 2e20 2049 7420 TCP socket. It │ │ │ │ │ +00006e20: 7769 6c6c 2062 6c6f 636b 2075 6e74 696c will block until │ │ │ │ │ +00006e30: 2074 6865 2044 4154 4120 7265 6365 7074 the DATA recept │ │ │ │ │ +00006e40: 696f 6e20 6275 6666 6572 2068 6173 2062 ion buffer has b │ │ │ │ │ +00006e50: 6565 6e0a 2020 2020 2074 6f74 616c 6c79 een. totally │ │ │ │ │ +00006e60: 2066 696c 6c65 642e 0a0a 4558 4345 5054 filled...EXCEPT │ │ │ │ │ +00006e70: 494f 4e53 0a20 2020 2020 2743 6f6e 6e65 IONS. 'Conne │ │ │ │ │ +00006e80: 6374 696f 6e5f 436c 6f73 6564 2750 6565 ction_Closed'Pee │ │ │ │ │ +00006e90: 7220 6861 7320 636c 6f73 6564 2074 6865 r has closed the │ │ │ │ │ +00006ea0: 2063 6f6e 6e65 6374 696f 6e20 6265 666f connection befo │ │ │ │ │ +00006eb0: 7265 0a20 2020 2020 2020 2020 2020 2020 re. │ │ │ │ │ +00006ec0: 2020 2020 2020 2020 2020 2027 4461 7461 'Data │ │ │ │ │ +00006ed0: 274c 656e 6774 6827 2062 7974 6573 0a20 'Length' bytes. │ │ │ │ │ +00006ee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00006ef0: 2020 2020 2020 2077 6572 6520 7265 6365 were rece │ │ │ │ │ +00006f00: 6976 6564 0a0a 5345 4520 414c 534f 0a20 ived..SEE ALSO. │ │ │ │ │ +00006f10: 2020 2020 2a6e 6f74 6520 4765 745f 4c69 *note Get_Li │ │ │ │ │ +00006f20: 6e65 2028 6675 6e63 7469 6f6e 293a 3a2c ne (function)::, │ │ │ │ │ +00006f30: 0a20 2020 2020 2a6e 6f74 6520 4765 745f . *note Get_ │ │ │ │ │ +00006f40: 4c69 6e65 2028 7072 6f63 6564 7572 6529 Line (procedure) │ │ │ │ │ +00006f50: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2052 ::,. *note R │ │ │ │ │ +00006f60: 6563 6569 7665 2028 6675 6e63 7469 6f6e eceive (function │ │ │ │ │ +00006f70: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ +00006f80: 5265 6365 6976 655f 536f 6d65 2028 7072 Receive_Some (pr │ │ │ │ │ +00006f90: 6f63 6564 7572 6529 3a3a 2e0a 0a1f 0a46 ocedure)::.....F │ │ │ │ │ +00006fa0: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ +00006fb0: 696e 666f 2c20 204e 6f64 653a 2052 6563 info, Node: Rec │ │ │ │ │ +00006fc0: 6569 7665 5f53 6f6d 6520 2870 726f 6365 eive_Some (proce │ │ │ │ │ +00006fd0: 6475 7265 292c 2020 4e65 7874 3a20 5365 dure), Next: Se │ │ │ │ │ +00006fe0: 6e64 2028 7072 6f63 6564 7572 6529 2c20 nd (procedure), │ │ │ │ │ +00006ff0: 2050 7265 763a 2052 6563 6569 7665 2028 Prev: Receive ( │ │ │ │ │ +00007000: 7072 6f63 6564 7572 6529 2c20 2055 703a procedure), Up: │ │ │ │ │ +00007010: 2041 6363 6570 745f 536f 636b 6574 2028 Accept_Socket ( │ │ │ │ │ +00007020: 7072 6f63 6564 7572 6529 0a0a 5265 6365 procedure)..Rece │ │ │ │ │ +00007030: 6976 655f 536f 6d65 2028 7072 6f63 6564 ive_Some (proced │ │ │ │ │ +00007040: 7572 6529 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ure).----------- │ │ │ │ │ +00007050: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ +00007060: 5552 504f 5345 0a20 2020 2020 5265 6365 URPOSE. Rece │ │ │ │ │ +00007070: 6976 6520 7261 7720 6461 7461 206f 7665 ive raw data ove │ │ │ │ │ +00007080: 7220 6120 736f 636b 6574 0a50 524f 544f r a socket.PROTO │ │ │ │ │ +00007090: 5459 5045 0a20 2020 2020 202d 2d20 536f TYPE. -- So │ │ │ │ │ +000070a0: 636b 6574 732e 5265 6365 6976 655f 536f ckets.Receive_So │ │ │ │ │ +000070b0: 6d65 3a20 7072 6f63 6564 7572 6520 5265 me: procedure Re │ │ │ │ │ +000070c0: 6365 6976 655f 536f 6d65 0a20 2020 2020 ceive_Some. │ │ │ │ │ +000070d0: 2020 2020 2020 2020 2020 2853 4f43 4b45 (SOCKE │ │ │ │ │ +000070e0: 5420 3a20 536f 636b 6574 5f46 4427 436c T : Socket_FD'Cl │ │ │ │ │ +000070f0: 6173 733b 0a20 2020 2020 2020 2020 2020 ass;. │ │ │ │ │ +00007100: 2020 2020 4441 5441 203a 206f 7574 2041 DATA : out A │ │ │ │ │ +00007110: 6461 2e53 7472 6561 6d73 2e53 7472 6561 da.Streams.Strea │ │ │ │ │ +00007120: 6d5f 456c 656d 656e 745f 4172 7261 793b m_Element_Array; │ │ │ │ │ +00007130: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00007140: 4c41 5354 203a 206f 7574 2041 6461 2e53 LAST : out Ada.S │ │ │ │ │ +00007150: 7472 6561 6d73 2e53 7472 6561 6d5f 456c treams.Stream_El │ │ │ │ │ +00007160: 656d 656e 745f 4f66 6673 6574 293b 0a0a ement_Offset);.. │ │ │ │ │ +00007170: 5041 5241 4d45 5445 5253 0a20 2020 2020 PARAMETERS. │ │ │ │ │ +00007180: 534f 434b 4554 2020 2020 2069 6e20 2020 SOCKET in │ │ │ │ │ +00007190: 2020 2020 2020 496e 6974 6961 6c69 7a65 Initialize │ │ │ │ │ +000071a0: 6420 616e 6420 626f 756e 6420 6f72 2063 d and bound or c │ │ │ │ │ +000071b0: 6f6e 6e65 6374 6564 0a20 2020 2020 2020 onnected. │ │ │ │ │ +000071c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000071d0: 2020 2020 736f 636b 6574 206f 626a 6563 socket objec │ │ │ │ │ +000071e0: 740a 2020 2020 2044 4154 4120 2020 2020 t. DATA │ │ │ │ │ +000071f0: 2020 6f75 7420 2020 2020 2020 2049 6e63 out Inc │ │ │ │ │ +00007200: 6f6d 696e 6720 6461 7461 2062 7566 6665 oming data buffe │ │ │ │ │ +00007210: 720a 2020 2020 204c 4153 5420 2020 2020 r. LAST │ │ │ │ │ +00007220: 2020 6f75 7420 2020 2020 2020 2049 6e64 out Ind │ │ │ │ │ +00007230: 6578 206f 6620 6c61 7374 2065 6c65 6d65 ex of last eleme │ │ │ │ │ +00007240: 6e74 2070 6c61 6365 6420 696e 746f 2044 nt placed into D │ │ │ │ │ +00007250: 4154 410a 0a44 4553 4352 4950 5449 4f4e ATA..DESCRIPTION │ │ │ │ │ +00007260: 0a20 2020 2020 5468 6973 2070 726f 6365 . This proce │ │ │ │ │ +00007270: 6475 7265 2072 6563 6569 7665 7320 6461 dure receives da │ │ │ │ │ +00007280: 7461 2066 726f 6d20 6120 626f 756e 6420 ta from a bound │ │ │ │ │ +00007290: 5544 5020 736f 636b 6574 206f 7220 6120 UDP socket or a │ │ │ │ │ +000072a0: 636f 6e6e 6563 7465 640a 2020 2020 2054 connected. T │ │ │ │ │ +000072b0: 4350 2073 6f63 6b65 742e 2020 4173 2073 CP socket. As s │ │ │ │ │ +000072c0: 6f6f 6e20 6173 2061 7420 6c65 6173 7420 oon as at least │ │ │ │ │ +000072d0: 6f6e 6520 6279 7465 2068 6173 2062 6565 one byte has bee │ │ │ │ │ +000072e0: 6e20 7265 6164 2c20 6974 2072 6574 7572 n read, it retur │ │ │ │ │ +000072f0: 6e73 0a20 2020 2020 7769 7468 204c 4153 ns. with LAS │ │ │ │ │ +00007300: 5420 7365 7420 746f 2074 6865 2069 6e64 T set to the ind │ │ │ │ │ +00007310: 6578 206f 6620 7468 6520 6c61 7465 7374 ex of the latest │ │ │ │ │ +00007320: 2077 7269 7474 656e 2065 6c65 6d65 6e74 written element │ │ │ │ │ +00007330: 206f 6620 4441 5441 2e0a 0a45 5843 4550 of DATA...EXCEP │ │ │ │ │ +00007340: 5449 4f4e 530a 2020 2020 2027 436f 6e6e TIONS. 'Conn │ │ │ │ │ +00007350: 6563 7469 6f6e 5f43 6c6f 7365 6427 5065 ection_Closed'Pe │ │ │ │ │ +00007360: 6572 2068 6173 2063 6c6f 7365 6420 7468 er has closed th │ │ │ │ │ +00007370: 6520 636f 6e6e 6563 7469 6f6e 2062 6566 e connection bef │ │ │ │ │ +00007380: 6f72 650a 2020 2020 2020 2020 2020 2020 ore. │ │ │ │ │ +00007390: 2020 2020 2020 2020 2020 2020 7365 6e64 send │ │ │ │ │ +000073a0: 696e 6720 616e 7920 6461 7461 0a0a 5345 ing any data..SE │ │ │ │ │ +000073b0: 4520 414c 534f 0a20 2020 2020 2a6e 6f74 E ALSO. *not │ │ │ │ │ +000073c0: 6520 4765 745f 4c69 6e65 2028 6675 6e63 e Get_Line (func │ │ │ │ │ +000073d0: 7469 6f6e 293a 3a2c 0a20 2020 2020 2a6e tion)::,. *n │ │ │ │ │ +000073e0: 6f74 6520 4765 745f 4c69 6e65 2028 7072 ote Get_Line (pr │ │ │ │ │ +000073f0: 6f63 6564 7572 6529 3a3a 2c0a 2020 2020 ocedure)::,. │ │ │ │ │ +00007400: 202a 6e6f 7465 2052 6563 6569 7665 2028 *note Receive ( │ │ │ │ │ +00007410: 6675 6e63 7469 6f6e 293a 3a2c 0a20 2020 function)::,. │ │ │ │ │ +00007420: 2020 2a6e 6f74 6520 5265 6365 6976 6520 *note Receive │ │ │ │ │ +00007430: 2870 726f 6365 6475 7265 293a 3a2e 0a0a (procedure)::... │ │ │ │ │ +00007440: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ +00007450: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ +00007460: 5365 6e64 2028 7072 6f63 6564 7572 6529 Send (procedure) │ │ │ │ │ +00007470: 2c20 204e 6578 743a 2053 6574 5f42 7566 , Next: Set_Buf │ │ │ │ │ +00007480: 6665 7220 2870 726f 6365 6475 7265 292c fer (procedure), │ │ │ │ │ +00007490: 2020 5072 6576 3a20 5265 6365 6976 655f Prev: Receive_ │ │ │ │ │ +000074a0: 536f 6d65 2028 7072 6f63 6564 7572 6529 Some (procedure) │ │ │ │ │ +000074b0: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ +000074c0: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +000074d0: 0a0a 5365 6e64 2028 7072 6f63 6564 7572 ..Send (procedur │ │ │ │ │ +000074e0: 6529 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d e).------------- │ │ │ │ │ +000074f0: 2d2d 2d0a 0a50 5552 504f 5345 0a20 2020 ---..PURPOSE. │ │ │ │ │ +00007500: 2020 5365 6e64 2072 6177 2064 6174 6120 Send raw data │ │ │ │ │ +00007510: 6f76 6572 2061 2073 6f63 6b65 740a 5052 over a socket.PR │ │ │ │ │ +00007520: 4f54 4f54 5950 450a 2020 2020 2020 2d2d OTOTYPE. -- │ │ │ │ │ +00007530: 2053 6f63 6b65 7473 2e53 656e 643a 2070 Sockets.Send: p │ │ │ │ │ +00007540: 726f 6365 6475 7265 2053 656e 6420 2853 rocedure Send (S │ │ │ │ │ +00007550: 4f43 4b45 5420 3a20 536f 636b 6574 5f46 OCKET : Socket_F │ │ │ │ │ +00007560: 443b 0a20 2020 2020 2020 2020 2020 2020 D;. │ │ │ │ │ +00007570: 2020 4441 5441 203a 206f 7574 2041 6461 DATA : out Ada │ │ │ │ │ +00007580: 2e53 7472 6561 6d73 2e53 7472 6561 6d5f .Streams.Stream_ │ │ │ │ │ +00007590: 456c 656d 656e 745f 4172 7261 7929 3b0a Element_Array);. │ │ │ │ │ +000075a0: 0a50 4152 414d 4554 4552 530a 2020 2020 .PARAMETERS. │ │ │ │ │ +000075b0: 2053 4f43 4b45 5420 2020 2020 696e 2020 SOCKET in │ │ │ │ │ +000075c0: 2020 2020 2020 2049 6e69 7469 616c 697a Initializ │ │ │ │ │ +000075d0: 6564 2061 6e64 2063 6f6e 6e65 6374 6564 ed and connected │ │ │ │ │ +000075e0: 2073 6f63 6b65 7420 6f62 6a65 6374 0a20 socket object. │ │ │ │ │ +000075f0: 2020 2020 4441 5441 2020 2020 2020 206f DATA o │ │ │ │ │ +00007600: 7574 2020 2020 2020 2020 4461 7461 2074 ut Data t │ │ │ │ │ +00007610: 6f20 6265 2073 656e 740a 0a44 4553 4352 o be sent..DESCR │ │ │ │ │ +00007620: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ +00007630: 2070 726f 6365 6475 7265 2073 656e 6473 procedure sends │ │ │ │ │ +00007640: 2064 6174 6120 6f76 6572 2061 2063 6f6e data over a con │ │ │ │ │ +00007650: 6e65 6374 6564 206f 7574 676f 696e 6720 nected outgoing │ │ │ │ │ +00007660: 736f 636b 6574 206f 7220 6f76 6572 0a20 socket or over. │ │ │ │ │ +00007670: 2020 2020 616e 2069 6e63 6f6d 696e 6720 an incoming │ │ │ │ │ +00007680: 736f 636b 6574 2e0a 0a45 5843 4550 5449 socket...EXCEPTI │ │ │ │ │ +00007690: 4f4e 530a 2020 2020 2027 436f 6e6e 6563 ONS. 'Connec │ │ │ │ │ +000076a0: 7469 6f6e 5f43 6c6f 7365 6427 5065 6572 tion_Closed'Peer │ │ │ │ │ +000076b0: 2068 6173 2070 7265 6d61 7475 7265 6c79 has prematurely │ │ │ │ │ +000076c0: 2063 6c6f 7365 6420 7468 6520 636f 6e6e closed the conn │ │ │ │ │ +000076d0: 6563 7469 6f6e 0a0a 5345 4520 414c 534f ection..SEE ALSO │ │ │ │ │ +000076e0: 0a20 2020 2020 2a6e 6f74 6520 5075 7420 . *note Put │ │ │ │ │ +000076f0: 2870 726f 6365 6475 7265 293a 3a2c 0a20 (procedure)::,. │ │ │ │ │ +00007700: 2020 2020 2a6e 6f74 6520 5075 745f 4c69 *note Put_Li │ │ │ │ │ +00007710: 6e65 2028 7072 6f63 6564 7572 6529 3a3a ne (procedure):: │ │ │ │ │ +00007720: 2e0a 0a1f 0a46 696c 653a 2061 6461 736f .....File: adaso │ │ │ │ │ +00007730: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ +00007740: 653a 2053 6574 5f42 7566 6665 7220 2870 e: Set_Buffer (p │ │ │ │ │ +00007750: 726f 6365 6475 7265 292c 2020 4e65 7874 rocedure), Next │ │ │ │ │ +00007760: 3a20 5365 7473 6f63 6b6f 7074 2028 7072 : Setsockopt (pr │ │ │ │ │ +00007770: 6f63 6564 7572 6529 2c20 2050 7265 763a ocedure), Prev: │ │ │ │ │ +00007780: 2053 656e 6420 2870 726f 6365 6475 7265 Send (procedure │ │ │ │ │ +00007790: 292c 2020 5570 3a20 4163 6365 7074 5f53 ), Up: Accept_S │ │ │ │ │ +000077a0: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +000077b0: 290a 0a53 6574 5f42 7566 6665 7220 2870 )..Set_Buffer (p │ │ │ │ │ +000077c0: 726f 6365 6475 7265 290a 2d2d 2d2d 2d2d rocedure).------ │ │ │ │ │ +000077d0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +000077e0: 0a0a 5055 5250 4f53 450a 2020 2020 2049 ..PURPOSE. I │ │ │ │ │ +000077f0: 6e73 7461 6c6c 2061 206c 696e 652d 6f72 nstall a line-or │ │ │ │ │ +00007800: 6965 6e74 6564 2062 7566 6665 7220 6f66 iented buffer of │ │ │ │ │ +00007810: 2074 6865 2073 6f63 6b65 7420 6f62 6a65 the socket obje │ │ │ │ │ +00007820: 6374 0a50 524f 544f 5459 5045 0a20 2020 ct.PROTOTYPE. │ │ │ │ │ +00007830: 2020 202d 2d20 536f 636b 6574 732e 5365 -- Sockets.Se │ │ │ │ │ +00007840: 745f 4275 6666 6572 3a20 7072 6f63 6564 t_Buffer: proced │ │ │ │ │ +00007850: 7572 6520 5365 745f 4275 6666 6572 0a20 ure Set_Buffer. │ │ │ │ │ +00007860: 2020 2020 2020 2020 2020 2020 2020 2853 (S │ │ │ │ │ +00007870: 4f43 4b45 5420 3a20 536f 636b 6574 5f46 OCKET : Socket_F │ │ │ │ │ +00007880: 4427 436c 6173 733b 204c 454e 4754 4820 D'Class; LENGTH │ │ │ │ │ +00007890: 3a20 506f 7369 7469 7665 203a 3d20 3135 : Positive := 15 │ │ │ │ │ +000078a0: 3030 293b 0a0a 5041 5241 4d45 5445 5253 00);..PARAMETERS │ │ │ │ │ +000078b0: 0a20 2020 2020 534f 434b 4554 2020 2020 . SOCKET │ │ │ │ │ +000078c0: 2069 6e20 2020 2020 2020 2020 496e 6974 in Init │ │ │ │ │ +000078d0: 6961 6c69 7a65 6420 616e 6420 636f 6e6e ialized and conn │ │ │ │ │ +000078e0: 6563 7465 6420 736f 636b 6574 206f 626a ected socket obj │ │ │ │ │ +000078f0: 6563 740a 2020 2020 204c 454e 4754 4820 ect. LENGTH │ │ │ │ │ +00007900: 2020 2020 696e 2020 2020 2020 2020 2053 in S │ │ │ │ │ +00007910: 697a 6520 696e 2062 7974 6573 206f 6620 ize in bytes of │ │ │ │ │ +00007920: 7468 6520 6e65 776c 7920 696e 7374 616c the newly instal │ │ │ │ │ +00007930: 6c65 640a 2020 2020 2020 2020 2020 2020 led. │ │ │ │ │ +00007940: 2020 2020 2020 2020 2020 2020 2020 2062 b │ │ │ │ │ +00007950: 7566 6665 720a 0a44 4553 4352 4950 5449 uffer..DESCRIPTI │ │ │ │ │ +00007960: 4f4e 0a20 2020 2020 5468 6973 2070 726f ON. This pro │ │ │ │ │ +00007970: 6365 6475 7265 2070 7574 7320 7468 6520 cedure puts the │ │ │ │ │ +00007980: 736f 636b 6574 206f 626a 6563 7420 696e socket object in │ │ │ │ │ +00007990: 2062 7566 6665 7265 6420 6d6f 6465 2e20 buffered mode. │ │ │ │ │ +000079a0: 2049 6620 7468 650a 2020 2020 2073 6f63 If the. soc │ │ │ │ │ +000079b0: 6b65 7420 7761 7320 616c 7265 6164 7920 ket was already │ │ │ │ │ +000079c0: 6275 6666 6572 6564 2c20 7468 6520 636f buffered, the co │ │ │ │ │ +000079d0: 6e74 656e 7420 6f66 2074 6865 2070 7265 ntent of the pre │ │ │ │ │ +000079e0: 7669 6f75 7320 6275 6666 6572 0a20 2020 vious buffer. │ │ │ │ │ +000079f0: 2020 7769 6c6c 2062 6520 6c6f 7374 2e20 will be lost. │ │ │ │ │ +00007a00: 2054 6865 2062 7566 6665 7265 6420 6d6f The buffered mo │ │ │ │ │ +00007a10: 6465 206f 6e6c 7920 6166 6665 6374 7320 de only affects │ │ │ │ │ +00007a20: 6368 6172 6163 7465 722d 2061 6e64 0a20 character- and. │ │ │ │ │ +00007a30: 2020 2020 6c69 6e65 2d6f 7269 656e 7465 line-oriente │ │ │ │ │ +00007a40: 6420 7265 6164 206f 7065 7261 7469 6f6e d read operation │ │ │ │ │ +00007a50: 2073 7563 6820 6173 202a 6e6f 7465 2047 such as *note G │ │ │ │ │ +00007a60: 6574 2028 6675 6e63 7469 6f6e 293a 3a2c et (function)::, │ │ │ │ │ +00007a70: 202a 6e6f 7465 0a20 2020 2020 4765 745f *note. Get_ │ │ │ │ │ +00007a80: 4368 6172 2028 6675 6e63 7469 6f6e 293a Char (function): │ │ │ │ │ +00007a90: 3a2c 2061 6e64 202a 6e6f 7465 2047 6574 :, and *note Get │ │ │ │ │ +00007aa0: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ +00007ab0: 3a3a 2e20 204f 7468 6572 0a20 2020 2020 ::. Other. │ │ │ │ │ +00007ac0: 7265 6365 7074 696f 6e20 7375 6270 726f reception subpro │ │ │ │ │ +00007ad0: 6772 616d 7320 7769 6c6c 206e 6f74 2066 grams will not f │ │ │ │ │ +00007ae0: 756e 6374 696f 6e20 7072 6f70 6572 6c79 unction properly │ │ │ │ │ +00007af0: 2069 6620 6275 6666 6572 6564 206d 6f64 if buffered mod │ │ │ │ │ +00007b00: 650a 2020 2020 2069 7320 7573 6564 2061 e. is used a │ │ │ │ │ +00007b10: 7420 7468 6520 7361 6d65 2074 696d 652e t the same time. │ │ │ │ │ +00007b20: 0a0a 2020 2020 2054 6865 2073 697a 6520 .. The size │ │ │ │ │ +00007b30: 6f66 2074 6865 2062 7566 6665 7220 6861 of the buffer ha │ │ │ │ │ +00007b40: 7320 746f 2062 6520 6772 6561 7465 7220 s to be greater │ │ │ │ │ +00007b50: 7468 616e 2074 6865 2062 6967 6765 7374 than the biggest │ │ │ │ │ +00007b60: 2070 6f73 7369 626c 650a 2020 2020 2070 possible. p │ │ │ │ │ +00007b70: 6163 6b65 7420 7365 6e74 2062 7920 7468 acket sent by th │ │ │ │ │ +00007b80: 6520 7265 6d6f 7465 2068 6f73 742c 206f e remote host, o │ │ │ │ │ +00007b90: 7468 6572 7769 7365 2064 6174 6120 6c6f therwise data lo │ │ │ │ │ +00007ba0: 7373 206d 6179 206f 6363 7572 2e0a 0a53 ss may occur...S │ │ │ │ │ +00007bb0: 4545 2041 4c53 4f0a 2020 2020 202a 6e6f EE ALSO. *no │ │ │ │ │ +00007bc0: 7465 2055 6e73 6574 5f42 7566 6665 7220 te Unset_Buffer │ │ │ │ │ +00007bd0: 2870 726f 6365 6475 7265 293a 3a2e 0a0a (procedure)::... │ │ │ │ │ +00007be0: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ +00007bf0: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ +00007c00: 5365 7473 6f63 6b6f 7074 2028 7072 6f63 Setsockopt (proc │ │ │ │ │ +00007c10: 6564 7572 6529 2c20 204e 6578 743a 2053 edure), Next: S │ │ │ │ │ +00007c20: 6875 7464 6f77 6e20 2870 726f 6365 6475 hutdown (procedu │ │ │ │ │ +00007c30: 7265 292c 2020 5072 6576 3a20 5365 745f re), Prev: Set_ │ │ │ │ │ +00007c40: 4275 6666 6572 2028 7072 6f63 6564 7572 Buffer (procedur │ │ │ │ │ +00007c50: 6529 2c20 2055 703a 2041 6363 6570 745f e), Up: Accept_ │ │ │ │ │ +00007c60: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +00007c70: 6529 0a0a 5365 7473 6f63 6b6f 7074 2028 e)..Setsockopt ( │ │ │ │ │ +00007c80: 7072 6f63 6564 7572 6529 0a2d 2d2d 2d2d procedure).----- │ │ │ │ │ +00007c90: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00007ca0: 2d0a 0a50 5552 504f 5345 0a20 2020 2020 -..PURPOSE. │ │ │ │ │ +00007cb0: 5365 7420 6120 736f 636b 6574 206f 7074 Set a socket opt │ │ │ │ │ +00007cc0: 696f 6e0a 5052 4f54 4f54 5950 450a 2020 ion.PROTOTYPE. │ │ │ │ │ +00007cd0: 2020 2020 2d2d 2053 6f63 6b65 7473 2e53 -- Sockets.S │ │ │ │ │ +00007ce0: 6574 736f 636b 6f70 743a 2070 726f 6365 etsockopt: proce │ │ │ │ │ +00007cf0: 6475 7265 2053 6574 736f 636b 6f70 7420 dure Setsockopt │ │ │ │ │ +00007d00: 2853 4f43 4b45 5420 3a20 536f 636b 6574 (SOCKET : Socket │ │ │ │ │ +00007d10: 5f46 443b 0a20 2020 2020 2020 2020 2020 _FD;. │ │ │ │ │ +00007d20: 2020 2020 4c45 5645 4c20 3a20 536f 636b LEVEL : Sock │ │ │ │ │ +00007d30: 6574 5f4c 6576 656c 203a 3d20 534f 4c5f et_Level := SOL_ │ │ │ │ │ +00007d40: 534f 434b 4554 3b0a 2020 2020 2020 2020 SOCKET;. │ │ │ │ │ +00007d50: 2020 2020 2020 204f 5054 4e41 4d45 203a OPTNAME : │ │ │ │ │ +00007d60: 2053 6f63 6b65 745f 4f70 7469 6f6e 3b20 Socket_Option; │ │ │ │ │ +00007d70: 4f50 5456 414c 203a 2049 6e74 6567 6572 OPTVAL : Integer │ │ │ │ │ +00007d80: 293b 0a0a 5041 5241 4d45 5445 5253 0a20 );..PARAMETERS. │ │ │ │ │ +00007d90: 2020 2020 534f 434b 4554 2020 2020 2069 SOCKET i │ │ │ │ │ +00007da0: 6e20 2020 2020 2020 2020 496e 6974 6961 n Initia │ │ │ │ │ +00007db0: 6c69 7a65 6420 616e 6420 626f 756e 6420 lized and bound │ │ │ │ │ +00007dc0: 736f 636b 6574 206f 626a 6563 740a 2020 socket object. │ │ │ │ │ +00007dd0: 2020 204c 4556 454c 2020 2020 2020 696e LEVEL in │ │ │ │ │ +00007de0: 2020 2020 2020 2020 2050 726f 746f 636f Protoco │ │ │ │ │ +00007df0: 6c20 6c65 7665 6c0a 2020 2020 204f 5054 l level. OPT │ │ │ │ │ +00007e00: 4e41 4d45 2020 2020 696e 2020 2020 2020 NAME in │ │ │ │ │ +00007e10: 2020 204f 7074 696f 6e20 6e61 6d65 0a20 Option name. │ │ │ │ │ +00007e20: 2020 2020 4f50 5456 414c 2020 2020 2069 OPTVAL i │ │ │ │ │ +00007e30: 6e20 2020 2020 2020 2020 4f70 7469 6f6e n Option │ │ │ │ │ +00007e40: 2076 616c 7565 0a0a 4445 5343 5249 5054 value..DESCRIPT │ │ │ │ │ +00007e50: 494f 4e0a 2020 2020 2054 6869 7320 7072 ION. This pr │ │ │ │ │ +00007e60: 6f63 6564 7572 6520 7365 7473 206f 7074 ocedure sets opt │ │ │ │ │ +00007e70: 696f 6e73 2061 7070 6c69 6361 626c 6520 ions applicable │ │ │ │ │ +00007e80: 746f 2061 2073 6f63 6b65 742e 2020 506c to a socket. Pl │ │ │ │ │ +00007e90: 6561 7365 2073 6565 0a20 2020 2020 796f ease see. yo │ │ │ │ │ +00007ea0: 7572 206f 7065 7261 7469 6e67 2073 7973 ur operating sys │ │ │ │ │ +00007eb0: 7465 6d20 6d61 6e75 616c 2066 6f72 2075 tem manual for u │ │ │ │ │ +00007ec0: 7361 626c 6520 6c65 7665 6c73 2061 6e64 sable levels and │ │ │ │ │ +00007ed0: 206f 7074 696f 6e73 2e0a 0a20 2020 2020 options... │ │ │ │ │ +00007ee0: 5477 6f20 6c65 7665 6c73 2061 7265 2064 Two levels are d │ │ │ │ │ +00007ef0: 6566 696e 6564 3a20 2753 4f4c 5f53 4f43 efined: 'SOL_SOC │ │ │ │ │ +00007f00: 4b45 5427 2028 7468 6520 6465 6661 756c KET' (the defaul │ │ │ │ │ +00007f10: 7429 2061 6e64 0a20 2020 2020 2749 5050 t) and. 'IPP │ │ │ │ │ +00007f20: 524f 544f 5f49 5027 2e20 2054 6865 206f ROTO_IP'. The o │ │ │ │ │ +00007f30: 7074 696f 6e73 2061 7265 2027 534f 5f52 ptions are 'SO_R │ │ │ │ │ +00007f40: 4555 5345 4144 4452 272c 2027 534f 5f52 EUSEADDR', 'SO_R │ │ │ │ │ +00007f50: 4555 5345 504f 5254 272c 0a20 2020 2020 EUSEPORT',. │ │ │ │ │ +00007f60: 2749 505f 4d55 4c54 4943 4153 545f 5454 'IP_MULTICAST_TT │ │ │ │ │ +00007f70: 4c27 2c20 2749 505f 4144 445f 4d45 4d42 L', 'IP_ADD_MEMB │ │ │ │ │ +00007f80: 4552 5348 4950 272c 2027 4950 5f44 524f ERSHIP', 'IP_DRO │ │ │ │ │ +00007f90: 505f 4d45 4d42 4552 5348 4950 272c 0a20 P_MEMBERSHIP',. │ │ │ │ │ +00007fa0: 2020 2020 2749 505f 4d55 4c54 4943 4153 'IP_MULTICAS │ │ │ │ │ +00007fb0: 545f 4c4f 4f50 272c 2027 534f 5f53 4e44 T_LOOP', 'SO_SND │ │ │ │ │ +00007fc0: 4255 4627 2061 6e64 2027 4950 5f52 4356 BUF' and 'IP_RCV │ │ │ │ │ +00007fd0: 4255 4627 2e0a 0a20 2020 2020 4e6f 7465 BUF'... Note │ │ │ │ │ +00007fe0: 2074 6861 7420 756e 6c69 6b65 2074 6865 that unlike the │ │ │ │ │ +00007ff0: 6972 2043 206c 616e 6775 6167 6520 636f ir C language co │ │ │ │ │ +00008000: 756e 7465 7270 6172 742c 2027 4765 7473 unterpart, 'Gets │ │ │ │ │ +00008010: 6f63 6b6f 7074 2720 616e 640a 2020 2020 ockopt' and. │ │ │ │ │ +00008020: 2027 5365 7473 6f63 6b6f 7074 2720 646f 'Setsockopt' do │ │ │ │ │ +00008030: 206e 6f74 2072 6571 7569 7265 2061 6e20 not require an │ │ │ │ │ +00008040: 6578 7472 6120 7061 7261 6d65 7465 7220 extra parameter │ │ │ │ │ +00008050: 7265 7072 6573 656e 7469 6e67 2074 6865 representing the │ │ │ │ │ +00008060: 0a20 2020 2020 6c65 6e67 7468 2069 6e20 . length in │ │ │ │ │ +00008070: 6279 7465 7320 6f66 2074 6865 206f 7074 bytes of the opt │ │ │ │ │ +00008080: 696f 6e20 7661 6c75 652e 2020 4164 6153 ion value. AdaS │ │ │ │ │ +00008090: 6f63 6b65 7473 206e 6f77 7320 7468 6520 ockets nows the │ │ │ │ │ +000080a0: 7269 6768 740a 2020 2020 2073 697a 6520 right. size │ │ │ │ │ +000080b0: 666f 7220 6576 6572 7920 6f70 7469 6f6e for every option │ │ │ │ │ +000080c0: 2e0a 0a53 4545 2041 4c53 4f0a 2020 2020 ...SEE ALSO. │ │ │ │ │ +000080d0: 202a 6e6f 7465 2047 6574 736f 636b 6f70 *note Getsockop │ │ │ │ │ +000080e0: 7420 2870 726f 6365 6475 7265 293a 3a2e t (procedure)::. │ │ │ │ │ +000080f0: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ +00008100: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ +00008110: 3a20 5368 7574 646f 776e 2028 7072 6f63 : Shutdown (proc │ │ │ │ │ +00008120: 6564 7572 6529 2c20 204e 6578 743a 2053 edure), Next: S │ │ │ │ │ +00008130: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00008140: 292c 2020 5072 6576 3a20 5365 7473 6f63 ), Prev: Setsoc │ │ │ │ │ +00008150: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ +00008160: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ +00008170: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +00008180: 0a0a 5368 7574 646f 776e 2028 7072 6f63 ..Shutdown (proc │ │ │ │ │ +00008190: 6564 7572 6529 0a2d 2d2d 2d2d 2d2d 2d2d edure).--------- │ │ │ │ │ +000081a0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 -----------..PUR │ │ │ │ │ +000081b0: 504f 5345 0a20 2020 2020 5368 7574 646f POSE. Shutdo │ │ │ │ │ +000081c0: 776e 2061 2073 6f63 6b65 740a 5052 4f54 wn a socket.PROT │ │ │ │ │ +000081d0: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ +000081e0: 6f63 6b65 7473 2e53 6875 7464 6f77 6e3a ockets.Shutdown: │ │ │ │ │ +000081f0: 2070 726f 6365 6475 7265 2053 6875 7464 procedure Shutd │ │ │ │ │ +00008200: 6f77 6e0a 2020 2020 2020 2020 2020 2020 own. │ │ │ │ │ +00008210: 2020 2028 534f 434b 4554 203a 2069 6e20 (SOCKET : in │ │ │ │ │ +00008220: 6f75 7420 536f 636b 6574 5f46 443b 2048 out Socket_FD; H │ │ │ │ │ +00008230: 4f57 203a 2053 6875 7464 6f77 6e5f 5479 OW : Shutdown_Ty │ │ │ │ │ +00008240: 7065 203a 3d20 426f 7468 293b 0a0a 5041 pe := Both);..PA │ │ │ │ │ +00008250: 5241 4d45 5445 5253 0a20 2020 2020 534f RAMETERS. SO │ │ │ │ │ +00008260: 434b 4554 2020 2020 2069 6e20 6f75 7420 CKET in out │ │ │ │ │ +00008270: 2020 2020 536f 636b 6574 206f 626a 6563 Socket objec │ │ │ │ │ +00008280: 7420 746f 2073 6875 7464 6f77 6e0a 2020 t to shutdown. │ │ │ │ │ +00008290: 2020 2048 4f57 2020 2020 2020 2020 696e HOW in │ │ │ │ │ +000082a0: 2020 2020 2020 2020 2044 6972 6563 7469 Directi │ │ │ │ │ +000082b0: 6f6e 2074 6f20 7368 7574 646f 776e 0a0a on to shutdown.. │ │ │ │ │ +000082c0: 4445 5343 5249 5054 494f 4e0a 2020 2020 DESCRIPTION. │ │ │ │ │ +000082d0: 2054 6869 7320 7072 6f63 6564 7572 6520 This procedure │ │ │ │ │ +000082e0: 7368 7574 646f 776e 7320 6569 7468 6572 shutdowns either │ │ │ │ │ +000082f0: 2064 6972 6563 7469 6f6e 206f 6620 7468 direction of th │ │ │ │ │ +00008300: 6520 736f 636b 6574 2e20 2048 4f57 2063 e socket. HOW c │ │ │ │ │ +00008310: 616e 0a20 2020 2020 7461 6b65 2074 6865 an. take the │ │ │ │ │ +00008320: 2076 616c 7565 2027 5365 6e64 272c 2027 value 'Send', ' │ │ │ │ │ +00008330: 5265 6365 6976 6527 206f 7220 2742 6f74 Receive' or 'Bot │ │ │ │ │ +00008340: 6827 2e0a 0a53 4545 2041 4c53 4f0a 2020 h'...SEE ALSO. │ │ │ │ │ +00008350: 2020 202a 6e6f 7465 2053 6f63 6b65 7420 *note Socket │ │ │ │ │ +00008360: 2870 726f 6365 6475 7265 293a 3a2e 0a0a (procedure)::... │ │ │ │ │ +00008370: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ +00008380: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ +00008390: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +000083a0: 6529 2c20 204e 6578 743a 2055 6e73 6574 e), Next: Unset │ │ │ │ │ +000083b0: 5f42 7566 6665 7220 2870 726f 6365 6475 _Buffer (procedu │ │ │ │ │ +000083c0: 7265 292c 2020 5072 6576 3a20 5368 7574 re), Prev: Shut │ │ │ │ │ +000083d0: 646f 776e 2028 7072 6f63 6564 7572 6529 down (procedure) │ │ │ │ │ +000083e0: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ +000083f0: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +00008400: 0a0a 536f 636b 6574 2028 7072 6f63 6564 ..Socket (proced │ │ │ │ │ +00008410: 7572 6529 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ure).----------- │ │ │ │ │ +00008420: 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f 5345 -------..PURPOSE │ │ │ │ │ +00008430: 0a20 2020 2020 4372 6561 7465 2061 2073 . Create a s │ │ │ │ │ +00008440: 6f63 6b65 7420 6f66 2074 6865 2067 6976 ocket of the giv │ │ │ │ │ +00008450: 656e 206d 6f64 650a 5052 4f54 4f54 5950 en mode.PROTOTYP │ │ │ │ │ +00008460: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ +00008470: 7473 2e53 6f63 6b65 743a 2070 726f 6365 ts.Socket: proce │ │ │ │ │ +00008480: 6475 7265 2053 6f63 6b65 7420 2853 4f43 dure Socket (SOC │ │ │ │ │ +00008490: 4b45 5420 3a20 6f75 7420 536f 636b 6574 KET : out Socket │ │ │ │ │ +000084a0: 5f46 443b 0a20 2020 2020 2020 2020 2020 _FD;. │ │ │ │ │ +000084b0: 2020 2020 444f 4d41 494e 203a 2053 6f63 DOMAIN : Soc │ │ │ │ │ +000084c0: 6b65 745f 446f 6d61 696e 203a 3d20 5046 ket_Domain := PF │ │ │ │ │ +000084d0: 5f49 4e45 543b 0a20 2020 2020 2020 2020 _INET;. │ │ │ │ │ +000084e0: 2020 2020 2020 5459 5020 3a20 536f 636b TYP : Sock │ │ │ │ │ +000084f0: 6574 5f54 7970 6520 3a3d 2053 4f43 4b5f et_Type := SOCK_ │ │ │ │ │ +00008500: 5354 5245 414d 293b 0a0a 5041 5241 4d45 STREAM);..PARAME │ │ │ │ │ +00008510: 5445 5253 0a20 2020 2020 534f 434b 4554 TERS. SOCKET │ │ │ │ │ +00008520: 2020 2020 206f 7574 2020 2020 2020 2020 out │ │ │ │ │ +00008530: 536f 636b 6574 206f 626a 6563 7420 746f Socket object to │ │ │ │ │ +00008540: 2069 6e69 7469 616c 697a 650a 2020 2020 initialize. │ │ │ │ │ +00008550: 2044 4f4d 4149 4e20 2020 2020 696e 2020 DOMAIN in │ │ │ │ │ +00008560: 2020 2020 2020 2050 726f 746f 636f 6c20 Protocol │ │ │ │ │ +00008570: 6661 6d69 6c79 0a20 2020 2020 5459 5020 family. TYP │ │ │ │ │ +00008580: 2020 2020 2020 2069 6e20 2020 2020 2020 in │ │ │ │ │ +00008590: 2020 4b69 6e64 206f 6620 736f 636b 6574 Kind of socket │ │ │ │ │ +000085a0: 730a 0a44 4553 4352 4950 5449 4f4e 0a20 s..DESCRIPTION. │ │ │ │ │ +000085b0: 2020 2020 5468 6973 2070 726f 6365 6475 This procedu │ │ │ │ │ +000085c0: 7265 2069 6e69 7469 616c 697a 6573 2061 re initializes a │ │ │ │ │ +000085d0: 206e 6577 2073 6f63 6b65 7420 6f62 6a65 new socket obje │ │ │ │ │ +000085e0: 6374 2062 7920 7265 7365 7276 696e 6720 ct by reserving │ │ │ │ │ +000085f0: 6120 6669 6c65 0a20 2020 2020 6465 7363 a file. desc │ │ │ │ │ +00008600: 7269 7074 6f72 2074 6f20 7468 6520 6f70 riptor to the op │ │ │ │ │ +00008610: 6572 6174 696e 6720 7379 7374 656d 2e20 erating system. │ │ │ │ │ +00008620: 2046 6f72 2062 6163 6b77 6172 6420 636f For backward co │ │ │ │ │ +00008630: 6d70 6174 6962 696c 6974 790a 2020 2020 mpatibility. │ │ │ │ │ +00008640: 2077 6974 6820 6f6c 6465 7220 7665 7273 with older vers │ │ │ │ │ +00008650: 696f 6e73 206f 6620 7468 6973 206c 6962 ions of this lib │ │ │ │ │ +00008660: 7261 7279 2c20 2741 465f 494e 4554 2720 rary, 'AF_INET' │ │ │ │ │ +00008670: 6973 2073 7469 6c6c 2061 6363 6570 7465 is still accepte │ │ │ │ │ +00008680: 6420 6173 0a20 2020 2020 6120 7661 6c75 d as. a valu │ │ │ │ │ +00008690: 6520 6275 7420 7368 6f75 6c64 2062 6520 e but should be │ │ │ │ │ +000086a0: 7265 706c 6163 6564 2061 7320 736f 6f6e replaced as soon │ │ │ │ │ +000086b0: 2061 7320 706f 7373 6962 6c65 2077 6974 as possible wit │ │ │ │ │ +000086c0: 6820 7468 6520 7072 6f70 6572 0a20 2020 h the proper. │ │ │ │ │ +000086d0: 2020 2750 465f 494e 4554 272e 2020 5573 'PF_INET'. Us │ │ │ │ │ +000086e0: 696e 6720 2753 4f43 4b5f 5354 5245 414d ing 'SOCK_STREAM │ │ │ │ │ +000086f0: 2720 666f 7220 7468 6520 5459 5020 6172 ' for the TYP ar │ │ │ │ │ +00008700: 6775 6d65 6e74 2077 696c 6c20 6372 6561 gument will crea │ │ │ │ │ +00008710: 7465 2061 0a20 2020 2020 5443 5020 736f te a. TCP so │ │ │ │ │ +00008720: 636b 6574 2077 6869 6c65 2061 2027 534f cket while a 'SO │ │ │ │ │ +00008730: 434b 5f44 4752 414d 2720 7769 6c6c 2063 CK_DGRAM' will c │ │ │ │ │ +00008740: 7265 6174 6520 6120 5544 5020 6f6e 652e reate a UDP one. │ │ │ │ │ +00008750: 0a0a 4558 414d 504c 450a 2020 2020 2020 ..EXAMPLE. │ │ │ │ │ +00008760: 2020 2020 6465 636c 6172 650a 2020 2020 declare. │ │ │ │ │ +00008770: 2020 2020 2020 2020 2053 6f63 6b20 3a20 Sock : │ │ │ │ │ +00008780: 536f 636b 6574 5f46 443b 0a20 2020 2020 Socket_FD;. │ │ │ │ │ +00008790: 2020 2020 2062 6567 696e 0a20 2020 2020 begin. │ │ │ │ │ +000087a0: 2020 2020 2020 2020 2d2d 2043 7265 6174 -- Creat │ │ │ │ │ +000087b0: 6520 6120 5443 5020 736f 636b 6574 0a20 e a TCP socket. │ │ │ │ │ +000087c0: 2020 2020 2020 2020 2020 2020 536f 636b Sock │ │ │ │ │ +000087d0: 6574 2028 536f 636b 2c20 5046 5f49 4e45 et (Sock, PF_INE │ │ │ │ │ +000087e0: 542c 2053 4f43 4b5f 5354 5245 414d 293b T, SOCK_STREAM); │ │ │ │ │ +000087f0: 0a20 2020 2020 2020 2020 2020 2020 2d2d . -- │ │ │ │ │ +00008800: 2050 6572 666f 726d 2073 6f6d 6520 6f70 Perform some op │ │ │ │ │ +00008810: 6572 6174 696f 6e73 206f 6e20 736f 636b erations on sock │ │ │ │ │ +00008820: 6574 0a20 2020 2020 2020 2020 2020 2020 et. │ │ │ │ │ +00008830: 5b2e 2e2e 5d0a 2020 2020 2020 2020 2020 [...]. │ │ │ │ │ +00008840: 2020 202d 2d20 5368 7574 646f 776e 2074 -- Shutdown t │ │ │ │ │ +00008850: 6865 2073 6f63 6b65 7420 696e 2062 6f74 he socket in bot │ │ │ │ │ +00008860: 6820 6469 7265 6374 696f 6e73 0a20 2020 h directions. │ │ │ │ │ +00008870: 2020 2020 2020 2020 2020 5368 7574 646f Shutdo │ │ │ │ │ +00008880: 776e 2028 536f 636b 2c20 426f 7468 293b wn (Sock, Both); │ │ │ │ │ +00008890: 0a20 2020 2020 2020 2020 2065 6e64 3b0a . end;. │ │ │ │ │ +000088a0: 0a53 4545 2041 4c53 4f0a 2020 2020 202a .SEE ALSO. * │ │ │ │ │ +000088b0: 6e6f 7465 2053 6875 7464 6f77 6e20 2870 note Shutdown (p │ │ │ │ │ +000088c0: 726f 6365 6475 7265 293a 3a2e 0a0a 1f0a rocedure)::..... │ │ │ │ │ +000088d0: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ +000088e0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 556e .info, Node: Un │ │ │ │ │ +000088f0: 7365 745f 4275 6666 6572 2028 7072 6f63 set_Buffer (proc │ │ │ │ │ +00008900: 6564 7572 6529 2c20 2050 7265 763a 2053 edure), Prev: S │ │ │ │ │ +00008910: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00008920: 292c 2020 5570 3a20 4163 6365 7074 5f53 ), Up: Accept_S │ │ │ │ │ +00008930: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00008940: 290a 0a55 6e73 6574 5f42 7566 6665 7220 )..Unset_Buffer │ │ │ │ │ +00008950: 2870 726f 6365 6475 7265 290a 2d2d 2d2d (procedure).---- │ │ │ │ │ +00008960: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00008970: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ +00008980: 2020 2044 6569 6e73 7461 6c6c 2074 6865 Deinstall the │ │ │ │ │ +00008990: 206c 696e 652d 6f72 6965 6e74 6564 2062 line-oriented b │ │ │ │ │ +000089a0: 7566 6665 7220 6f66 2074 6865 2073 6f63 uffer of the soc │ │ │ │ │ +000089b0: 6b65 7420 6f62 6a65 6374 0a50 524f 544f ket object.PROTO │ │ │ │ │ +000089c0: 5459 5045 0a20 2020 2020 202d 2d20 536f TYPE. -- So │ │ │ │ │ +000089d0: 636b 6574 732e 556e 7365 745f 4275 6666 ckets.Unset_Buff │ │ │ │ │ +000089e0: 6572 3a20 7072 6f63 6564 7572 6520 556e er: procedure Un │ │ │ │ │ +000089f0: 7365 745f 4275 6666 6572 0a20 2020 2020 set_Buffer. │ │ │ │ │ +00008a00: 2020 2020 2020 2020 2020 2853 4f43 4b45 (SOCKE │ │ │ │ │ +00008a10: 5420 3a20 536f 636b 6574 5f46 4427 436c T : Socket_FD'Cl │ │ │ │ │ +00008a20: 6173 7329 3b0a 0a50 4152 414d 4554 4552 ass);..PARAMETER │ │ │ │ │ +00008a30: 530a 2020 2020 2053 4f43 4b45 5420 2020 S. SOCKET │ │ │ │ │ +00008a40: 2020 696e 2020 2020 2020 2020 2049 6e69 in Ini │ │ │ │ │ +00008a50: 7469 616c 697a 6564 2061 6e64 2063 6f6e tialized and con │ │ │ │ │ +00008a60: 6e65 6374 6564 2073 6f63 6b65 7420 6f62 nected socket ob │ │ │ │ │ +00008a70: 6a65 6374 0a0a 4445 5343 5249 5054 494f ject..DESCRIPTIO │ │ │ │ │ +00008a80: 4e0a 2020 2020 2054 6869 7320 7072 6f63 N. This proc │ │ │ │ │ +00008a90: 6564 7572 6520 6465 696e 7374 616c 6c73 edure deinstalls │ │ │ │ │ +00008aa0: 2074 6865 2062 7566 6665 7220 7072 6576 the buffer prev │ │ │ │ │ +00008ab0: 696f 7573 6c79 2069 6e73 7461 6c6c 6564 iously installed │ │ │ │ │ +00008ac0: 2062 7920 2a6e 6f74 650a 2020 2020 2053 by *note. S │ │ │ │ │ +00008ad0: 6574 5f42 7566 6665 7220 2870 726f 6365 et_Buffer (proce │ │ │ │ │ +00008ae0: 6475 7265 293a 3a2e 2020 4966 2061 6e79 dure)::. If any │ │ │ │ │ +00008af0: 2064 6174 6120 6973 2073 7469 6c6c 2070 data is still p │ │ │ │ │ +00008b00: 7265 7365 6e74 2069 6e20 7468 650a 2020 resent in the. │ │ │ │ │ +00008b10: 2020 2062 7566 6665 722c 2069 7420 7769 buffer, it wi │ │ │ │ │ +00008b20: 6c6c 2062 6520 6c6f 7374 2e20 2054 6f20 ll be lost. To │ │ │ │ │ +00008b30: 6176 6f69 6420 7468 6973 2073 6974 7561 avoid this situa │ │ │ │ │ +00008b40: 7469 6f6e 2c20 7468 6520 6275 6666 6572 tion, the buffer │ │ │ │ │ +00008b50: 2063 616e 0a20 2020 2020 6265 2066 6c75 can. be flu │ │ │ │ │ +00008b60: 7368 6564 2062 7920 6361 6c6c 696e 6720 shed by calling │ │ │ │ │ +00008b70: 2a6e 6f74 6520 4765 7420 2866 756e 6374 *note Get (funct │ │ │ │ │ +00008b80: 696f 6e29 3a3a 2e0a 0a1f 0a46 696c 653a ion)::.....File: │ │ │ │ │ +00008b90: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ +00008ba0: 2c20 204e 6f64 653a 2053 6f63 6b65 7473 , Node: Sockets │ │ │ │ │ +00008bb0: 2e4d 756c 7469 6361 7374 2070 6163 6b61 .Multicast packa │ │ │ │ │ +00008bc0: 6765 2c20 204e 6578 743a 2053 6f63 6b65 ge, Next: Socke │ │ │ │ │ +00008bd0: 7473 2e4e 616d 696e 6720 7061 636b 6167 ts.Naming packag │ │ │ │ │ +00008be0: 652c 2020 5072 6576 3a20 536f 636b 6574 e, Prev: Socket │ │ │ │ │ +00008bf0: 7320 7061 636b 6167 652c 2020 5570 3a20 s package, Up: │ │ │ │ │ +00008c00: 546f 700a 0a35 2053 6f63 6b65 7473 2e4d Top..5 Sockets.M │ │ │ │ │ +00008c10: 756c 7469 6361 7374 2070 6163 6b61 6765 ulticast package │ │ │ │ │ +00008c20: 0a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a .*************** │ │ │ │ │ +00008c30: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 0a0a 5468 ************..Th │ │ │ │ │ +00008c40: 6520 2753 6f63 6b65 7473 2e4d 756c 7469 e 'Sockets.Multi │ │ │ │ │ +00008c50: 6361 7374 2720 616c 6c6f 7773 2074 6865 cast' allows the │ │ │ │ │ +00008c60: 2063 7265 6174 696f 6e20 6f66 2049 5020 creation of IP │ │ │ │ │ +00008c70: 6d75 6c74 6963 6173 7420 736f 636b 6574 multicast socket │ │ │ │ │ +00008c80: 732e 0a0a 202d 2d20 536f 636b 6574 732e s... -- Sockets. │ │ │ │ │ +00008c90: 4d75 6c74 6963 6173 742e 4d75 6c74 6963 Multicast.Multic │ │ │ │ │ +00008ca0: 6173 745f 536f 636b 6574 5f46 443a 2074 ast_Socket_FD: t │ │ │ │ │ +00008cb0: 7970 6520 4d75 6c74 6963 6173 745f 536f ype Multicast_So │ │ │ │ │ +00008cc0: 636b 6574 5f46 4420 6973 0a20 2020 2020 cket_FD is. │ │ │ │ │ +00008cd0: 2020 2020 206e 6577 2053 6f63 6b65 745f new Socket_ │ │ │ │ │ +00008ce0: 4644 2077 6974 6820 7072 6976 6174 653b FD with private; │ │ │ │ │ +00008cf0: 0a20 2020 2020 5468 6520 274d 756c 7469 . The 'Multi │ │ │ │ │ +00008d00: 6361 7374 5f53 6f63 6b65 745f 4644 2720 cast_Socket_FD' │ │ │ │ │ +00008d10: 7461 6767 6564 2074 7970 6520 6465 7269 tagged type deri │ │ │ │ │ +00008d20: 7665 7320 6672 6f6d 2074 6865 2027 536f ves from the 'So │ │ │ │ │ +00008d30: 636b 6574 5f46 4427 0a20 2020 2020 7479 cket_FD'. ty │ │ │ │ │ +00008d40: 7065 2e20 2049 7420 6765 7473 2069 6e69 pe. It gets ini │ │ │ │ │ +00008d50: 7469 616c 697a 6564 2062 7920 6361 6c6c tialized by call │ │ │ │ │ +00008d60: 696e 6720 2a6e 6f74 6520 4372 6561 7465 ing *note Create │ │ │ │ │ +00008d70: 5f4d 756c 7469 6361 7374 5f53 6f63 6b65 _Multicast_Socke │ │ │ │ │ +00008d80: 740a 2020 2020 2028 6675 6e63 7469 6f6e t. (function │ │ │ │ │ +00008d90: 293a 3a2e 2020 416e 2075 6e69 6e69 7469 )::. An uniniti │ │ │ │ │ +00008da0: 616c 697a 6564 2027 4d75 6c74 6963 6173 alized 'Multicas │ │ │ │ │ +00008db0: 745f 536f 636b 6574 5f46 4427 2063 616e t_Socket_FD' can │ │ │ │ │ +00008dc0: 2062 650a 2020 2020 2073 7563 6365 7366 be. succesf │ │ │ │ │ +00008dd0: 756c 6c79 2063 6f6d 7061 7265 6420 746f ully compared to │ │ │ │ │ +00008de0: 2027 4e75 6c6c 5f4d 756c 7469 6361 7374 'Null_Multicast │ │ │ │ │ +00008df0: 5f53 6f63 6b65 745f 4644 272e 0a0a 2a20 _Socket_FD'...* │ │ │ │ │ +00008e00: 4d65 6e75 3a0a 0a2a 2043 7265 6174 655f Menu:..* Create_ │ │ │ │ │ +00008e10: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ +00008e20: 2028 6675 6e63 7469 6f6e 293a 3a0a 2020 (function)::. │ │ │ │ │ +00008e30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00008e40: 2020 2020 2020 4372 6561 7465 2061 6e20 Create an │ │ │ │ │ +00008e50: 4950 206d 756c 7469 6361 7374 2073 6f63 IP multicast soc │ │ │ │ │ +00008e60: 6b65 740a 2a20 4372 6561 7465 5f4d 756c ket.* Create_Mul │ │ │ │ │ +00008e70: 7469 6361 7374 5f53 6f63 6b65 7420 2866 ticast_Socket (f │ │ │ │ │ +00008e80: 756e 6374 696f 6e29 3a3a 0a20 2020 2020 unction)::. │ │ │ │ │ +00008e90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00008ea0: 2020 2043 7265 6174 6520 616e 2049 5020 Create an IP │ │ │ │ │ +00008eb0: 6d75 6c74 6963 6173 7420 736f 636b 6574 multicast socket │ │ │ │ │ +00008ec0: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ +00008ed0: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ +00008ee0: 3a20 4372 6561 7465 5f4d 756c 7469 6361 : Create_Multica │ │ │ │ │ +00008ef0: 7374 5f53 6f63 6b65 7420 2866 756e 6374 st_Socket (funct │ │ │ │ │ +00008f00: 696f 6e29 2c20 204e 6578 743a 2043 7265 ion), Next: Cre │ │ │ │ │ +00008f10: 6174 655f 4d75 6c74 6963 6173 745f 536f ate_Multicast_So │ │ │ │ │ +00008f20: 636b 6574 2028 6675 6e63 7469 6f6e 292c cket (function), │ │ │ │ │ +00008f30: 2020 5072 6576 3a20 4372 6561 7465 5f4d Prev: Create_M │ │ │ │ │ +00008f40: 756c 7469 6361 7374 5f53 6f63 6b65 7420 ulticast_Socket │ │ │ │ │ +00008f50: 2866 756e 6374 696f 6e29 2c20 2055 703a (function), Up: │ │ │ │ │ +00008f60: 2053 6f63 6b65 7473 2e4d 756c 7469 6361 Sockets.Multica │ │ │ │ │ +00008f70: 7374 2070 6163 6b61 6765 0a0a 4372 6561 st package..Crea │ │ │ │ │ +00008f80: 7465 5f4d 756c 7469 6361 7374 5f53 6f63 te_Multicast_Soc │ │ │ │ │ +00008f90: 6b65 7420 2866 756e 6374 696f 6e29 0a3d ket (function).= │ │ │ │ │ +00008fa0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ │ +00008fb0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ │ +00008fc0: 3d0a 0a50 5552 504f 5345 0a20 2020 2020 =..PURPOSE. │ │ │ │ │ +00008fd0: 4372 6561 7465 2061 6e20 4950 206d 756c Create an IP mul │ │ │ │ │ +00008fe0: 7469 6361 7374 2073 6f63 6b65 740a 5052 ticast socket.PR │ │ │ │ │ +00008ff0: 4f54 4f54 5950 450a 2020 2020 2020 2d2d OTOTYPE. -- │ │ │ │ │ +00009000: 2053 6f63 6b65 7473 2e4d 756c 7469 6361 Sockets.Multica │ │ │ │ │ +00009010: 7374 2e43 7265 6174 655f 4d75 6c74 6963 st.Create_Multic │ │ │ │ │ +00009020: 6173 745f 536f 636b 6574 3a20 6675 6e63 ast_Socket: func │ │ │ │ │ +00009030: 7469 6f6e 0a20 2020 2020 2020 2020 2020 tion. │ │ │ │ │ +00009040: 2020 2020 4372 6561 7465 5f4d 756c 7469 Create_Multi │ │ │ │ │ +00009050: 6361 7374 5f53 6f63 6b65 7420 2847 524f cast_Socket (GRO │ │ │ │ │ +00009060: 5550 203a 2053 7472 696e 673b 2050 4f52 UP : String; POR │ │ │ │ │ +00009070: 5420 3a20 4e61 7475 7261 6c3b 0a20 2020 T : Natural;. │ │ │ │ │ +00009080: 2020 2020 2020 2020 2020 2020 5454 4c20 TTL │ │ │ │ │ +00009090: 3a20 506f 7369 7469 7665 203a 3d20 3136 : Positive := 16 │ │ │ │ │ +000090a0: 3b20 5345 4c46 5f4c 4f4f 5020 3a20 426f ; SELF_LOOP : Bo │ │ │ │ │ +000090b0: 6f6c 6561 6e20 3a3d 2054 7275 653b 0a20 olean := True;. │ │ │ │ │ +000090c0: 2020 2020 2020 2020 2020 2020 2020 4c4f LO │ │ │ │ │ +000090d0: 4341 4c5f 4946 203a 2053 7472 696e 6720 CAL_IF : String │ │ │ │ │ +000090e0: 3a3d 2030 2e30 2e30 2e30 290a 2020 2020 := 0.0.0.0). │ │ │ │ │ +000090f0: 2020 2020 2020 2020 2020 2072 6574 7572 retur │ │ │ │ │ +00009100: 6e20 4d75 6c74 6963 6173 745f 536f 636b n Multicast_Sock │ │ │ │ │ +00009110: 6574 5f46 443b 0a0a 5041 5241 4d45 5445 et_FD;..PARAMETE │ │ │ │ │ +00009120: 5253 0a20 2020 2020 4752 4f55 5020 2020 RS. GROUP │ │ │ │ │ +00009130: 2020 2069 6e20 2020 2020 2020 2020 4950 in IP │ │ │ │ │ +00009140: 2061 6464 7265 7373 206f 6620 7468 6520 address of the │ │ │ │ │ +00009150: 6d75 6c74 6963 6173 7420 6772 6f75 7020 multicast group │ │ │ │ │ +00009160: 746f 0a20 2020 2020 2020 2020 2020 2020 to. │ │ │ │ │ +00009170: 2020 2020 2020 2020 2020 2020 2020 6a6f jo │ │ │ │ │ +00009180: 696e 0a20 2020 2020 504f 5254 2020 2020 in. PORT │ │ │ │ │ +00009190: 2020 2069 6e20 2020 2020 2020 2020 506f in Po │ │ │ │ │ +000091a0: 7274 206f 6620 7468 6520 6d75 6c74 6963 rt of the multic │ │ │ │ │ +000091b0: 6173 7420 6772 6f75 7020 746f 206a 6f69 ast group to joi │ │ │ │ │ +000091c0: 6e0a 2020 2020 2054 544c 2020 2020 2020 n. TTL │ │ │ │ │ +000091d0: 2020 696e 2020 2020 2020 2020 2054 696d in Tim │ │ │ │ │ +000091e0: 652d 746f 2d6c 6976 6520 6f66 2073 656e e-to-live of sen │ │ │ │ │ +000091f0: 7420 7061 636b 6574 730a 2020 2020 2053 t packets. S │ │ │ │ │ +00009200: 454c 465f 4c4f 4f50 2020 696e 2020 2020 ELF_LOOP in │ │ │ │ │ +00009210: 2020 2020 2053 686f 756c 6420 7468 6520 Should the │ │ │ │ │ +00009220: 736f 636b 6574 2072 6563 6569 7665 2074 socket receive t │ │ │ │ │ +00009230: 6865 2070 6163 6b65 7473 0a20 2020 2020 he packets. │ │ │ │ │ +00009240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00009250: 2020 2020 2020 7365 6e74 2066 726f 6d20 sent from │ │ │ │ │ +00009260: 7468 6520 6c6f 6361 6c20 686f 7374 3f0a the local host?. │ │ │ │ │ +00009270: 2020 2020 204c 4f43 414c 5f49 4620 2020 LOCAL_IF │ │ │ │ │ +00009280: 696e 2020 2020 2020 2020 2041 6464 7265 in Addre │ │ │ │ │ +00009290: 7373 206f 6620 7468 6520 6c6f 6361 6c20 ss of the local │ │ │ │ │ +000092a0: 696e 7465 7266 6163 6520 746f 2075 7365 interface to use │ │ │ │ │ +000092b0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ +000092c0: 2020 2020 5468 6520 6e65 7720 696e 6974 The new init │ │ │ │ │ +000092d0: 6961 6c69 7a65 6420 6d75 6c74 6963 6173 ialized multicas │ │ │ │ │ +000092e0: 7420 736f 636b 6574 0a0a 4445 5343 5249 t socket..DESCRI │ │ │ │ │ +000092f0: 5054 494f 4e0a 2020 2020 2054 6869 7320 PTION. This │ │ │ │ │ +00009300: 6675 6e63 7469 6f6e 2063 7265 6174 6573 function creates │ │ │ │ │ +00009310: 2061 6e20 4950 206d 756c 7469 6361 7374 an IP multicast │ │ │ │ │ +00009320: 2073 6f63 6b65 7420 6174 7461 6368 6564 socket attached │ │ │ │ │ +00009330: 2074 6f20 6120 6769 7665 6e0a 2020 2020 to a given. │ │ │ │ │ +00009340: 2067 726f 7570 2c20 6964 656e 7469 6669 group, identifi │ │ │ │ │ +00009350: 6564 2062 7920 6974 7320 636c 6173 7320 ed by its class │ │ │ │ │ +00009360: 4520 4950 2061 6464 7265 7373 2061 6e64 E IP address and │ │ │ │ │ +00009370: 2070 6f72 742e 0a0a 2020 2020 2042 6520 port... Be │ │ │ │ │ +00009380: 6361 7265 6675 6c20 7768 656e 2063 686f careful when cho │ │ │ │ │ +00009390: 6f73 696e 6720 7468 6520 5454 4c20 7061 osing the TTL pa │ │ │ │ │ +000093a0: 7261 6d65 7465 7220 6f66 2079 6f75 7220 rameter of your │ │ │ │ │ +000093b0: 4950 206d 756c 7469 6361 7374 0a20 2020 IP multicast. │ │ │ │ │ +000093c0: 2020 736f 636b 6574 2e20 204d 6f73 7420 socket. Most │ │ │ │ │ +000093d0: 4950 206d 756c 7469 6361 7374 2072 6f75 IP multicast rou │ │ │ │ │ +000093e0: 7465 7273 2064 6f20 696d 706c 656d 656e ters do implemen │ │ │ │ │ +000093f0: 7420 7468 7265 7368 6f6c 642d 6261 7365 t threshold-base │ │ │ │ │ +00009400: 640a 2020 2020 2066 696c 7465 7269 6e67 d. filtering │ │ │ │ │ +00009410: 2061 6e64 2077 696c 6c20 6e6f 7420 6c65 and will not le │ │ │ │ │ +00009420: 7420 4950 206d 756c 7469 6361 7374 2070 t IP multicast p │ │ │ │ │ +00009430: 6163 6b65 7473 206c 6561 7665 2079 6f75 ackets leave you │ │ │ │ │ +00009440: 720a 2020 2020 206f 7267 616e 697a 6174 r. organizat │ │ │ │ │ +00009450: 696f 6e20 6966 2074 6865 2054 544c 206f ion if the TTL o │ │ │ │ │ +00009460: 6e20 7468 6520 6c61 7374 2072 6f75 7465 n the last route │ │ │ │ │ +00009470: 7220 6973 2073 6d61 6c6c 6572 2074 6861 r is smaller tha │ │ │ │ │ +00009480: 6e20 3136 2e0a 0a20 2020 2020 4966 2030 n 16... If 0 │ │ │ │ │ +00009490: 2069 7320 6769 7665 6e20 666f 7220 7468 is given for th │ │ │ │ │ +000094a0: 6520 506f 7274 2c20 6120 6c6f 6361 6c20 e Port, a local │ │ │ │ │ +000094b0: 6f6e 6520 7769 6c6c 2062 6520 6368 6f73 one will be chos │ │ │ │ │ +000094c0: 656e 2e20 2049 7420 6361 6e0a 2020 2020 en. It can. │ │ │ │ │ +000094d0: 2074 6865 6e20 6c61 7465 7220 6265 2072 then later be r │ │ │ │ │ +000094e0: 6574 7269 6576 6564 2075 7369 6e67 2047 etrieved using G │ │ │ │ │ +000094f0: 6574 5f53 6f63 6b5f 506f 7274 2e0a 0a45 et_Sock_Port...E │ │ │ │ │ +00009500: 5841 4d50 4c45 0a20 2020 2020 2020 2020 XAMPLE. │ │ │ │ │ +00009510: 2064 6563 6c61 7265 0a20 2020 2020 2020 declare. │ │ │ │ │ +00009520: 2020 2020 2020 536f 636b 2020 2020 203a Sock : │ │ │ │ │ +00009530: 2053 6f63 6b65 745f 4644 3b0a 2020 2020 Socket_FD;. │ │ │ │ │ +00009540: 2020 2020 2020 2020 2049 6e63 6f6d 696e Incomin │ │ │ │ │ +00009550: 6720 3a20 536f 636b 6574 5f46 443b 0a20 g : Socket_FD;. │ │ │ │ │ +00009560: 2020 2020 2020 2020 2062 6567 696e 0a20 begin. │ │ │ │ │ +00009570: 2020 2020 2020 2020 2020 2020 2d2d 2043 -- C │ │ │ │ │ +00009580: 7265 6174 6520 6120 5443 5020 736f 636b reate a TCP sock │ │ │ │ │ +00009590: 6574 206c 6973 7465 6e69 6e67 206f 6e20 et listening on │ │ │ │ │ +000095a0: 6c6f 6361 6c20 706f 7274 2034 3136 310a local port 4161. │ │ │ │ │ +000095b0: 2020 2020 2020 2020 2020 2020 2053 6f63 Soc │ │ │ │ │ +000095c0: 6b65 7420 2853 6f63 6b2c 2050 465f 494e ket (Sock, PF_IN │ │ │ │ │ +000095d0: 4554 2c20 534f 434b 5f53 5452 4541 4d29 ET, SOCK_STREAM) │ │ │ │ │ +000095e0: 3b0a 2020 2020 2020 2020 2020 2020 2042 ;. B │ │ │ │ │ +000095f0: 696e 6420 2853 6f63 6b2c 2034 3136 3129 ind (Sock, 4161) │ │ │ │ │ +00009600: 3b0a 2020 2020 2020 2020 2020 2020 204c ;. L │ │ │ │ │ +00009610: 6973 7465 6e20 2853 6f63 6b2c 2033 293b isten (Sock, 3); │ │ │ │ │ +00009620: 0a20 2020 2020 2020 2020 2020 2020 2d2d . -- │ │ │ │ │ +00009630: 204f 6e65 2d63 6f6e 6e65 6374 696f 6e2d One-connection- │ │ │ │ │ +00009640: 6174 2d61 2d74 696d 6520 7365 7276 6572 at-a-time server │ │ │ │ │ +00009650: 2028 3320 6d61 7920 6265 2070 656e 6469 (3 may be pendi │ │ │ │ │ +00009660: 6e67 290a 2020 2020 2020 2020 2020 2020 ng). │ │ │ │ │ +00009670: 206c 6f6f 700a 2020 2020 2020 2020 2020 loop. │ │ │ │ │ +00009680: 2020 2020 2020 2d2d 2057 6169 7420 666f -- Wait fo │ │ │ │ │ +00009690: 7220 6120 6e65 7720 636f 6e6e 6563 7469 r a new connecti │ │ │ │ │ +000096a0: 6f6e 2061 6e64 2061 6363 6570 7420 6974 on and accept it │ │ │ │ │ +000096b0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +000096c0: 2041 6363 6570 745f 536f 636b 6574 2028 Accept_Socket ( │ │ │ │ │ +000096d0: 536f 636b 2c20 496e 636f 6d69 6e67 293b Sock, Incoming); │ │ │ │ │ +000096e0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +000096f0: 202d 2d20 446f 2073 6f6d 6520 6469 616c -- Do some dial │ │ │ │ │ +00009700: 6f67 2077 6974 6820 7468 6520 7265 6d6f og with the remo │ │ │ │ │ +00009710: 7465 2068 6f73 740a 2020 2020 2020 2020 te host. │ │ │ │ │ +00009720: 2020 2020 2020 2020 446f 5f53 6f6d 655f Do_Some_ │ │ │ │ │ +00009730: 4469 616c 6f67 2028 496e 636f 6d69 6e67 Dialog (Incoming │ │ │ │ │ +00009740: 293b 0a20 2020 2020 2020 2020 2020 2020 );. │ │ │ │ │ +00009750: 2020 202d 2d20 436c 6f73 6520 696e 636f -- Close inco │ │ │ │ │ +00009760: 6d69 6e67 2073 6f63 6b65 7420 616e 6420 ming socket and │ │ │ │ │ +00009770: 7761 6974 2066 6f72 206e 6578 7420 636f wait for next co │ │ │ │ │ +00009780: 6e6e 6563 7469 6f6e 0a20 2020 2020 2020 nnection. │ │ │ │ │ +00009790: 2020 2020 2020 2020 2053 6875 7464 6f77 Shutdow │ │ │ │ │ +000097a0: 6e20 2849 6e63 6f6d 696e 6729 3b0a 2020 n (Incoming);. │ │ │ │ │ +000097b0: 2020 2020 2020 2020 2020 2065 6e64 206c end l │ │ │ │ │ +000097c0: 6f6f 703b 0a20 2020 2020 2020 2020 2065 oop;. e │ │ │ │ │ +000097d0: 6e64 3b0a 0a53 4545 2041 4c53 4f0a 2020 nd;..SEE ALSO. │ │ │ │ │ +000097e0: 2020 202a 6e6f 7465 2053 656e 6420 2870 *note Send (p │ │ │ │ │ +000097f0: 726f 6365 6475 7265 293a 3a2c 0a20 2020 rocedure)::,. │ │ │ │ │ +00009800: 2020 2a6e 6f74 6520 5368 7574 646f 776e *note Shutdown │ │ │ │ │ +00009810: 2028 7072 6f63 6564 7572 6529 3a3a 2e0a (procedure)::.. │ │ │ │ │ +00009820: 0a2a 204d 656e 753a 0a0a 2a20 3a3a 0a0a .* Menu:..* ::.. │ │ │ │ │ +00009830: 4372 6561 7465 5f4d 756c 7469 6361 7374 Create_Multicast │ │ │ │ │ +00009840: 5f53 6f63 6b65 7420 2866 756e 6374 696f _Socket (functio │ │ │ │ │ +00009850: 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d n).------------- │ │ │ │ │ +00009860: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00009870: 2d2d 2d2d 2d0a 0a50 5552 504f 5345 0a20 -----..PURPOSE. │ │ │ │ │ +00009880: 2020 2020 4372 6561 7465 2061 6e20 4950 Create an IP │ │ │ │ │ +00009890: 206d 756c 7469 6361 7374 2073 6f63 6b65 multicast socke │ │ │ │ │ +000098a0: 740a 5052 4f54 4f54 5950 450a 2020 2020 t.PROTOTYPE. │ │ │ │ │ +000098b0: 2020 2d2d 2053 6f63 6b65 7473 2e4d 756c -- Sockets.Mul │ │ │ │ │ +000098c0: 7469 6361 7374 2e43 7265 6174 655f 4d75 ticast.Create_Mu │ │ │ │ │ +000098d0: 6c74 6963 6173 745f 536f 636b 6574 3a20 lticast_Socket: │ │ │ │ │ +000098e0: 6675 6e63 7469 6f6e 0a20 2020 2020 2020 function. │ │ │ │ │ +000098f0: 2020 2020 2020 2020 4372 6561 7465 5f4d Create_M │ │ │ │ │ +00009900: 756c 7469 6361 7374 5f53 6f63 6b65 7420 ulticast_Socket │ │ │ │ │ +00009910: 2847 524f 5550 203a 2053 7472 696e 673b (GROUP : String; │ │ │ │ │ +00009920: 2050 4f52 5420 3a20 506f 7369 7469 7665 PORT : Positive │ │ │ │ │ +00009930: 3b0a 2020 2020 2020 2020 2020 2020 2020 ;. │ │ │ │ │ +00009940: 204c 4f43 414c 5f50 4f52 5420 3a20 4e61 LOCAL_PORT : Na │ │ │ │ │ +00009950: 7475 7261 6c3b 2054 544c 203a 2050 6f73 tural; TTL : Pos │ │ │ │ │ +00009960: 6974 6976 6520 3a3d 2031 363b 0a20 2020 itive := 16;. │ │ │ │ │ +00009970: 2020 2020 2020 2020 2020 2020 4c4f 4341 LOCA │ │ │ │ │ +00009980: 4c5f 4946 203a 2053 7472 696e 6720 3a3d L_IF : String := │ │ │ │ │ +00009990: 2030 2e30 2e30 2e30 290a 2020 2020 2020 0.0.0.0). │ │ │ │ │ +000099a0: 2020 2020 2020 2020 2072 6574 7572 6e20 return │ │ │ │ │ +000099b0: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ +000099c0: 5f46 443b 0a0a 5041 5241 4d45 5445 5253 _FD;..PARAMETERS │ │ │ │ │ +000099d0: 0a20 2020 2020 4752 4f55 5020 2020 2020 . GROUP │ │ │ │ │ +000099e0: 2069 6e20 2020 2020 2020 2020 4950 2061 in IP a │ │ │ │ │ +000099f0: 6464 7265 7373 206f 6620 7468 6520 6d75 ddress of the mu │ │ │ │ │ +00009a00: 6c74 6963 6173 7420 6772 6f75 7020 746f lticast group to │ │ │ │ │ +00009a10: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00009a20: 2020 2020 2020 2020 2020 2020 6a6f 696e join │ │ │ │ │ +00009a30: 0a20 2020 2020 504f 5254 2020 2020 2020 . PORT │ │ │ │ │ +00009a40: 2069 6e20 2020 2020 2020 2020 506f 7274 in Port │ │ │ │ │ +00009a50: 206f 6620 7468 6520 6d75 6c74 6963 6173 of the multicas │ │ │ │ │ +00009a60: 7420 6772 6f75 7020 746f 206a 6f69 6e0a t group to join. │ │ │ │ │ +00009a70: 2020 2020 204c 4f43 414c 5f50 4f52 5420 LOCAL_PORT │ │ │ │ │ +00009a80: 696e 2020 2020 2020 2020 204c 6f63 616c in Local │ │ │ │ │ +00009a90: 2070 6f72 7420 6e75 6d62 6572 2074 6f20 port number to │ │ │ │ │ +00009aa0: 7573 650a 2020 2020 2054 544c 2020 2020 use. TTL │ │ │ │ │ +00009ab0: 2020 2020 696e 2020 2020 2020 2020 2054 in T │ │ │ │ │ +00009ac0: 696d 652d 746f 2d6c 6976 6520 6f66 2073 ime-to-live of s │ │ │ │ │ +00009ad0: 656e 7420 7061 636b 6574 730a 2020 2020 ent packets. │ │ │ │ │ +00009ae0: 204c 4f43 414c 5f49 4620 2020 696e 2020 LOCAL_IF in │ │ │ │ │ +00009af0: 2020 2020 2020 2041 6464 7265 7373 206f Address o │ │ │ │ │ +00009b00: 6620 7468 6520 6c6f 6361 6c20 696e 7465 f the local inte │ │ │ │ │ +00009b10: 7266 6163 6520 746f 2075 7365 0a0a 5245 rface to use..RE │ │ │ │ │ +00009b20: 5455 524e 2056 414c 5545 0a20 2020 2020 TURN VALUE. │ │ │ │ │ +00009b30: 5468 6520 6e65 7720 696e 6974 6961 6c69 The new initiali │ │ │ │ │ +00009b40: 7a65 6420 6d75 6c74 6963 6173 7420 736f zed multicast so │ │ │ │ │ +00009b50: 636b 6574 0a0a 4445 5343 5249 5054 494f cket..DESCRIPTIO │ │ │ │ │ +00009b60: 4e0a 2020 2020 2054 6869 7320 6675 6e63 N. This func │ │ │ │ │ +00009b70: 7469 6f6e 2063 7265 6174 6573 2061 6e20 tion creates an │ │ │ │ │ +00009b80: 4950 206d 756c 7469 6361 7374 2073 6f63 IP multicast soc │ │ │ │ │ +00009b90: 6b65 7420 6174 7461 6368 6564 2074 6f20 ket attached to │ │ │ │ │ +00009ba0: 6120 6769 7665 6e0a 2020 2020 2067 726f a given. gro │ │ │ │ │ +00009bb0: 7570 2c20 6964 656e 7469 6669 6564 2062 up, identified b │ │ │ │ │ +00009bc0: 7920 6974 7320 636c 6173 7320 4520 4950 y its class E IP │ │ │ │ │ +00009bd0: 2061 6464 7265 7373 2061 6e64 2070 6f72 address and por │ │ │ │ │ +00009be0: 742e 2020 4966 0a20 2020 2020 4c6f 6361 t. If. Loca │ │ │ │ │ +00009bf0: 6c5f 506f 7274 2069 7320 302c 2061 2066 l_Port is 0, a f │ │ │ │ │ +00009c00: 7265 6520 706f 7274 2077 696c 6c20 6175 ree port will au │ │ │ │ │ +00009c10: 746f 6d61 7469 6361 6c6c 7920 6265 2063 tomatically be c │ │ │ │ │ +00009c20: 686f 7365 6e20 6279 2079 6f75 720a 2020 hosen by your. │ │ │ │ │ +00009c30: 2020 206f 7065 7261 7469 6e67 2073 7973 operating sys │ │ │ │ │ +00009c40: 7465 6d2e 0a0a 2020 2020 2054 6869 7320 tem... This │ │ │ │ │ +00009c50: 6675 6e63 7469 6f6e 2073 686f 756c 6420 function should │ │ │ │ │ +00009c60: 6265 2075 7365 6420 7768 656e 2079 6f75 be used when you │ │ │ │ │ +00009c70: 2077 616e 7420 746f 2073 656e 6420 7061 want to send pa │ │ │ │ │ +00009c80: 636b 6574 7320 746f 2061 0a20 2020 2020 ckets to a. │ │ │ │ │ +00009c90: 6d75 6c74 6963 6173 7420 6772 6f75 7020 multicast group │ │ │ │ │ +00009ca0: 7769 7468 6f75 7420 7265 6365 6976 696e without receivin │ │ │ │ │ +00009cb0: 6720 616e 7920 7061 636b 6574 2079 6f75 g any packet you │ │ │ │ │ +00009cc0: 7273 656c 662e 0a0a 4558 414d 504c 450a rself...EXAMPLE. │ │ │ │ │ +00009cd0: 2020 2020 2020 2020 2020 6465 636c 6172 declar │ │ │ │ │ +00009ce0: 650a 2020 2020 2020 2020 2020 2020 2053 e. S │ │ │ │ │ +00009cf0: 6f63 6b20 3a20 536f 636b 6574 5f46 443b ock : Socket_FD; │ │ │ │ │ +00009d00: 0a20 2020 2020 2020 2020 2062 6567 696e . begin │ │ │ │ │ +00009d10: 0a20 2020 2020 2020 2020 2020 2020 2d2d . -- │ │ │ │ │ +00009d20: 2043 7265 6174 6520 6120 5443 5020 736f Create a TCP so │ │ │ │ │ +00009d30: 636b 6574 0a20 2020 2020 2020 2020 2020 cket. │ │ │ │ │ +00009d40: 2020 536f 636b 6574 2028 536f 636b 2c20 Socket (Sock, │ │ │ │ │ +00009d50: 5046 5f49 4e45 542c 2053 4f43 4b5f 5354 PF_INET, SOCK_ST │ │ │ │ │ +00009d60: 5245 414d 293b 0a20 2020 2020 2020 2020 REAM);. │ │ │ │ │ +00009d70: 2020 2020 2d2d 2043 6f6e 6e65 6374 2069 -- Connect i │ │ │ │ │ +00009d80: 7420 746f 2072 6663 3131 3439 2e6e 6574 t to rfc1149.net │ │ │ │ │ +00009d90: 2773 206d 6169 6c20 7365 7276 6572 0a20 's mail server. │ │ │ │ │ +00009da0: 2020 2020 2020 2020 2020 2020 436f 6e6e Conn │ │ │ │ │ +00009db0: 6563 7420 2853 6f63 6b2c 2022 6d61 696c ect (Sock, "mail │ │ │ │ │ +00009dc0: 2e72 6663 3131 3439 2e6e 6574 222c 2032 .rfc1149.net", 2 │ │ │ │ │ +00009dd0: 3529 3b0a 2020 2020 2020 2020 2020 2020 5);. │ │ │ │ │ +00009de0: 202d 2d20 446f 2061 206d 6169 6c20 7472 -- Do a mail tr │ │ │ │ │ +00009df0: 616e 7361 6374 696f 6e20 7468 656e 2063 ansaction then c │ │ │ │ │ +00009e00: 6c6f 7365 2074 6865 2073 6f63 6b65 740a lose the socket. │ │ │ │ │ +00009e10: 2020 2020 2020 2020 2020 2020 205b 2e2e [.. │ │ │ │ │ +00009e20: 2e5d 0a20 2020 2020 2020 2020 2065 6e64 .]. end │ │ │ │ │ +00009e30: 3b0a 0a53 4545 2041 4c53 4f0a 2020 2020 ;..SEE ALSO. │ │ │ │ │ +00009e40: 202a 6e6f 7465 2053 656e 6420 2870 726f *note Send (pro │ │ │ │ │ +00009e50: 6365 6475 7265 293a 3a2c 0a20 2020 2020 cedure)::,. │ │ │ │ │ +00009e60: 2a6e 6f74 6520 5368 7574 646f 776e 2028 *note Shutdown ( │ │ │ │ │ +00009e70: 7072 6f63 6564 7572 6529 3a3a 2e0a 0a1f procedure)::.... │ │ │ │ │ +00009e80: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ +00009e90: 732e 696e 666f 2c20 204e 6f64 653a 2053 s.info, Node: S │ │ │ │ │ +00009ea0: 6f63 6b65 7473 2e4e 616d 696e 6720 7061 ockets.Naming pa │ │ │ │ │ +00009eb0: 636b 6167 652c 2020 4e65 7874 3a20 436f ckage, Next: Co │ │ │ │ │ +00009ec0: 6e74 7269 6275 746f 7273 2c20 2050 7265 ntributors, Pre │ │ │ │ │ +00009ed0: 763a 2053 6f63 6b65 7473 2e4d 756c 7469 v: Sockets.Multi │ │ │ │ │ +00009ee0: 6361 7374 2070 6163 6b61 6765 2c20 2055 cast package, U │ │ │ │ │ +00009ef0: 703a 2054 6f70 0a0a 3620 536f 636b 6574 p: Top..6 Socket │ │ │ │ │ +00009f00: 732e 4e61 6d69 6e67 2070 6163 6b61 6765 s.Naming package │ │ │ │ │ +00009f10: 0a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a .*************** │ │ │ │ │ +00009f20: 2a2a 2a2a 2a2a 2a2a 2a0a 0a54 6865 2027 *********..The ' │ │ │ │ │ +00009f30: 536f 636b 6574 732e 4e61 6d69 6e67 2720 Sockets.Naming' │ │ │ │ │ +00009f40: 7061 636b 6167 6520 636f 6e74 6169 6e73 package contains │ │ │ │ │ +00009f50: 2074 7970 6573 2061 6e64 2068 656c 7065 types and helpe │ │ │ │ │ +00009f60: 7220 6675 6e63 7469 6f6e 7320 6e65 6564 r functions need │ │ │ │ │ +00009f70: 6564 0a74 6f20 6d61 6e69 7075 6c61 7465 ed.to manipulate │ │ │ │ │ +00009f80: 2049 6e74 6572 6e65 7420 686f 7374 206e Internet host n │ │ │ │ │ +00009f90: 616d 6573 2061 6e64 2061 6464 7265 7373 ames and address │ │ │ │ │ +00009fa0: 6573 2e0a 0a20 2d2d 2053 6f63 6b65 7473 es... -- Sockets │ │ │ │ │ +00009fb0: 2e4e 616d 696e 672e 4164 6472 6573 733a .Naming.Address: │ │ │ │ │ +00009fc0: 2074 7970 6520 4164 6472 6573 7320 6973 type Address is │ │ │ │ │ +00009fd0: 2072 6563 6f72 640a 2020 2020 2020 2020 record. │ │ │ │ │ +00009fe0: 2020 2020 4831 2c20 4832 2c20 4833 2c20 H1, H2, H3, │ │ │ │ │ +00009ff0: 4834 203a 2041 6464 7265 7373 5f43 6f6d H4 : Address_Com │ │ │ │ │ +0000a000: 706f 6e65 6e74 3b0a 2020 2020 2020 2020 ponent;. │ │ │ │ │ +0000a010: 2020 656e 6420 7265 636f 7264 3b0a 2020 end record;. │ │ │ │ │ +0000a020: 2020 2054 6869 7320 7479 7065 2072 6570 This type rep │ │ │ │ │ +0000a030: 7265 7365 6e74 7320 616e 2049 5076 3420 resents an IPv4 │ │ │ │ │ +0000a040: 6164 6472 6573 7320 7769 7468 2027 4831 address with 'H1 │ │ │ │ │ +0000a050: 2720 6265 696e 6720 7468 6520 6669 7273 ' being the firs │ │ │ │ │ +0000a060: 740a 2020 2020 206f 6374 6574 2061 6e64 t. octet and │ │ │ │ │ +0000a070: 2027 4834 2720 7468 6520 6c61 7374 206f 'H4' the last o │ │ │ │ │ +0000a080: 6e65 2e20 2046 6f72 2065 7861 6d70 6c65 ne. For example │ │ │ │ │ +0000a090: 2c20 3133 372e 3139 342e 3136 312e 3220 , 137.194.161.2 │ │ │ │ │ +0000a0a0: 6973 0a20 2020 2020 7265 7072 6573 656e is. represen │ │ │ │ │ +0000a0b0: 7465 6420 6279 2027 4831 3d31 3337 2c20 ted by 'H1=137, │ │ │ │ │ +0000a0c0: 4832 3d31 3934 2c20 4833 3d31 3631 2c20 H2=194, H3=161, │ │ │ │ │ +0000a0d0: 4834 3d32 272e 0a0a 202d 2d20 536f 636b H4=2'... -- Sock │ │ │ │ │ +0000a0e0: 6574 732e 4e61 6d69 6e67 2e41 6464 7265 ets.Naming.Addre │ │ │ │ │ +0000a0f0: 7373 5f41 7272 6179 3a20 7479 7065 2041 ss_Array: type A │ │ │ │ │ +0000a100: 6464 7265 7373 5f41 7272 6179 2069 7320 ddress_Array is │ │ │ │ │ +0000a110: 6172 7261 7920 2850 6f73 6974 6976 650a array (Positive. │ │ │ │ │ +0000a120: 2020 2020 2020 2020 2020 7261 6e67 6520 range │ │ │ │ │ +0000a130: 3c3e 2920 6f66 2041 6464 7265 7373 3b0a <>) of Address;. │ │ │ │ │ +0000a140: 2020 2020 2048 656c 7065 7220 7479 7065 Helper type │ │ │ │ │ +0000a150: 0a0a 202d 2d20 536f 636b 6574 732e 4e61 .. -- Sockets.Na │ │ │ │ │ +0000a160: 6d69 6e67 2e41 6464 7265 7373 5f43 6f6d ming.Address_Com │ │ │ │ │ +0000a170: 706f 6e65 6e74 3a20 7479 7065 2041 6464 ponent: type Add │ │ │ │ │ +0000a180: 7265 7373 5f43 6f6d 706f 6e65 6e74 2069 ress_Component i │ │ │ │ │ +0000a190: 7320 4e61 7475 7261 6c0a 2020 2020 2020 s Natural. │ │ │ │ │ +0000a1a0: 2020 2020 7261 6e67 6520 3020 2e2e 2032 range 0 .. 2 │ │ │ │ │ +0000a1b0: 3535 3b0a 2020 2020 2048 656c 7065 7220 55;. Helper │ │ │ │ │ +0000a1c0: 7479 7065 0a0a 202d 2d20 536f 636b 6574 type.. -- Socket │ │ │ │ │ +0000a1d0: 732e 4e61 6d69 6e67 2e48 6f73 745f 456e s.Naming.Host_En │ │ │ │ │ +0000a1e0: 7472 793a 2074 7970 6520 486f 7374 5f45 try: type Host_E │ │ │ │ │ +0000a1f0: 6e74 7279 2028 4e5f 416c 6961 7365 732c ntry (N_Aliases, │ │ │ │ │ +0000a200: 204e 5f41 6464 7265 7373 6573 203a 0a20 N_Addresses :. │ │ │ │ │ +0000a210: 2020 2020 2020 2020 204e 6174 7572 616c Natural │ │ │ │ │ +0000a220: 2920 6973 206e 6577 2041 6461 2e46 696e ) is new Ada.Fin │ │ │ │ │ +0000a230: 616c 697a 6174 696f 6e2e 436f 6e74 726f alization.Contro │ │ │ │ │ +0000a240: 6c6c 6564 2077 6974 6820 7265 636f 7264 lled with record │ │ │ │ │ +0000a250: 0a20 2020 2020 2020 2020 2020 2020 4e61 . Na │ │ │ │ │ +0000a260: 6d65 203a 2053 7472 696e 675f 4163 6365 me : String_Acce │ │ │ │ │ +0000a270: 7373 3b0a 2020 2020 2020 2020 2020 2020 ss;. │ │ │ │ │ +0000a280: 2041 6c69 6173 6573 203a 2053 7472 696e Aliases : Strin │ │ │ │ │ +0000a290: 675f 4172 7261 7920 2831 202e 2e20 4e5f g_Array (1 .. N_ │ │ │ │ │ +0000a2a0: 416c 6961 7365 7329 3b0a 2020 2020 2020 Aliases);. │ │ │ │ │ +0000a2b0: 2020 2020 2020 2041 6464 7265 7373 6573 Addresses │ │ │ │ │ +0000a2c0: 203a 2041 6464 7265 7373 5f41 7272 6179 : Address_Array │ │ │ │ │ +0000a2d0: 2028 3120 2e2e 204e 5f41 6464 7265 7373 (1 .. N_Address │ │ │ │ │ +0000a2e0: 6573 293b 0a20 2020 2020 2020 2020 2065 es);. e │ │ │ │ │ +0000a2f0: 6e64 2072 6563 6f72 643b 0a20 2020 2020 nd record;. │ │ │ │ │ +0000a300: 5468 6520 2748 6f73 745f 456e 7472 7927 The 'Host_Entry' │ │ │ │ │ +0000a310: 2074 7970 6520 686f 6c64 7320 6120 7365 type holds a se │ │ │ │ │ +0000a320: 7420 6f66 206e 616d 6573 2061 6e64 2049 t of names and I │ │ │ │ │ +0000a330: 5020 6164 6472 6573 7365 730a 2020 2020 P addresses. │ │ │ │ │ +0000a340: 2061 7373 6f63 6961 7465 6420 7769 7468 associated with │ │ │ │ │ +0000a350: 2061 2068 6f73 742e 2020 4561 6368 2068 a host. Each h │ │ │ │ │ +0000a360: 6f73 7420 6361 6e20 6861 7665 2073 6576 ost can have sev │ │ │ │ │ +0000a370: 6572 616c 2049 5020 6164 6472 6573 7320 eral IP address │ │ │ │ │ +0000a380: 6173 0a20 2020 2020 7765 6c6c 2061 7320 as. well as │ │ │ │ │ +0000a390: 7365 7665 7261 6c20 616c 6961 7365 732e several aliases. │ │ │ │ │ +0000a3a0: 0a0a 202d 2d20 536f 636b 6574 732e 4e61 .. -- Sockets.Na │ │ │ │ │ +0000a3b0: 6d69 6e67 2e53 7472 696e 675f 4163 6365 ming.String_Acce │ │ │ │ │ +0000a3c0: 7373 3a20 7479 7065 2053 7472 696e 675f ss: type String_ │ │ │ │ │ +0000a3d0: 4163 6365 7373 2069 7320 6163 6365 7373 Access is access │ │ │ │ │ +0000a3e0: 2053 7472 696e 673b 0a20 2020 2020 4865 String;. He │ │ │ │ │ +0000a3f0: 6c70 6572 2074 7970 650a 0a20 2d2d 2053 lper type.. -- S │ │ │ │ │ +0000a400: 6f63 6b65 7473 2e4e 616d 696e 672e 5374 ockets.Naming.St │ │ │ │ │ +0000a410: 7269 6e67 5f41 7272 6179 3a20 7479 7065 ring_Array: type │ │ │ │ │ +0000a420: 2053 7472 696e 675f 4172 7261 7920 6973 String_Array is │ │ │ │ │ +0000a430: 2061 7272 6179 2028 506f 7369 7469 7665 array (Positive │ │ │ │ │ +0000a440: 0a20 2020 2020 2020 2020 2072 616e 6765 . range │ │ │ │ │ +0000a450: 203c 3e29 206f 6620 5374 7269 6e67 5f41 <>) of String_A │ │ │ │ │ +0000a460: 6363 6573 733b 0a20 2020 2020 4865 6c70 ccess;. Help │ │ │ │ │ +0000a470: 6572 2074 7970 650a 0a2a 204d 656e 753a er type..* Menu: │ │ │ │ │ +0000a480: 0a0a 2a20 4164 6472 6573 735f 4f66 2028 ..* Address_Of ( │ │ │ │ │ +0000a490: 6675 6e63 7469 6f6e 293a 3a0a 2020 2020 function)::. │ │ │ │ │ +0000a4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a4b0: 2020 2020 4765 7420 7468 6520 4950 2061 Get the IP a │ │ │ │ │ +0000a4c0: 6464 7265 7373 206f 6620 6120 686f 7374 ddress of a host │ │ │ │ │ +0000a4d0: 0a2a 2041 6e79 5f41 6464 7265 7373 2028 .* Any_Address ( │ │ │ │ │ +0000a4e0: 6675 6e63 7469 6f6e 293a 3a0a 2020 2020 function)::. │ │ │ │ │ +0000a4f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a500: 2020 2020 5370 6563 6961 6c20 6164 6472 Special addr │ │ │ │ │ +0000a510: 6573 7320 7265 7072 6573 656e 7469 6e67 ess representing │ │ │ │ │ +0000a520: 2061 6e79 2061 6464 7265 7373 206f 6e20 any address on │ │ │ │ │ +0000a530: 7468 6520 6c6f 6361 6c20 686f 7374 0a2a the local host.* │ │ │ │ │ +0000a540: 2047 6574 5f50 6565 725f 4164 6472 2028 Get_Peer_Addr ( │ │ │ │ │ +0000a550: 6675 6e63 7469 6f6e 293a 3a0a 2020 2020 function)::. │ │ │ │ │ +0000a560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a570: 2020 2020 5265 7472 6965 7665 2049 5020 Retrieve IP │ │ │ │ │ +0000a580: 6164 6472 6573 7320 6f66 2072 656d 6f74 address of remot │ │ │ │ │ +0000a590: 6520 686f 7374 0a2a 2047 6574 5f50 6565 e host.* Get_Pee │ │ │ │ │ +0000a5a0: 725f 506f 7274 2028 6675 6e63 7469 6f6e r_Port (function │ │ │ │ │ +0000a5b0: 293a 3a0a 2020 2020 2020 2020 2020 2020 )::. │ │ │ │ │ +0000a5c0: 2020 2020 2020 2020 2020 2020 5265 7472 Retr │ │ │ │ │ +0000a5d0: 6965 7665 2070 6f72 7420 7573 6564 2062 ieve port used b │ │ │ │ │ +0000a5e0: 7920 7265 6d6f 7465 2068 6f73 740a 2a20 y remote host.* │ │ │ │ │ +0000a5f0: 4765 745f 536f 636b 5f41 6464 7220 2866 Get_Sock_Addr (f │ │ │ │ │ +0000a600: 756e 6374 696f 6e29 3a3a 0a20 2020 2020 unction)::. │ │ │ │ │ +0000a610: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a620: 2020 2052 6574 7269 6576 6520 4950 2061 Retrieve IP a │ │ │ │ │ +0000a630: 6464 7265 7373 206f 6620 6c6f 6361 6c20 ddress of local │ │ │ │ │ +0000a640: 686f 7374 0a2a 2047 6574 5f53 6f63 6b5f host.* Get_Sock_ │ │ │ │ │ +0000a650: 506f 7274 2028 6675 6e63 7469 6f6e 293a Port (function): │ │ │ │ │ +0000a660: 3a0a 2020 2020 2020 2020 2020 2020 2020 :. │ │ │ │ │ +0000a670: 2020 2020 2020 2020 2020 5265 7472 6965 Retrie │ │ │ │ │ +0000a680: 7665 2070 6f72 7420 7573 6564 2062 7920 ve port used by │ │ │ │ │ +0000a690: 6c6f 6361 6c20 686f 7374 0a2a 2048 6f73 local host.* Hos │ │ │ │ │ +0000a6a0: 745f 4e61 6d65 2028 6675 6e63 7469 6f6e t_Name (function │ │ │ │ │ +0000a6b0: 293a 3a0a 2020 2020 2020 2020 2020 2020 )::. │ │ │ │ │ +0000a6c0: 2020 2020 2020 2020 2020 2020 4765 7420 Get │ │ │ │ │ +0000a6d0: 7468 6520 6e61 6d65 206f 6620 7468 6520 the name of the │ │ │ │ │ +0000a6e0: 6375 7272 656e 7420 686f 7374 0a2a 2049 current host.* I │ │ │ │ │ +0000a6f0: 6d61 6765 2028 6675 6e63 7469 6f6e 293a mage (function): │ │ │ │ │ +0000a700: 3a20 2020 204d 616b 6520 6120 7374 7269 : Make a stri │ │ │ │ │ +0000a710: 6e67 2066 726f 6d20 616e 2061 6464 7265 ng from an addre │ │ │ │ │ +0000a720: 7373 0a2a 2049 6e66 6f5f 4f66 5f4e 616d ss.* Info_Of_Nam │ │ │ │ │ +0000a730: 655f 4f72 5f49 5020 2866 756e 6374 696f e_Or_IP (functio │ │ │ │ │ +0000a740: 6e29 3a3a 0a20 2020 2020 2020 2020 2020 n)::. │ │ │ │ │ +0000a750: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000a760: 2061 6464 7265 7373 6573 2061 6e64 206e addresses and n │ │ │ │ │ +0000a770: 616d 6573 206f 6620 6120 686f 7374 0a2a ames of a host.* │ │ │ │ │ +0000a780: 2049 735f 4950 5f41 6464 7265 7373 2028 Is_IP_Address ( │ │ │ │ │ +0000a790: 6675 6e63 7469 6f6e 293a 3a0a 2020 2020 function)::. │ │ │ │ │ +0000a7a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a7b0: 2020 2020 4368 6563 6b20 6966 2067 6976 Check if giv │ │ │ │ │ +0000a7c0: 656e 2073 7472 696e 6720 6973 2061 2076 en string is a v │ │ │ │ │ +0000a7d0: 616c 6964 2049 5020 6164 6472 6573 730a alid IP address. │ │ │ │ │ +0000a7e0: 2a20 4e61 6d65 5f4f 6620 2866 756e 6374 * Name_Of (funct │ │ │ │ │ +0000a7f0: 696f 6e29 3a3a 2020 4f66 6669 6369 616c ion):: Official │ │ │ │ │ +0000a800: 206e 616d 6520 6f66 2074 6865 2068 6f73 name of the hos │ │ │ │ │ +0000a810: 740a 2a20 5661 6c75 6520 2866 756e 6374 t.* Value (funct │ │ │ │ │ +0000a820: 696f 6e29 3a3a 2020 2020 5472 616e 7366 ion):: Transf │ │ │ │ │ +0000a830: 6f72 6d20 6120 7374 7269 6e67 2069 6e74 orm a string int │ │ │ │ │ +0000a840: 6f20 616e 2061 6464 7265 7373 0a0a 1f0a o an address.... │ │ │ │ │ +0000a850: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ +0000a860: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 4164 .info, Node: Ad │ │ │ │ │ +0000a870: 6472 6573 735f 4f66 2028 6675 6e63 7469 dress_Of (functi │ │ │ │ │ +0000a880: 6f6e 292c 2020 4e65 7874 3a20 416e 795f on), Next: Any_ │ │ │ │ │ +0000a890: 4164 6472 6573 7320 2866 756e 6374 696f Address (functio │ │ │ │ │ +0000a8a0: 6e29 2c20 2055 703a 2053 6f63 6b65 7473 n), Up: Sockets │ │ │ │ │ +0000a8b0: 2e4e 616d 696e 6720 7061 636b 6167 650a .Naming package. │ │ │ │ │ +0000a8c0: 0a41 6464 7265 7373 5f4f 6620 2866 756e .Address_Of (fun │ │ │ │ │ +0000a8d0: 6374 696f 6e29 0a3d 3d3d 3d3d 3d3d 3d3d ction).========= │ │ │ │ │ +0000a8e0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 0a0a 5055 ============..PU │ │ │ │ │ +0000a8f0: 5250 4f53 450a 2020 2020 2047 6574 2074 RPOSE. Get t │ │ │ │ │ +0000a900: 6865 2049 5020 6164 6472 6573 7320 6f66 he IP address of │ │ │ │ │ +0000a910: 2061 2068 6f73 740a 5052 4f54 4f54 5950 a host.PROTOTYP │ │ │ │ │ +0000a920: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ +0000a930: 7473 2e4e 616d 696e 672e 4164 6472 6573 ts.Naming.Addres │ │ │ │ │ +0000a940: 735f 4f66 3a20 6675 6e63 7469 6f6e 2041 s_Of: function A │ │ │ │ │ +0000a950: 6464 7265 7373 5f4f 660a 2020 2020 2020 ddress_Of. │ │ │ │ │ +0000a960: 2020 2020 2020 2020 2028 534f 4d45 5448 (SOMETH │ │ │ │ │ +0000a970: 494e 4720 3a20 5374 7269 6e67 290a 2020 ING : String). │ │ │ │ │ +0000a980: 2020 2020 2020 2020 2020 2020 2072 6574 ret │ │ │ │ │ +0000a990: 7572 6e20 4164 6472 6573 733b 0a0a 5041 urn Address;..PA │ │ │ │ │ +0000a9a0: 5241 4d45 5445 5253 0a20 2020 2020 534f RAMETERS. SO │ │ │ │ │ +0000a9b0: 4d45 5448 494e 4720 2069 6e20 2020 2020 METHING in │ │ │ │ │ +0000a9c0: 2020 2020 486f 7374 206e 616d 6520 6f72 Host name or │ │ │ │ │ +0000a9d0: 2049 5020 6164 6472 6573 730a 0a52 4554 IP address..RET │ │ │ │ │ +0000a9e0: 5552 4e20 5641 4c55 450a 2020 2020 2049 URN VALUE. I │ │ │ │ │ +0000a9f0: 5076 3420 6164 6472 6573 730a 0a45 5843 Pv4 address..EXC │ │ │ │ │ +0000aa00: 4550 5449 4f4e 530a 2020 2020 2027 4e61 EPTIONS. 'Na │ │ │ │ │ +0000aa10: 6d69 6e67 5f45 7272 6f72 2720 2020 2020 ming_Error' │ │ │ │ │ +0000aa20: 4e6f 2069 6e66 6f72 6d61 7469 6f6e 2061 No information a │ │ │ │ │ +0000aa30: 7661 696c 6162 6c65 2066 6f72 2074 6869 vailable for thi │ │ │ │ │ +0000aa40: 7320 6e61 6d65 206f 720a 2020 2020 2020 s name or. │ │ │ │ │ +0000aa50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000aa60: 2020 6164 6472 6573 730a 0a53 4545 2041 address..SEE A │ │ │ │ │ +0000aa70: 4c53 4f0a 2020 2020 202a 6e6f 7465 204e LSO. *note N │ │ │ │ │ +0000aa80: 616d 655f 4f66 2028 6675 6e63 7469 6f6e ame_Of (function │ │ │ │ │ +0000aa90: 293a 3a2e 0a0a 2a20 4d65 6e75 3a0a 0a2a )::...* Menu:..* │ │ │ │ │ +0000aaa0: 2041 6e79 5f41 6464 7265 7373 2028 6675 Any_Address (fu │ │ │ │ │ +0000aab0: 6e63 7469 6f6e 293a 3a0a 2a20 4765 745f nction)::.* Get_ │ │ │ │ │ +0000aac0: 5065 6572 5f41 6464 7220 2866 756e 6374 Peer_Addr (funct │ │ │ │ │ +0000aad0: 696f 6e29 3a3a 0a2a 2047 6574 5f50 6565 ion)::.* Get_Pee │ │ │ │ │ +0000aae0: 725f 506f 7274 2028 6675 6e63 7469 6f6e r_Port (function │ │ │ │ │ +0000aaf0: 293a 3a0a 2a20 4765 745f 536f 636b 5f41 )::.* Get_Sock_A │ │ │ │ │ +0000ab00: 6464 7220 2866 756e 6374 696f 6e29 3a3a ddr (function):: │ │ │ │ │ +0000ab10: 0a2a 2047 6574 5f53 6f63 6b5f 506f 7274 .* Get_Sock_Port │ │ │ │ │ +0000ab20: 2028 6675 6e63 7469 6f6e 293a 3a0a 2a20 (function)::.* │ │ │ │ │ +0000ab30: 486f 7374 5f4e 616d 6520 2866 756e 6374 Host_Name (funct │ │ │ │ │ +0000ab40: 696f 6e29 3a3a 0a2a 2049 6d61 6765 2028 ion)::.* Image ( │ │ │ │ │ +0000ab50: 6675 6e63 7469 6f6e 293a 3a0a 2a20 496e function)::.* In │ │ │ │ │ +0000ab60: 666f 5f4f 665f 4e61 6d65 5f4f 725f 4950 fo_Of_Name_Or_IP │ │ │ │ │ +0000ab70: 2028 6675 6e63 7469 6f6e 293a 3a0a 2a20 (function)::.* │ │ │ │ │ +0000ab80: 4973 5f49 505f 4164 6472 6573 7320 2866 Is_IP_Address (f │ │ │ │ │ +0000ab90: 756e 6374 696f 6e29 3a3a 0a2a 204e 616d unction)::.* Nam │ │ │ │ │ +0000aba0: 655f 4f66 2028 6675 6e63 7469 6f6e 293a e_Of (function): │ │ │ │ │ +0000abb0: 3a0a 2a20 5661 6c75 6520 2866 756e 6374 :.* Value (funct │ │ │ │ │ +0000abc0: 696f 6e29 3a3a 0a0a 1f0a 4669 6c65 3a20 ion)::....File: │ │ │ │ │ +0000abd0: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ +0000abe0: 2020 4e6f 6465 3a20 416e 795f 4164 6472 Node: Any_Addr │ │ │ │ │ +0000abf0: 6573 7320 2866 756e 6374 696f 6e29 2c20 ess (function), │ │ │ │ │ +0000ac00: 204e 6578 743a 2047 6574 5f50 6565 725f Next: Get_Peer_ │ │ │ │ │ +0000ac10: 4164 6472 2028 6675 6e63 7469 6f6e 292c Addr (function), │ │ │ │ │ +0000ac20: 2020 5072 6576 3a20 4164 6472 6573 735f Prev: Address_ │ │ │ │ │ +0000ac30: 4f66 2028 6675 6e63 7469 6f6e 292c 2020 Of (function), │ │ │ │ │ +0000ac40: 5570 3a20 4164 6472 6573 735f 4f66 2028 Up: Address_Of ( │ │ │ │ │ +0000ac50: 6675 6e63 7469 6f6e 290a 0a41 6e79 5f41 function)..Any_A │ │ │ │ │ +0000ac60: 6464 7265 7373 2028 6675 6e63 7469 6f6e ddress (function │ │ │ │ │ +0000ac70: 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ).-------------- │ │ │ │ │ +0000ac80: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ +0000ac90: 450a 2020 2020 2053 7065 6369 616c 2061 E. Special a │ │ │ │ │ +0000aca0: 6464 7265 7373 2072 6570 7265 7365 6e74 ddress represent │ │ │ │ │ +0000acb0: 696e 6720 616e 7920 6164 6472 6573 7320 ing any address │ │ │ │ │ +0000acc0: 6f6e 2074 6865 206c 6f63 616c 2068 6f73 on the local hos │ │ │ │ │ +0000acd0: 740a 5052 4f54 4f54 5950 450a 2020 2020 t.PROTOTYPE. │ │ │ │ │ +0000ace0: 2020 2d2d 2053 6f63 6b65 7473 2e4e 616d -- Sockets.Nam │ │ │ │ │ +0000acf0: 696e 672e 416e 795f 4164 6472 6573 733a ing.Any_Address: │ │ │ │ │ +0000ad00: 2066 756e 6374 696f 6e20 416e 795f 4164 function Any_Ad │ │ │ │ │ +0000ad10: 6472 6573 730a 0a52 4554 5552 4e20 5641 dress..RETURN VA │ │ │ │ │ +0000ad20: 4c55 450a 2020 2020 2045 7175 6976 616c LUE. Equival │ │ │ │ │ +0000ad30: 656e 7420 746f 2027 494e 4144 4452 5f41 ent to 'INADDR_A │ │ │ │ │ +0000ad40: 4e59 2720 696e 2074 6865 2043 2070 726f NY' in the C pro │ │ │ │ │ +0000ad50: 6772 616d 6d69 6e67 206c 616e 6775 6167 gramming languag │ │ │ │ │ +0000ad60: 650a 0a1f 0a46 696c 653a 2061 6461 736f e....File: adaso │ │ │ │ │ +0000ad70: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ +0000ad80: 653a 2047 6574 5f50 6565 725f 4164 6472 e: Get_Peer_Addr │ │ │ │ │ +0000ad90: 2028 6675 6e63 7469 6f6e 292c 2020 4e65 (function), Ne │ │ │ │ │ +0000ada0: 7874 3a20 4765 745f 5065 6572 5f50 6f72 xt: Get_Peer_Por │ │ │ │ │ +0000adb0: 7420 2866 756e 6374 696f 6e29 2c20 2050 t (function), P │ │ │ │ │ +0000adc0: 7265 763a 2041 6e79 5f41 6464 7265 7373 rev: Any_Address │ │ │ │ │ +0000add0: 2028 6675 6e63 7469 6f6e 292c 2020 5570 (function), Up │ │ │ │ │ +0000ade0: 3a20 4164 6472 6573 735f 4f66 2028 6675 : Address_Of (fu │ │ │ │ │ +0000adf0: 6e63 7469 6f6e 290a 0a47 6574 5f50 6565 nction)..Get_Pee │ │ │ │ │ +0000ae00: 725f 4164 6472 2028 6675 6e63 7469 6f6e r_Addr (function │ │ │ │ │ +0000ae10: 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ).-------------- │ │ │ │ │ +0000ae20: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ +0000ae30: 4f53 450a 2020 2020 2052 6574 7269 6576 OSE. Retriev │ │ │ │ │ +0000ae40: 6520 4950 2061 6464 7265 7373 206f 6620 e IP address of │ │ │ │ │ +0000ae50: 7265 6d6f 7465 2068 6f73 740a 5052 4f54 remote host.PROT │ │ │ │ │ +0000ae60: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ +0000ae70: 6f63 6b65 7473 2e4e 616d 696e 672e 4765 ockets.Naming.Ge │ │ │ │ │ +0000ae80: 745f 5065 6572 5f41 6464 723a 2066 756e t_Peer_Addr: fun │ │ │ │ │ +0000ae90: 6374 696f 6e20 4765 745f 5065 6572 5f41 ction Get_Peer_A │ │ │ │ │ +0000aea0: 6464 720a 2020 2020 2020 2020 2020 2020 ddr. │ │ │ │ │ +0000aeb0: 2020 2028 534f 434b 4554 203a 2053 6f63 (SOCKET : Soc │ │ │ │ │ +0000aec0: 6b65 745f 4644 290a 2020 2020 2020 2020 ket_FD). │ │ │ │ │ +0000aed0: 2020 2020 2020 2072 6574 7572 6e20 4164 return Ad │ │ │ │ │ +0000aee0: 6472 6573 733b 0a0a 5041 5241 4d45 5445 dress;..PARAMETE │ │ │ │ │ +0000aef0: 5253 0a20 2020 2020 534f 434b 4554 2020 RS. SOCKET │ │ │ │ │ +0000af00: 2020 2069 6e20 2020 2020 2020 2020 436f in Co │ │ │ │ │ +0000af10: 6e6e 6563 7465 6420 736f 636b 6574 206f nnected socket o │ │ │ │ │ +0000af20: 626a 6563 740a 0a52 4554 5552 4e20 5641 bject..RETURN VA │ │ │ │ │ +0000af30: 4c55 450a 2020 2020 2050 6565 7220 6164 LUE. Peer ad │ │ │ │ │ +0000af40: 6472 6573 730a 0a53 4545 2041 4c53 4f0a dress..SEE ALSO. │ │ │ │ │ +0000af50: 2020 2020 202a 6e6f 7465 2047 6574 5f50 *note Get_P │ │ │ │ │ +0000af60: 6565 725f 506f 7274 2028 6675 6e63 7469 eer_Port (functi │ │ │ │ │ +0000af70: 6f6e 293a 3a2c 0a20 2020 2020 2a6e 6f74 on)::,. *not │ │ │ │ │ +0000af80: 6520 4765 745f 536f 636b 5f41 6464 7220 e Get_Sock_Addr │ │ │ │ │ +0000af90: 2866 756e 6374 696f 6e29 3a3a 2e0a 0a1f (function)::.... │ │ │ │ │ +0000afa0: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ +0000afb0: 732e 696e 666f 2c20 204e 6f64 653a 2047 s.info, Node: G │ │ │ │ │ +0000afc0: 6574 5f50 6565 725f 506f 7274 2028 6675 et_Peer_Port (fu │ │ │ │ │ +0000afd0: 6e63 7469 6f6e 292c 2020 4e65 7874 3a20 nction), Next: │ │ │ │ │ +0000afe0: 4765 745f 536f 636b 5f41 6464 7220 2866 Get_Sock_Addr (f │ │ │ │ │ +0000aff0: 756e 6374 696f 6e29 2c20 2050 7265 763a unction), Prev: │ │ │ │ │ +0000b000: 2047 6574 5f50 6565 725f 4164 6472 2028 Get_Peer_Addr ( │ │ │ │ │ +0000b010: 6675 6e63 7469 6f6e 292c 2020 5570 3a20 function), Up: │ │ │ │ │ +0000b020: 4164 6472 6573 735f 4f66 2028 6675 6e63 Address_Of (func │ │ │ │ │ +0000b030: 7469 6f6e 290a 0a47 6574 5f50 6565 725f tion)..Get_Peer_ │ │ │ │ │ +0000b040: 506f 7274 2028 6675 6e63 7469 6f6e 290a Port (function). │ │ │ │ │ +0000b050: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000b060: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ +0000b070: 450a 2020 2020 2052 6574 7269 6576 6520 E. Retrieve │ │ │ │ │ +0000b080: 706f 7274 2075 7365 6420 6279 2072 656d port used by rem │ │ │ │ │ +0000b090: 6f74 6520 686f 7374 0a50 524f 544f 5459 ote host.PROTOTY │ │ │ │ │ +0000b0a0: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ +0000b0b0: 6574 732e 4e61 6d69 6e67 2e47 6574 5f50 ets.Naming.Get_P │ │ │ │ │ +0000b0c0: 6565 725f 506f 7274 3a20 6675 6e63 7469 eer_Port: functi │ │ │ │ │ +0000b0d0: 6f6e 2047 6574 5f50 6565 725f 506f 7274 on Get_Peer_Port │ │ │ │ │ +0000b0e0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000b0f0: 2853 4f43 4b45 5420 3a20 536f 636b 6574 (SOCKET : Socket │ │ │ │ │ +0000b100: 5f46 4429 0a20 2020 2020 2020 2020 2020 _FD). │ │ │ │ │ +0000b110: 2020 2020 7265 7475 726e 2050 6f73 6974 return Posit │ │ │ │ │ +0000b120: 6976 653b 0a0a 5041 5241 4d45 5445 5253 ive;..PARAMETERS │ │ │ │ │ +0000b130: 0a20 2020 2020 534f 434b 4554 2020 2020 . SOCKET │ │ │ │ │ +0000b140: 2069 6e20 2020 2020 2020 2020 436f 6e6e in Conn │ │ │ │ │ +0000b150: 6563 7465 6420 736f 636b 6574 206f 626a ected socket obj │ │ │ │ │ +0000b160: 6563 740a 0a52 4554 5552 4e20 5641 4c55 ect..RETURN VALU │ │ │ │ │ +0000b170: 450a 2020 2020 2050 6f72 7420 7573 6564 E. Port used │ │ │ │ │ +0000b180: 206f 6e20 7468 6520 7265 6d6f 7465 2068 on the remote h │ │ │ │ │ +0000b190: 6f73 740a 0a53 4545 2041 4c53 4f0a 2020 ost..SEE ALSO. │ │ │ │ │ +0000b1a0: 2020 202a 6e6f 7465 2047 6574 5f53 6f63 *note Get_Soc │ │ │ │ │ +0000b1b0: 6b5f 506f 7274 2028 6675 6e63 7469 6f6e k_Port (function │ │ │ │ │ +0000b1c0: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ +0000b1d0: 4765 745f 5065 6572 5f41 6464 7220 2866 Get_Peer_Addr (f │ │ │ │ │ +0000b1e0: 756e 6374 696f 6e29 3a3a 2e0a 0a1f 0a46 unction)::.....F │ │ │ │ │ +0000b1f0: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ +0000b200: 696e 666f 2c20 204e 6f64 653a 2047 6574 info, Node: Get │ │ │ │ │ +0000b210: 5f53 6f63 6b5f 4164 6472 2028 6675 6e63 _Sock_Addr (func │ │ │ │ │ +0000b220: 7469 6f6e 292c 2020 4e65 7874 3a20 4765 tion), Next: Ge │ │ │ │ │ +0000b230: 745f 536f 636b 5f50 6f72 7420 2866 756e t_Sock_Port (fun │ │ │ │ │ +0000b240: 6374 696f 6e29 2c20 2050 7265 763a 2047 ction), Prev: G │ │ │ │ │ +0000b250: 6574 5f50 6565 725f 506f 7274 2028 6675 et_Peer_Port (fu │ │ │ │ │ +0000b260: 6e63 7469 6f6e 292c 2020 5570 3a20 4164 nction), Up: Ad │ │ │ │ │ +0000b270: 6472 6573 735f 4f66 2028 6675 6e63 7469 dress_Of (functi │ │ │ │ │ +0000b280: 6f6e 290a 0a47 6574 5f53 6f63 6b5f 4164 on)..Get_Sock_Ad │ │ │ │ │ +0000b290: 6472 2028 6675 6e63 7469 6f6e 290a 2d2d dr (function).-- │ │ │ │ │ +0000b2a0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000b2b0: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ +0000b2c0: 2020 2020 2052 6574 7269 6576 6520 4950 Retrieve IP │ │ │ │ │ +0000b2d0: 2061 6464 7265 7373 206f 6620 6c6f 6361 address of loca │ │ │ │ │ +0000b2e0: 6c20 686f 7374 0a50 524f 544f 5459 5045 l host.PROTOTYPE │ │ │ │ │ +0000b2f0: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +0000b300: 732e 4e61 6d69 6e67 2e47 6574 5f53 6f63 s.Naming.Get_Soc │ │ │ │ │ +0000b310: 6b5f 4164 6472 3a20 6675 6e63 7469 6f6e k_Addr: function │ │ │ │ │ +0000b320: 2047 6574 5f53 6f63 6b5f 4164 6472 0a20 Get_Sock_Addr. │ │ │ │ │ +0000b330: 2020 2020 2020 2020 2020 2020 2020 2853 (S │ │ │ │ │ +0000b340: 4f43 4b45 5420 3a20 536f 636b 6574 5f46 OCKET : Socket_F │ │ │ │ │ +0000b350: 4429 0a20 2020 2020 2020 2020 2020 2020 D). │ │ │ │ │ +0000b360: 2020 7265 7475 726e 2041 6464 7265 7373 return Address │ │ │ │ │ +0000b370: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +0000b380: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ +0000b390: 2020 2020 2020 2020 2043 6f6e 6e65 6374 Connect │ │ │ │ │ +0000b3a0: 6564 2073 6f63 6b65 7420 6f62 6a65 6374 ed socket object │ │ │ │ │ +0000b3b0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ +0000b3c0: 2020 2020 4164 6472 6573 7320 6f66 206c Address of l │ │ │ │ │ +0000b3d0: 6f63 616c 2069 6e74 6572 6661 6365 2075 ocal interface u │ │ │ │ │ +0000b3e0: 7365 640a 0a53 4545 2041 4c53 4f0a 2020 sed..SEE ALSO. │ │ │ │ │ +0000b3f0: 2020 202a 6e6f 7465 2047 6574 5f53 6f63 *note Get_Soc │ │ │ │ │ +0000b400: 6b5f 506f 7274 2028 6675 6e63 7469 6f6e k_Port (function │ │ │ │ │ +0000b410: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ +0000b420: 4765 745f 5065 6572 5f41 6464 7220 2866 Get_Peer_Addr (f │ │ │ │ │ +0000b430: 756e 6374 696f 6e29 3a3a 2e0a 0a1f 0a46 unction)::.....F │ │ │ │ │ +0000b440: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ +0000b450: 696e 666f 2c20 204e 6f64 653a 2047 6574 info, Node: Get │ │ │ │ │ +0000b460: 5f53 6f63 6b5f 506f 7274 2028 6675 6e63 _Sock_Port (func │ │ │ │ │ +0000b470: 7469 6f6e 292c 2020 4e65 7874 3a20 486f tion), Next: Ho │ │ │ │ │ +0000b480: 7374 5f4e 616d 6520 2866 756e 6374 696f st_Name (functio │ │ │ │ │ +0000b490: 6e29 2c20 2050 7265 763a 2047 6574 5f53 n), Prev: Get_S │ │ │ │ │ +0000b4a0: 6f63 6b5f 4164 6472 2028 6675 6e63 7469 ock_Addr (functi │ │ │ │ │ +0000b4b0: 6f6e 292c 2020 5570 3a20 4164 6472 6573 on), Up: Addres │ │ │ │ │ +0000b4c0: 735f 4f66 2028 6675 6e63 7469 6f6e 290a s_Of (function). │ │ │ │ │ +0000b4d0: 0a47 6574 5f53 6f63 6b5f 506f 7274 2028 .Get_Sock_Port ( │ │ │ │ │ +0000b4e0: 6675 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d function).------ │ │ │ │ │ +0000b4f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000b500: 2d2d 0a0a 5055 5250 4f53 450a 2020 2020 --..PURPOSE. │ │ │ │ │ +0000b510: 2052 6574 7269 6576 6520 706f 7274 2075 Retrieve port u │ │ │ │ │ +0000b520: 7365 6420 6279 206c 6f63 616c 2068 6f73 sed by local hos │ │ │ │ │ +0000b530: 740a 5052 4f54 4f54 5950 450a 2020 2020 t.PROTOTYPE. │ │ │ │ │ +0000b540: 2020 2d2d 2053 6f63 6b65 7473 2e4e 616d -- Sockets.Nam │ │ │ │ │ +0000b550: 696e 672e 4765 745f 536f 636b 5f50 6f72 ing.Get_Sock_Por │ │ │ │ │ +0000b560: 743a 2066 756e 6374 696f 6e20 4765 745f t: function Get_ │ │ │ │ │ +0000b570: 536f 636b 5f50 6f72 740a 2020 2020 2020 Sock_Port. │ │ │ │ │ +0000b580: 2020 2020 2020 2020 2028 534f 434b 4554 (SOCKET │ │ │ │ │ +0000b590: 203a 2053 6f63 6b65 745f 4644 290a 2020 : Socket_FD). │ │ │ │ │ +0000b5a0: 2020 2020 2020 2020 2020 2020 2072 6574 ret │ │ │ │ │ +0000b5b0: 7572 6e20 506f 7369 7469 7665 3b0a 0a50 urn Positive;..P │ │ │ │ │ +0000b5c0: 4152 414d 4554 4552 530a 2020 2020 2053 ARAMETERS. S │ │ │ │ │ +0000b5d0: 4f43 4b45 5420 2020 2020 696e 2020 2020 OCKET in │ │ │ │ │ +0000b5e0: 2020 2020 2043 6f6e 6e65 6374 6564 2073 Connected s │ │ │ │ │ +0000b5f0: 6f63 6b65 7420 6f62 6a65 6374 0a0a 5245 ocket object..RE │ │ │ │ │ +0000b600: 5455 524e 2056 414c 5545 0a20 2020 2020 TURN VALUE. │ │ │ │ │ +0000b610: 506f 7274 2075 7365 6420 6f6e 2074 6865 Port used on the │ │ │ │ │ +0000b620: 206c 6f63 616c 2068 6f73 740a 0a53 4545 local host..SEE │ │ │ │ │ +0000b630: 2041 4c53 4f0a 2020 2020 202a 6e6f 7465 ALSO. *note │ │ │ │ │ +0000b640: 2047 6574 5f50 6565 725f 506f 7274 2028 Get_Peer_Port ( │ │ │ │ │ +0000b650: 6675 6e63 7469 6f6e 293a 3a2c 0a20 2020 function)::,. │ │ │ │ │ +0000b660: 2020 2a6e 6f74 6520 4765 745f 536f 636b *note Get_Sock │ │ │ │ │ +0000b670: 5f41 6464 7220 2866 756e 6374 696f 6e29 _Addr (function) │ │ │ │ │ +0000b680: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +0000b690: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +0000b6a0: 6f64 653a 2048 6f73 745f 4e61 6d65 2028 ode: Host_Name ( │ │ │ │ │ +0000b6b0: 6675 6e63 7469 6f6e 292c 2020 4e65 7874 function), Next │ │ │ │ │ +0000b6c0: 3a20 496d 6167 6520 2866 756e 6374 696f : Image (functio │ │ │ │ │ +0000b6d0: 6e29 2c20 2050 7265 763a 2047 6574 5f53 n), Prev: Get_S │ │ │ │ │ +0000b6e0: 6f63 6b5f 506f 7274 2028 6675 6e63 7469 ock_Port (functi │ │ │ │ │ +0000b6f0: 6f6e 292c 2020 5570 3a20 4164 6472 6573 on), Up: Addres │ │ │ │ │ +0000b700: 735f 4f66 2028 6675 6e63 7469 6f6e 290a s_Of (function). │ │ │ │ │ +0000b710: 0a48 6f73 745f 4e61 6d65 2028 6675 6e63 .Host_Name (func │ │ │ │ │ +0000b720: 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d 2d2d tion).---------- │ │ │ │ │ +0000b730: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ +0000b740: 4f53 450a 2020 2020 2047 6574 2074 6865 OSE. Get the │ │ │ │ │ +0000b750: 206e 616d 6520 6f66 2074 6865 2063 7572 name of the cur │ │ │ │ │ +0000b760: 7265 6e74 2068 6f73 740a 5052 4f54 4f54 rent host.PROTOT │ │ │ │ │ +0000b770: 5950 450a 2020 2020 2020 2d2d 2053 6f63 YPE. -- Soc │ │ │ │ │ +0000b780: 6b65 7473 2e4e 616d 696e 672e 486f 7374 kets.Naming.Host │ │ │ │ │ +0000b790: 5f4e 616d 653a 2066 756e 6374 696f 6e20 _Name: function │ │ │ │ │ +0000b7a0: 486f 7374 5f4e 616d 650a 0a52 4554 5552 Host_Name..RETUR │ │ │ │ │ +0000b7b0: 4e20 5641 4c55 450a 2020 2020 204e 616d N VALUE. Nam │ │ │ │ │ +0000b7c0: 6520 6f66 2074 6865 2063 7572 7265 6e74 e of the current │ │ │ │ │ +0000b7d0: 2068 6f73 740a 0a44 4553 4352 4950 5449 host..DESCRIPTI │ │ │ │ │ +0000b7e0: 4f4e 0a20 2020 2020 5468 6973 2066 756e ON. This fun │ │ │ │ │ +0000b7f0: 6374 696f 6e20 7265 7475 726e 7320 7468 ction returns th │ │ │ │ │ +0000b800: 6520 6e61 6d65 206f 6620 7468 6520 6375 e name of the cu │ │ │ │ │ +0000b810: 7272 656e 7420 686f 7374 2e20 2044 6570 rrent host. Dep │ │ │ │ │ +0000b820: 656e 6469 6e67 206f 6e0a 2020 2020 2074 ending on. t │ │ │ │ │ +0000b830: 6865 206c 6f63 616c 2063 6f6e 6669 6775 he local configu │ │ │ │ │ +0000b840: 7261 7469 6f6e 2c20 6974 206d 6179 206f ration, it may o │ │ │ │ │ +0000b850: 7220 6d61 7920 6e6f 7420 6265 2061 2066 r may not be a f │ │ │ │ │ +0000b860: 756c 6c79 2071 7561 6c69 6669 6564 0a20 ully qualified. │ │ │ │ │ +0000b870: 2020 2020 646f 6d61 696e 206e 616d 6520 domain name │ │ │ │ │ +0000b880: 2846 5144 4e29 2e0a 0a1f 0a46 696c 653a (FQDN).....File: │ │ │ │ │ +0000b890: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ +0000b8a0: 2c20 204e 6f64 653a 2049 6d61 6765 2028 , Node: Image ( │ │ │ │ │ +0000b8b0: 6675 6e63 7469 6f6e 292c 2020 4e65 7874 function), Next │ │ │ │ │ +0000b8c0: 3a20 496e 666f 5f4f 665f 4e61 6d65 5f4f : Info_Of_Name_O │ │ │ │ │ +0000b8d0: 725f 4950 2028 6675 6e63 7469 6f6e 292c r_IP (function), │ │ │ │ │ +0000b8e0: 2020 5072 6576 3a20 486f 7374 5f4e 616d Prev: Host_Nam │ │ │ │ │ +0000b8f0: 6520 2866 756e 6374 696f 6e29 2c20 2055 e (function), U │ │ │ │ │ +0000b900: 703a 2041 6464 7265 7373 5f4f 6620 2866 p: Address_Of (f │ │ │ │ │ +0000b910: 756e 6374 696f 6e29 0a0a 496d 6167 6520 unction)..Image │ │ │ │ │ +0000b920: 2866 756e 6374 696f 6e29 0a2d 2d2d 2d2d (function).----- │ │ │ │ │ +0000b930: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 -----------..PUR │ │ │ │ │ +0000b940: 504f 5345 0a20 2020 2020 4d61 6b65 2061 POSE. Make a │ │ │ │ │ +0000b950: 2073 7472 696e 6720 6672 6f6d 2061 6e20 string from an │ │ │ │ │ +0000b960: 6164 6472 6573 730a 5052 4f54 4f54 5950 address.PROTOTYP │ │ │ │ │ +0000b970: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ +0000b980: 7473 2e4e 616d 696e 672e 496d 6167 653a ts.Naming.Image: │ │ │ │ │ +0000b990: 2066 756e 6374 696f 6e20 496d 6167 6520 function Image │ │ │ │ │ +0000b9a0: 2841 4444 203a 2041 6464 7265 7373 290a (ADD : Address). │ │ │ │ │ +0000b9b0: 2020 2020 2020 2020 2020 2020 2020 2072 r │ │ │ │ │ +0000b9c0: 6574 7572 6e20 5374 7269 6e67 3b0a 0a50 eturn String;..P │ │ │ │ │ +0000b9d0: 4152 414d 4554 4552 530a 2020 2020 2041 ARAMETERS. A │ │ │ │ │ +0000b9e0: 4444 2020 2020 2020 2020 696e 2020 2020 DD in │ │ │ │ │ +0000b9f0: 2020 2020 2049 5020 6164 6472 6573 730a IP address. │ │ │ │ │ +0000ba00: 0a52 4554 5552 4e20 5641 4c55 450a 2020 .RETURN VALUE. │ │ │ │ │ +0000ba10: 2020 2053 7472 696e 6720 7265 7072 6573 String repres │ │ │ │ │ +0000ba20: 656e 7461 7469 6f6e 206f 6620 7468 6520 entation of the │ │ │ │ │ +0000ba30: 4950 2061 6464 7265 7373 0a0a 5345 4520 IP address..SEE │ │ │ │ │ +0000ba40: 414c 534f 0a20 2020 2020 2a6e 6f74 6520 ALSO. *note │ │ │ │ │ +0000ba50: 5661 6c75 6520 2866 756e 6374 696f 6e29 Value (function) │ │ │ │ │ +0000ba60: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +0000ba70: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +0000ba80: 6f64 653a 2049 6e66 6f5f 4f66 5f4e 616d ode: Info_Of_Nam │ │ │ │ │ +0000ba90: 655f 4f72 5f49 5020 2866 756e 6374 696f e_Or_IP (functio │ │ │ │ │ +0000baa0: 6e29 2c20 204e 6578 743a 2049 735f 4950 n), Next: Is_IP │ │ │ │ │ +0000bab0: 5f41 6464 7265 7373 2028 6675 6e63 7469 _Address (functi │ │ │ │ │ +0000bac0: 6f6e 292c 2020 5072 6576 3a20 496d 6167 on), Prev: Imag │ │ │ │ │ +0000bad0: 6520 2866 756e 6374 696f 6e29 2c20 2055 e (function), U │ │ │ │ │ +0000bae0: 703a 2041 6464 7265 7373 5f4f 6620 2866 p: Address_Of (f │ │ │ │ │ +0000baf0: 756e 6374 696f 6e29 0a0a 496e 666f 5f4f unction)..Info_O │ │ │ │ │ +0000bb00: 665f 4e61 6d65 5f4f 725f 4950 2028 6675 f_Name_Or_IP (fu │ │ │ │ │ +0000bb10: 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d nction).-------- │ │ │ │ │ +0000bb20: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000bb30: 2d2d 2d2d 2d0a 0a50 5552 504f 5345 0a20 -----..PURPOSE. │ │ │ │ │ +0000bb40: 2020 2020 4765 7420 6164 6472 6573 7365 Get addresse │ │ │ │ │ +0000bb50: 7320 616e 6420 6e61 6d65 7320 6f66 2061 s and names of a │ │ │ │ │ +0000bb60: 2068 6f73 740a 5052 4f54 4f54 5950 450a host.PROTOTYPE. │ │ │ │ │ +0000bb70: 2020 2020 2020 2d2d 2053 6f63 6b65 7473 -- Sockets │ │ │ │ │ +0000bb80: 2e4e 616d 696e 672e 496e 666f 5f4f 665f .Naming.Info_Of_ │ │ │ │ │ +0000bb90: 4e61 6d65 5f4f 725f 4950 3a20 6675 6e63 Name_Or_IP: func │ │ │ │ │ +0000bba0: 7469 6f6e 2049 6e66 6f5f 4f66 5f4e 616d tion Info_Of_Nam │ │ │ │ │ +0000bbb0: 655f 4f72 5f49 500a 2020 2020 2020 2020 e_Or_IP. │ │ │ │ │ +0000bbc0: 2020 2020 2020 2028 534f 4d45 5448 494e (SOMETHIN │ │ │ │ │ +0000bbd0: 4720 3a20 5374 7269 6e67 290a 2020 2020 G : String). │ │ │ │ │ +0000bbe0: 2020 2020 2020 2020 2020 2072 6574 7572 retur │ │ │ │ │ +0000bbf0: 6e20 486f 7374 5f45 6e74 7279 3b0a 0a50 n Host_Entry;..P │ │ │ │ │ +0000bc00: 4152 414d 4554 4552 530a 2020 2020 2053 ARAMETERS. S │ │ │ │ │ +0000bc10: 4f4d 4554 4849 4e47 2020 696e 2020 2020 OMETHING in │ │ │ │ │ +0000bc20: 2020 2020 2048 6f73 7420 6e61 6d65 206f Host name o │ │ │ │ │ +0000bc30: 7220 4950 2061 6464 7265 7373 0a0a 5245 r IP address..RE │ │ │ │ │ +0000bc40: 5455 524e 2056 414c 5545 0a20 2020 2020 TURN VALUE. │ │ │ │ │ +0000bc50: 436f 7272 6573 706f 6e64 696e 6720 686f Corresponding ho │ │ │ │ │ +0000bc60: 7374 2065 6e74 7279 0a0a 4445 5343 5249 st entry..DESCRI │ │ │ │ │ +0000bc70: 5054 494f 4e0a 2020 2020 2054 6869 7320 PTION. This │ │ │ │ │ +0000bc80: 6675 6e63 7469 6f6e 2065 7874 7261 6374 function extract │ │ │ │ │ +0000bc90: 7320 616c 6c20 7468 6520 6e61 6d65 7320 s all the names │ │ │ │ │ +0000bca0: 616e 6420 6164 6472 6573 7365 7320 6672 and addresses fr │ │ │ │ │ +0000bcb0: 6f6d 2074 6865 206e 616d 696e 670a 2020 om the naming. │ │ │ │ │ +0000bcc0: 2020 2073 6572 7669 6365 2e0a 0a45 5843 service...EXC │ │ │ │ │ +0000bcd0: 4550 5449 4f4e 530a 2020 2020 2027 4e61 EPTIONS. 'Na │ │ │ │ │ +0000bce0: 6d69 6e67 5f45 7272 6f72 2720 2020 2020 ming_Error' │ │ │ │ │ +0000bcf0: 4e6f 2069 6e66 6f72 6d61 7469 6f6e 2061 No information a │ │ │ │ │ +0000bd00: 7661 696c 6162 6c65 2066 6f72 2074 6869 vailable for thi │ │ │ │ │ +0000bd10: 7320 6e61 6d65 206f 720a 2020 2020 2020 s name or. │ │ │ │ │ +0000bd20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000bd30: 2020 6164 6472 6573 730a 0a1f 0a46 696c address....Fil │ │ │ │ │ +0000bd40: 653a 2061 6461 736f 636b 6574 732e 696e e: adasockets.in │ │ │ │ │ +0000bd50: 666f 2c20 204e 6f64 653a 2049 735f 4950 fo, Node: Is_IP │ │ │ │ │ +0000bd60: 5f41 6464 7265 7373 2028 6675 6e63 7469 _Address (functi │ │ │ │ │ +0000bd70: 6f6e 292c 2020 4e65 7874 3a20 4e61 6d65 on), Next: Name │ │ │ │ │ +0000bd80: 5f4f 6620 2866 756e 6374 696f 6e29 2c20 _Of (function), │ │ │ │ │ +0000bd90: 2050 7265 763a 2049 6e66 6f5f 4f66 5f4e Prev: Info_Of_N │ │ │ │ │ +0000bda0: 616d 655f 4f72 5f49 5020 2866 756e 6374 ame_Or_IP (funct │ │ │ │ │ +0000bdb0: 696f 6e29 2c20 2055 703a 2041 6464 7265 ion), Up: Addre │ │ │ │ │ +0000bdc0: 7373 5f4f 6620 2866 756e 6374 696f 6e29 ss_Of (function) │ │ │ │ │ +0000bdd0: 0a0a 4973 5f49 505f 4164 6472 6573 7320 ..Is_IP_Address │ │ │ │ │ +0000bde0: 2866 756e 6374 696f 6e29 0a2d 2d2d 2d2d (function).----- │ │ │ │ │ +0000bdf0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000be00: 2d2d 2d0a 0a50 5552 504f 5345 0a20 2020 ---..PURPOSE. │ │ │ │ │ +0000be10: 2020 4368 6563 6b20 6966 2067 6976 656e Check if given │ │ │ │ │ +0000be20: 2073 7472 696e 6720 6973 2061 2076 616c string is a val │ │ │ │ │ +0000be30: 6964 2049 5020 6164 6472 6573 730a 5052 id IP address.PR │ │ │ │ │ +0000be40: 4f54 4f54 5950 450a 2020 2020 2020 2d2d OTOTYPE. -- │ │ │ │ │ +0000be50: 2053 6f63 6b65 7473 2e4e 616d 696e 672e Sockets.Naming. │ │ │ │ │ +0000be60: 4973 5f49 505f 4164 6472 6573 733a 2066 Is_IP_Address: f │ │ │ │ │ +0000be70: 756e 6374 696f 6e20 4973 5f49 505f 4164 unction Is_IP_Ad │ │ │ │ │ +0000be80: 6472 6573 730a 2020 2020 2020 2020 2020 dress. │ │ │ │ │ +0000be90: 2020 2020 2028 534f 4d45 5448 494e 4720 (SOMETHING │ │ │ │ │ +0000bea0: 3a20 5374 7269 6e67 290a 2020 2020 2020 : String). │ │ │ │ │ +0000beb0: 2020 2020 2020 2020 2072 6574 7572 6e20 return │ │ │ │ │ +0000bec0: 426f 6f6c 6561 6e3b 0a0a 5041 5241 4d45 Boolean;..PARAME │ │ │ │ │ +0000bed0: 5445 5253 0a20 2020 2020 534f 4d45 5448 TERS. SOMETH │ │ │ │ │ +0000bee0: 494e 4720 2069 6e20 2020 2020 2020 2020 ING in │ │ │ │ │ +0000bef0: 5374 7269 6e67 2074 6f20 6368 6563 6b0a String to check. │ │ │ │ │ +0000bf00: 0a52 4554 5552 4e20 5641 4c55 450a 2020 .RETURN VALUE. │ │ │ │ │ +0000bf10: 2020 2027 5472 7565 2720 6966 2053 4f4d 'True' if SOM │ │ │ │ │ +0000bf20: 4554 4849 4e47 2069 7320 616e 2049 5020 ETHING is an IP │ │ │ │ │ +0000bf30: 6164 6472 6573 730a 0a1f 0a46 696c 653a address....File: │ │ │ │ │ +0000bf40: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ +0000bf50: 2c20 204e 6f64 653a 204e 616d 655f 4f66 , Node: Name_Of │ │ │ │ │ +0000bf60: 2028 6675 6e63 7469 6f6e 292c 2020 4e65 (function), Ne │ │ │ │ │ +0000bf70: 7874 3a20 5661 6c75 6520 2866 756e 6374 xt: Value (funct │ │ │ │ │ +0000bf80: 696f 6e29 2c20 2050 7265 763a 2049 735f ion), Prev: Is_ │ │ │ │ │ +0000bf90: 4950 5f41 6464 7265 7373 2028 6675 6e63 IP_Address (func │ │ │ │ │ +0000bfa0: 7469 6f6e 292c 2020 5570 3a20 4164 6472 tion), Up: Addr │ │ │ │ │ +0000bfb0: 6573 735f 4f66 2028 6675 6e63 7469 6f6e ess_Of (function │ │ │ │ │ +0000bfc0: 290a 0a4e 616d 655f 4f66 2028 6675 6e63 )..Name_Of (func │ │ │ │ │ +0000bfd0: 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d 2d2d tion).---------- │ │ │ │ │ +0000bfe0: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ +0000bff0: 450a 2020 2020 204f 6666 6963 6961 6c20 E. Official │ │ │ │ │ +0000c000: 6e61 6d65 206f 6620 7468 6520 686f 7374 name of the host │ │ │ │ │ +0000c010: 0a50 524f 544f 5459 5045 0a20 2020 2020 .PROTOTYPE. │ │ │ │ │ +0000c020: 202d 2d20 536f 636b 6574 732e 4e61 6d69 -- Sockets.Nami │ │ │ │ │ +0000c030: 6e67 2e4e 616d 655f 4f66 3a20 6675 6e63 ng.Name_Of: func │ │ │ │ │ +0000c040: 7469 6f6e 204e 616d 655f 4f66 2028 534f tion Name_Of (SO │ │ │ │ │ +0000c050: 4d45 5448 494e 4720 3a20 5374 7269 6e67 METHING : String │ │ │ │ │ +0000c060: 290a 2020 2020 2020 2020 2020 2020 2020 ). │ │ │ │ │ +0000c070: 2072 6574 7572 6e20 5374 7269 6e67 3b0a return String;. │ │ │ │ │ +0000c080: 0a50 4152 414d 4554 4552 530a 2020 2020 .PARAMETERS. │ │ │ │ │ +0000c090: 2053 4f4d 4554 4849 4e47 2020 696e 2020 SOMETHING in │ │ │ │ │ +0000c0a0: 2020 2020 2020 2048 6f73 7420 6e61 6d65 Host name │ │ │ │ │ +0000c0b0: 206f 7220 4950 2061 6464 7265 7373 0a0a or IP address.. │ │ │ │ │ +0000c0c0: 5245 5455 524e 2056 414c 5545 0a20 2020 RETURN VALUE. │ │ │ │ │ +0000c0d0: 2020 4e61 6d65 206f 6620 7468 6520 686f Name of the ho │ │ │ │ │ +0000c0e0: 7374 0a0a 4558 4345 5054 494f 4e53 0a20 st..EXCEPTIONS. │ │ │ │ │ +0000c0f0: 2020 2020 274e 616d 696e 675f 4572 726f 'Naming_Erro │ │ │ │ │ +0000c100: 7227 2020 2020 204e 6f20 696e 666f 726d r' No inform │ │ │ │ │ +0000c110: 6174 696f 6e20 6176 6169 6c61 626c 6520 ation available │ │ │ │ │ +0000c120: 666f 7220 7468 6973 206e 616d 6520 6f72 for this name or │ │ │ │ │ +0000c130: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000c140: 2020 2020 2020 2020 2061 6464 7265 7373 address │ │ │ │ │ +0000c150: 0a0a 5345 4520 414c 534f 0a20 2020 2020 ..SEE ALSO. │ │ │ │ │ +0000c160: 2a6e 6f74 6520 4164 6472 6573 735f 4f66 *note Address_Of │ │ │ │ │ +0000c170: 2028 6675 6e63 7469 6f6e 293a 3a2e 0a0a (function)::... │ │ │ │ │ +0000c180: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ +0000c190: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ +0000c1a0: 5661 6c75 6520 2866 756e 6374 696f 6e29 Value (function) │ │ │ │ │ +0000c1b0: 2c20 2050 7265 763a 204e 616d 655f 4f66 , Prev: Name_Of │ │ │ │ │ +0000c1c0: 2028 6675 6e63 7469 6f6e 292c 2020 5570 (function), Up │ │ │ │ │ +0000c1d0: 3a20 4164 6472 6573 735f 4f66 2028 6675 : Address_Of (fu │ │ │ │ │ +0000c1e0: 6e63 7469 6f6e 290a 0a56 616c 7565 2028 nction)..Value ( │ │ │ │ │ +0000c1f0: 6675 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d function).------ │ │ │ │ │ +0000c200: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ +0000c210: 4f53 450a 2020 2020 2054 7261 6e73 666f OSE. Transfo │ │ │ │ │ +0000c220: 726d 2061 2073 7472 696e 6720 696e 746f rm a string into │ │ │ │ │ +0000c230: 2061 6e20 6164 6472 6573 730a 5052 4f54 an address.PROT │ │ │ │ │ +0000c240: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ +0000c250: 6f63 6b65 7473 2e4e 616d 696e 672e 5661 ockets.Naming.Va │ │ │ │ │ +0000c260: 6c75 653a 2066 756e 6374 696f 6e20 5661 lue: function Va │ │ │ │ │ +0000c270: 6c75 6520 2841 4444 203a 2053 7472 696e lue (ADD : Strin │ │ │ │ │ +0000c280: 6729 0a20 2020 2020 2020 2020 2020 2020 g). │ │ │ │ │ +0000c290: 2020 7265 7475 726e 2041 6464 7265 7373 return Address │ │ │ │ │ +0000c2a0: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +0000c2b0: 2020 2041 4444 2020 2020 2020 2020 696e ADD in │ │ │ │ │ +0000c2c0: 2020 2020 2020 2020 2054 6578 7475 616c Textual │ │ │ │ │ +0000c2d0: 2072 6570 7265 7365 6e74 6174 696f 6e20 representation │ │ │ │ │ +0000c2e0: 6f66 2061 6e20 4950 2061 6464 7265 7373 of an IP address │ │ │ │ │ +0000c2f0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ +0000c300: 2020 2020 436f 7272 6573 706f 6e64 696e Correspondin │ │ │ │ │ +0000c310: 6720 4164 6472 6573 730a 0a53 4545 2041 g Address..SEE A │ │ │ │ │ +0000c320: 4c53 4f0a 2020 2020 202a 6e6f 7465 2049 LSO. *note I │ │ │ │ │ +0000c330: 6d61 6765 2028 6675 6e63 7469 6f6e 293a mage (function): │ │ │ │ │ +0000c340: 3a2e 0a0a 1f0a 4669 6c65 3a20 6164 6173 :.....File: adas │ │ │ │ │ +0000c350: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ +0000c360: 6465 3a20 436f 6e74 7269 6275 746f 7273 de: Contributors │ │ │ │ │ +0000c370: 2c20 204e 6578 743a 2052 6573 6f75 7263 , Next: Resourc │ │ │ │ │ +0000c380: 6573 206f 6e20 7468 6520 496e 7465 726e es on the Intern │ │ │ │ │ +0000c390: 6574 2c20 2050 7265 763a 2053 6f63 6b65 et, Prev: Socke │ │ │ │ │ +0000c3a0: 7473 2e4e 616d 696e 6720 7061 636b 6167 ts.Naming packag │ │ │ │ │ +0000c3b0: 652c 2020 5570 3a20 546f 700a 0a41 7070 e, Up: Top..App │ │ │ │ │ +0000c3c0: 656e 6469 7820 4120 436f 6e74 7269 6275 endix A Contribu │ │ │ │ │ +0000c3d0: 746f 7273 0a2a 2a2a 2a2a 2a2a 2a2a 2a2a tors.*********** │ │ │ │ │ +0000c3e0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 0a0a 4164 ************..Ad │ │ │ │ │ +0000c3f0: 6153 6f63 6b65 7473 2068 6173 2062 6565 aSockets has bee │ │ │ │ │ +0000c400: 6e20 6f72 6967 696e 616c 6c79 2064 6576 n originally dev │ │ │ │ │ +0000c410: 656c 6f70 7065 6420 6279 2053 616d 7565 elopped by Samue │ │ │ │ │ +0000c420: 6c20 5461 7264 6965 7520 7768 6f20 7374 l Tardieu who st │ │ │ │ │ +0000c430: 696c 6c0a 6d61 696e 7461 696e 7320 6974 ill.maintains it │ │ │ │ │ +0000c440: 2e20 2048 6f77 6576 6572 2c20 7468 6520 . However, the │ │ │ │ │ +0000c450: 666f 6c6c 6f77 696e 6720 7065 6f70 6c65 following people │ │ │ │ │ +0000c460: 2068 6176 6520 6d61 6465 2063 7275 6369 have made cruci │ │ │ │ │ +0000c470: 616c 0a63 6f6e 7472 6962 7574 696f 6e73 al.contributions │ │ │ │ │ +0000c480: 2074 6f20 4164 6153 6f63 6b65 7473 2c20 to AdaSockets, │ │ │ │ │ +0000c490: 6265 2074 6865 7920 6e65 7720 636f 6465 be they new code │ │ │ │ │ +0000c4a0: 2c20 6275 6720 6669 7865 7320 6f72 2070 , bug fixes or p │ │ │ │ │ +0000c4b0: 6f72 7469 6e67 2074 6f0a 6e65 7720 6f70 orting to.new op │ │ │ │ │ +0000c4c0: 6572 6174 696e 6720 7379 7374 656d 733a erating systems: │ │ │ │ │ +0000c4d0: 0a0a 2020 202a 2044 6d69 7472 6979 2041 .. * Dmitriy A │ │ │ │ │ +0000c4e0: 6e69 7369 6d6b 6f76 2028 3c61 6e69 7369 nisimkov () │ │ │ │ │ +0000c500: 0a20 2020 2a20 416c 616e 2042 6172 6e65 . * Alan Barne │ │ │ │ │ +0000c510: 7320 283c 6261 726e 6573 6140 6173 746f s (). * J │ │ │ │ │ +0000c530: 7561 6e6d 6120 4261 7272 616e 7175 6572 uanma Barranquer │ │ │ │ │ +0000c540: 6f20 283c 6c65 6b74 7540 7465 7272 612e o (). * Bobby │ │ │ │ │ +0000c560: 442e 2042 7279 616e 7420 283c 6264 6272 D. Bryant (). * Sand │ │ │ │ │ +0000c590: 6572 2043 6f78 2028 3c73 616e 6465 722e er Cox ( │ │ │ │ │ +0000c5b0: 290a 2020 202a 2053 756e 6520 4661 6c6b ). * Sune Falk │ │ │ │ │ +0000c5c0: 2028 3c73 756e 652e 6661 6c63 6b40 7465 (). * G │ │ │ │ │ +0000c5e0: 7569 6c6c 6175 6d65 2046 6f6c 6961 7264 uillaume Foliard │ │ │ │ │ +0000c5f0: 2028 3c67 7569 666f 4077 616e 6164 6f6f (). * Laure │ │ │ │ │ +0000c610: 6e74 2047 7565 7262 7920 283c 6775 6572 nt Guerby (). * David │ │ │ │ │ +0000c640: 204a 2e20 4b72 6973 746f 6c61 2028 3c44 J. Kristola (). * Dominik │ │ │ │ │ +0000c670: 204d 6164 6f6e 2028 3c64 6f6d 696e 696b Madon (). * │ │ │ │ │ +0000c690: 5061 7363 616c 204f 6272 7920 283c 702e Pascal Obry ( │ │ │ │ │ +0000c6b0: 290a 2020 202a 204e 6963 6f6c 6173 204f ). * Nicolas O │ │ │ │ │ +0000c6c0: 6c6c 696e 6765 7220 283c 4e69 636f 6c61 llinger (). * St │ │ │ │ │ +0000c6f0: e970 6861 6e65 2050 6174 7572 6561 7520 .phane Patureau │ │ │ │ │ +0000c700: 283c 7370 6174 7572 6561 406d 656c 6574 (). * Th │ │ │ │ │ +0000c730: 6f6d 6173 2051 7569 6e6f 7420 283c 7468 omas Quinot (). * Pre │ │ │ │ │ +0000c760: 6265 6e20 5261 6e64 686f 6c20 283c 7261 ben Randhol (). │ │ │ │ │ +0000c780: 2020 202a 204d 6178 696d 2052 657a 6e69 * Maxim Rezni │ │ │ │ │ +0000c790: 6b20 283c 6d61 7831 406d 6261 6e6b 2e63 k (). * Joe │ │ │ │ │ +0000c7b0: 6c20 5368 6572 7269 6c6c 2028 3c6a 6f65 l Sherrill (). * Sa │ │ │ │ │ +0000c7e0: 6d75 656c 2054 6172 6469 6575 2028 3c73 muel Tardieu () │ │ │ │ │ +0000c800: 0a0a 2020 2049 6620 796f 7520 6665 656c .. If you feel │ │ │ │ │ +0000c810: 2074 6861 7420 796f 7520 6861 7665 2062 that you have b │ │ │ │ │ +0000c820: 6565 6e20 666f 7267 6f74 7465 6e2c 2070 een forgotten, p │ │ │ │ │ +0000c830: 6c65 6173 6520 7365 6e64 206d 6520 6120 lease send me a │ │ │ │ │ +0000c840: 6d61 696c 2073 6f0a 7468 6174 2049 2063 mail so.that I c │ │ │ │ │ +0000c850: 616e 2066 6978 2069 7420 696e 2074 6865 an fix it in the │ │ │ │ │ +0000c860: 206e 6578 7420 7665 7273 696f 6e2e 0a0a next version... │ │ │ │ │ +0000c870: 2020 202a 4e6f 7465 2052 6573 6f75 7263 *Note Resourc │ │ │ │ │ +0000c880: 6573 206f 6e20 7468 6520 496e 7465 726e es on the Intern │ │ │ │ │ +0000c890: 6574 3a3a 2c20 666f 7220 686f 7720 746f et::, for how to │ │ │ │ │ +0000c8a0: 2063 6f6e 7472 6962 7574 652e 0a0a 1f0a contribute..... │ │ │ │ │ +0000c8b0: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ +0000c8c0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 5265 .info, Node: Re │ │ │ │ │ +0000c8d0: 736f 7572 6365 7320 6f6e 2074 6865 2049 sources on the I │ │ │ │ │ +0000c8e0: 6e74 6572 6e65 742c 2020 4e65 7874 3a20 nternet, Next: │ │ │ │ │ +0000c8f0: 496e 6465 782c 2020 5072 6576 3a20 436f Index, Prev: Co │ │ │ │ │ +0000c900: 6e74 7269 6275 746f 7273 2c20 2055 703a ntributors, Up: │ │ │ │ │ +0000c910: 2054 6f70 0a0a 4170 7065 6e64 6978 2042 Top..Appendix B │ │ │ │ │ +0000c920: 2052 6573 6f75 7263 6573 206f 6e20 7468 Resources on th │ │ │ │ │ +0000c930: 6520 496e 7465 726e 6574 0a2a 2a2a 2a2a e Internet.***** │ │ │ │ │ +0000c940: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ +0000c950: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a0a ***************. │ │ │ │ │ +0000c960: 0a54 6865 206c 6174 6573 7420 7665 7273 .The latest vers │ │ │ │ │ +0000c970: 696f 6e20 6f66 2041 6461 536f 636b 6574 ion of AdaSocket │ │ │ │ │ +0000c980: 7320 6361 6e20 616c 7761 7973 2062 6520 s can always be │ │ │ │ │ +0000c990: 666f 756e 6420 6174 3a0a 0a20 2020 2020 found at:.. │ │ │ │ │ +0000c9a0: 2020 2020 2020 2020 2020 3c68 7474 703a .. You can │ │ │ │ │ +0000c9e0: 7265 706f 7274 2069 7373 7565 7320 6f72 report issues or │ │ │ │ │ +0000c9f0: 2073 7562 6d69 7420 7175 6573 7469 6f6e submit question │ │ │ │ │ +0000ca00: 7320 6f6e 2047 6974 4875 6227 7320 6973 s on GitHub's is │ │ │ │ │ +0000ca10: 7375 6520 7472 6163 6b65 720a 6174 3a0a sue tracker.at:. │ │ │ │ │ +0000ca20: 0a20 2020 2020 2020 2020 3c68 7474 7073 . .. │ │ │ │ │ +0000ca60: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ +0000ca70: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ +0000ca80: 496e 6465 782c 2020 5072 6576 3a20 5265 Index, Prev: Re │ │ │ │ │ +0000ca90: 736f 7572 6365 7320 6f6e 2074 6865 2049 sources on the I │ │ │ │ │ +0000caa0: 6e74 6572 6e65 742c 2020 5570 3a20 546f nternet, Up: To │ │ │ │ │ +0000cab0: 700a 0a49 6e64 6578 0a2a 2a2a 2a2a 0a0a p..Index.*****.. │ │ │ │ │ +0000cac0: 0008 5b69 6e64 6578 0008 5d0a 2a20 4d65 ..[index..].* Me │ │ │ │ │ +0000cad0: 6e75 3a0a 0a2a 2041 6363 6570 7469 6e67 nu:..* Accepting │ │ │ │ │ +0000cae0: 2061 206e 6577 2063 6f6e 6e65 6374 696f a new connectio │ │ │ │ │ +0000caf0: 6e3a 2020 2020 2020 2020 2020 2020 4163 n: Ac │ │ │ │ │ +0000cb00: 6365 7074 5f53 6f63 6b65 7420 2870 726f cept_Socket (pro │ │ │ │ │ +0000cb10: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +0000cb20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cb30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cb40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cb50: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ │ +0000cb60: 290a 2a20 4163 6365 7074 5f53 6f63 6b65 ).* Accept_Socke │ │ │ │ │ +0000cb70: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ │ +0000cb80: 2020 2020 2020 2020 2020 2041 6363 6570 Accep │ │ │ │ │ +0000cb90: 745f 536f 636b 6574 2028 7072 6f63 6564 t_Socket (proced │ │ │ │ │ +0000cba0: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ +0000cbb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cbc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cbd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cbe0: 2020 2020 2028 6c69 6e65 2020 3929 0a2a (line 9).* │ │ │ │ │ +0000cbf0: 2041 6461 2e53 7472 6561 6d73 2e53 7472 Ada.Streams.Str │ │ │ │ │ +0000cc00: 6561 6d5f 456c 656d 656e 745f 4172 7261 eam_Element_Arra │ │ │ │ │ +0000cc10: 793a 2020 2020 2020 5261 7720 6461 7461 y: Raw data │ │ │ │ │ +0000cc20: 206d 616e 6970 756c 6174 696f 6e2e 0a20 manipulation.. │ │ │ │ │ +0000cc30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cc40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cc50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cc60: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000cc70: 696e 6520 2036 290a 2a20 4164 612e 5374 ine 6).* Ada.St │ │ │ │ │ +0000cc80: 7265 616d 732e 5374 7265 616d 5f45 6c65 reams.Stream_Ele │ │ │ │ │ +0000cc90: 6d65 6e74 5f41 7272 6179 203c 313e 3a20 ment_Array <1>: │ │ │ │ │ +0000cca0: 2052 6563 6569 7665 2028 6675 6e63 7469 Receive (functi │ │ │ │ │ +0000ccb0: 6f6e 292e 2020 2028 6c69 6e65 2032 3429 on). (line 24) │ │ │ │ │ +0000ccc0: 0a2a 2041 6461 2e53 7472 6561 6d73 2e53 .* Ada.Streams.S │ │ │ │ │ +0000ccd0: 7472 6561 6d5f 456c 656d 656e 745f 4172 tream_Element_Ar │ │ │ │ │ +0000cce0: 7261 7920 3c32 3e3a 2020 5265 6365 6976 ray <2>: Receiv │ │ │ │ │ +0000ccf0: 6520 2870 726f 6365 6475 7265 292e 2020 e (procedure). │ │ │ │ │ +0000cd00: 286c 696e 6520 3138 290a 2a20 4164 612e (line 18).* Ada. │ │ │ │ │ +0000cd10: 5374 7265 616d 732e 5374 7265 616d 5f45 Streams.Stream_E │ │ │ │ │ +0000cd20: 6c65 6d65 6e74 5f41 7272 6179 203c 333e lement_Array <3> │ │ │ │ │ +0000cd30: 3a20 2052 6563 6569 7665 5f53 6f6d 6520 : Receive_Some │ │ │ │ │ +0000cd40: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +0000cd50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cd60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cd70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cd80: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000cd90: 6520 3234 290a 2a20 4164 612e 5374 7265 e 24).* Ada.Stre │ │ │ │ │ +0000cda0: 616d 732e 5374 7265 616d 5f45 6c65 6d65 ams.Stream_Eleme │ │ │ │ │ +0000cdb0: 6e74 5f41 7272 6179 203c 343e 3a20 2053 nt_Array <4>: S │ │ │ │ │ +0000cdc0: 656e 6420 2870 726f 6365 6475 7265 292e end (procedure). │ │ │ │ │ +0000cdd0: 2020 2020 2028 6c69 6e65 2031 3829 0a2a (line 18).* │ │ │ │ │ +0000cde0: 2041 6461 2e53 7472 6561 6d73 2e53 7472 Ada.Streams.Str │ │ │ │ │ +0000cdf0: 6561 6d5f 456c 656d 656e 745f 436f 756e eam_Element_Coun │ │ │ │ │ +0000ce00: 743a 2020 2020 2020 5265 6365 6976 6520 t: Receive │ │ │ │ │ +0000ce10: 2866 756e 6374 696f 6e29 2e20 2020 286c (function). (l │ │ │ │ │ +0000ce20: 696e 6520 3234 290a 2a20 4164 612e 5374 ine 24).* Ada.St │ │ │ │ │ +0000ce30: 7265 616d 732e 5374 7265 616d 5f45 6c65 reams.Stream_Ele │ │ │ │ │ +0000ce40: 6d65 6e74 5f43 6f75 6e74 203c 313e 3a20 ment_Count <1>: │ │ │ │ │ +0000ce50: 2052 6563 6569 7665 5f53 6f6d 6520 2870 Receive_Some (p │ │ │ │ │ +0000ce60: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +0000ce70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cea0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000ceb0: 3234 290a 2a20 4164 6153 6f63 6b65 7473 24).* AdaSockets │ │ │ │ │ +0000cec0: 2070 7265 7365 6e74 6174 696f 6e3a 2020 presentation: │ │ │ │ │ +0000ced0: 2020 2020 2020 2020 2020 2020 2057 6861 Wha │ │ │ │ │ +0000cee0: 7420 6973 2041 6461 536f 636b 6574 733f t is AdaSockets? │ │ │ │ │ +0000cef0: 2e20 2028 6c69 6e65 2020 3629 0a2a 2041 . (line 6).* A │ │ │ │ │ +0000cf00: 6464 7265 7373 3a20 2020 2020 2020 2020 ddress: │ │ │ │ │ +0000cf10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf20: 2020 2020 2020 536f 636b 6574 732e 4e61 Sockets.Na │ │ │ │ │ +0000cf30: 6d69 6e67 2070 6163 6b61 6765 2e0a 2020 ming package.. │ │ │ │ │ +0000cf40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf70: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +0000cf80: 6e65 2020 3929 0a2a 2041 6464 7265 7373 ne 9).* Address │ │ │ │ │ +0000cf90: 5f41 7272 6179 3a20 2020 2020 2020 2020 _Array: │ │ │ │ │ +0000cfa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cfb0: 536f 636b 6574 732e 4e61 6d69 6e67 2070 Sockets.Naming p │ │ │ │ │ +0000cfc0: 6163 6b61 6765 2e0a 2020 2020 2020 2020 ackage.. │ │ │ │ │ +0000cfd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cfe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d000: 2020 2020 2020 2028 6c69 6e65 2031 3729 (line 17) │ │ │ │ │ +0000d010: 0a2a 2041 6464 7265 7373 5f43 6f6d 706f .* Address_Compo │ │ │ │ │ +0000d020: 6e65 6e74 3a20 2020 2020 2020 2020 2020 nent: │ │ │ │ │ +0000d030: 2020 2020 2020 2020 2020 536f 636b 6574 Socket │ │ │ │ │ +0000d040: 732e 4e61 6d69 6e67 2070 6163 6b61 6765 s.Naming package │ │ │ │ │ +0000d050: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +0000d060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d080: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d090: 2028 6c69 6e65 2032 3129 0a2a 2041 6464 (line 21).* Add │ │ │ │ │ +0000d0a0: 7265 7373 5f4f 663a 2020 2020 2020 2020 ress_Of: │ │ │ │ │ +0000d0b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d0c0: 2020 2020 4164 6472 6573 735f 4f66 2028 Address_Of ( │ │ │ │ │ +0000d0d0: 6675 6e63 7469 6f6e 292e 0a20 2020 2020 function).. │ │ │ │ │ +0000d0e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d0f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d110: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000d120: 2039 290a 2a20 4146 5f49 4e45 543a 2020 9).* AF_INET: │ │ │ │ │ +0000d130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d140: 2020 2020 2020 2020 2020 2020 2053 6f63 Soc │ │ │ │ │ +0000d150: 6b65 7420 2870 726f 6365 6475 7265 292e ket (procedure). │ │ │ │ │ +0000d160: 2020 2028 6c69 6e65 2032 3029 0a2a 2041 (line 20).* A │ │ │ │ │ +0000d170: 6e79 5f41 6464 7265 7373 3a20 2020 2020 ny_Address: │ │ │ │ │ +0000d180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d190: 2020 2020 2020 416e 795f 4164 6472 6573 Any_Addres │ │ │ │ │ +0000d1a0: 7320 2866 756e 6374 696f 6e29 2e0a 2020 s (function).. │ │ │ │ │ +0000d1b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d1c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d1d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d1e0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +0000d1f0: 6e65 2020 3929 0a2a 2041 7373 6967 6e69 ne 9).* Assigni │ │ │ │ │ +0000d200: 6e67 2061 206c 6f63 616c 2070 6f72 743a ng a local port: │ │ │ │ │ +0000d210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d220: 4269 6e64 2028 7072 6f63 6564 7572 6529 Bind (procedure) │ │ │ │ │ +0000d230: 2e20 2020 2020 286c 696e 6520 2036 290a . (line 6). │ │ │ │ │ +0000d240: 2a20 4269 6e64 3a20 2020 2020 2020 2020 * Bind: │ │ │ │ │ +0000d250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d260: 2020 2020 2020 2020 2042 696e 6420 2870 Bind (p │ │ │ │ │ +0000d270: 726f 6365 6475 7265 292e 2020 2020 2028 rocedure). ( │ │ │ │ │ +0000d280: 6c69 6e65 2020 3929 0a2a 2042 696e 6469 line 9).* Bindi │ │ │ │ │ +0000d290: 6e67 2061 2073 6f63 6b65 743a 2020 2020 ng a socket: │ │ │ │ │ +0000d2a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d2b0: 2020 4269 6e64 2028 7072 6f63 6564 7572 Bind (procedur │ │ │ │ │ +0000d2c0: 6529 2e20 2020 2020 286c 696e 6520 2036 e). (line 6 │ │ │ │ │ +0000d2d0: 290a 2a20 426f 7468 3a20 2020 2020 2020 ).* Both: │ │ │ │ │ +0000d2e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d2f0: 2020 2020 2020 2020 2020 2053 6875 7464 Shutd │ │ │ │ │ +0000d300: 6f77 6e20 2870 726f 6365 6475 7265 292e own (procedure). │ │ │ │ │ +0000d310: 2028 6c69 6e65 2031 3729 0a2a 2043 6c6f (line 17).* Clo │ │ │ │ │ +0000d320: 7369 6e67 2061 2073 6f63 6b65 743a 2020 sing a socket: │ │ │ │ │ +0000d330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d340: 2020 2020 5368 7574 646f 776e 2028 7072 Shutdown (pr │ │ │ │ │ +0000d350: 6f63 6564 7572 6529 2e20 286c 696e 6520 ocedure). (line │ │ │ │ │ +0000d360: 2036 290a 2a20 436f 6d70 6172 6169 736f 6).* Comparaiso │ │ │ │ │ +0000d370: 6e20 7769 7468 2047 4e41 542e 536f 636b n with GNAT.Sock │ │ │ │ │ +0000d380: 6574 733a 2020 2020 2020 2020 2057 6861 ets: Wha │ │ │ │ │ +0000d390: 7420 6973 2041 6461 536f 636b 6574 733f t is AdaSockets? │ │ │ │ │ +0000d3a0: 2e20 2028 6c69 6e65 2020 3629 0a2a 2043 . (line 6).* C │ │ │ │ │ +0000d3b0: 6f6e 6e65 6374 3a20 2020 2020 2020 2020 onnect: │ │ │ │ │ +0000d3c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d3d0: 2020 2020 2020 436f 6e6e 6563 7420 2870 Connect (p │ │ │ │ │ +0000d3e0: 726f 6365 6475 7265 292e 2020 286c 696e rocedure). (lin │ │ │ │ │ +0000d3f0: 6520 2039 290a 2a20 436f 6e6e 6563 7469 e 9).* Connecti │ │ │ │ │ +0000d400: 6e67 2061 2073 6f63 6b65 743a 2020 2020 ng a socket: │ │ │ │ │ +0000d410: 2020 2020 2020 2020 2020 2020 2020 2043 C │ │ │ │ │ +0000d420: 6f6e 6e65 6374 2028 7072 6f63 6564 7572 onnect (procedur │ │ │ │ │ +0000d430: 6529 2e20 2028 6c69 6e65 2020 3629 0a2a e). (line 6).* │ │ │ │ │ +0000d440: 2043 6f6e 6e65 6374 696f 6e5f 436c 6f73 Connection_Clos │ │ │ │ │ +0000d450: 6564 3a20 2020 2020 2020 2020 2020 2020 ed: │ │ │ │ │ +0000d460: 2020 2020 2020 2020 4765 7420 2866 756e Get (fun │ │ │ │ │ +0000d470: 6374 696f 6e29 2e20 2020 2020 2020 286c ction). (l │ │ │ │ │ +0000d480: 696e 6520 3335 290a 2a20 436f 6e6e 6563 ine 35).* Connec │ │ │ │ │ +0000d490: 7469 6f6e 5f43 6c6f 7365 6420 3c31 3e3a tion_Closed <1>: │ │ │ │ │ +0000d4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d4b0: 2047 6574 5f43 6861 7220 2866 756e 6374 Get_Char (funct │ │ │ │ │ +0000d4c0: 696f 6e29 2e20 2028 6c69 6e65 2032 3429 ion). (line 24) │ │ │ │ │ +0000d4d0: 0a2a 2043 6f6e 6e65 6374 696f 6e5f 436c .* Connection_Cl │ │ │ │ │ +0000d4e0: 6f73 6564 203c 323e 3a20 2020 2020 2020 osed <2>: │ │ │ │ │ +0000d4f0: 2020 2020 2020 2020 2020 4765 745f 4c69 Get_Li │ │ │ │ │ +0000d500: 6e65 2028 6675 6e63 7469 6f6e 292e 2020 ne (function). │ │ │ │ │ +0000d510: 286c 696e 6520 3333 290a 2a20 436f 6e6e (line 33).* Conn │ │ │ │ │ +0000d520: 6563 7469 6f6e 5f43 6c6f 7365 6420 3c33 ection_Closed <3 │ │ │ │ │ +0000d530: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +0000d540: 2020 2047 6574 5f4c 696e 6520 2870 726f Get_Line (pro │ │ │ │ │ +0000d550: 6365 6475 7265 292e 2028 6c69 6e65 2032 cedure). (line 2 │ │ │ │ │ +0000d560: 3829 0a2a 2043 6f6e 6e65 6374 696f 6e5f 8).* Connection_ │ │ │ │ │ +0000d570: 436c 6f73 6564 203c 343e 3a20 2020 2020 Closed <4>: │ │ │ │ │ +0000d580: 2020 2020 2020 2020 2020 2020 4e65 775f New_ │ │ │ │ │ +0000d590: 4c69 6e65 2028 7072 6f63 6564 7572 6529 Line (procedure) │ │ │ │ │ +0000d5a0: 2e20 286c 696e 6520 3231 290a 2a20 436f . (line 21).* Co │ │ │ │ │ +0000d5b0: 6e6e 6563 7469 6f6e 5f43 6c6f 7365 6420 nnection_Closed │ │ │ │ │ +0000d5c0: 3c35 3e3a 2020 2020 2020 2020 2020 2020 <5>: │ │ │ │ │ +0000d5d0: 2020 2020 2050 7574 2028 7072 6f63 6564 Put (proced │ │ │ │ │ +0000d5e0: 7572 6529 2e20 2020 2020 2028 6c69 6e65 ure). (line │ │ │ │ │ +0000d5f0: 2032 3229 0a2a 2043 6f6e 6e65 6374 696f 22).* Connectio │ │ │ │ │ +0000d600: 6e5f 436c 6f73 6564 203c 363e 3a20 2020 n_Closed <6>: │ │ │ │ │ +0000d610: 2020 2020 2020 2020 2020 2020 2020 5075 Pu │ │ │ │ │ +0000d620: 745f 4c69 6e65 2028 7072 6f63 6564 7572 t_Line (procedur │ │ │ │ │ +0000d630: 6529 2e20 286c 696e 6520 3232 290a 2a20 e). (line 22).* │ │ │ │ │ +0000d640: 436f 6e6e 6563 7469 6f6e 5f43 6c6f 7365 Connection_Close │ │ │ │ │ +0000d650: 6420 3c37 3e3a 2020 2020 2020 2020 2020 d <7>: │ │ │ │ │ +0000d660: 2020 2020 2020 2052 6563 6569 7665 2028 Receive ( │ │ │ │ │ +0000d670: 6675 6e63 7469 6f6e 292e 2020 2028 6c69 function). (li │ │ │ │ │ +0000d680: 6e65 2033 3229 0a2a 2043 6f6e 6e65 6374 ne 32).* Connect │ │ │ │ │ +0000d690: 696f 6e5f 436c 6f73 6564 203c 383e 3a20 ion_Closed <8>: │ │ │ │ │ +0000d6a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d6b0: 5265 6365 6976 6520 2870 726f 6365 6475 Receive (procedu │ │ │ │ │ +0000d6c0: 7265 292e 2020 286c 696e 6520 3235 290a re). (line 25). │ │ │ │ │ +0000d6d0: 2a20 436f 6e6e 6563 7469 6f6e 5f43 6c6f * Connection_Clo │ │ │ │ │ +0000d6e0: 7365 6420 3c39 3e3a 2020 2020 2020 2020 sed <9>: │ │ │ │ │ +0000d6f0: 2020 2020 2020 2020 2052 6563 6569 7665 Receive │ │ │ │ │ +0000d700: 5f53 6f6d 6520 2870 726f 6365 6475 7265 _Some (procedure │ │ │ │ │ +0000d710: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +0000d720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d750: 2020 286c 696e 6520 3330 290a 2a20 436f (line 30).* Co │ │ │ │ │ +0000d760: 6e6e 6563 7469 6f6e 5f43 6c6f 7365 6420 nnection_Closed │ │ │ │ │ +0000d770: 3c31 303e 3a20 2020 2020 2020 2020 2020 <10>: │ │ │ │ │ +0000d780: 2020 2020 2053 656e 6420 2870 726f 6365 Send (proce │ │ │ │ │ +0000d790: 6475 7265 292e 2020 2020 2028 6c69 6e65 dure). (line │ │ │ │ │ +0000d7a0: 2032 3229 0a2a 2043 6f6e 6e65 6374 696f 22).* Connectio │ │ │ │ │ +0000d7b0: 6e5f 5265 6675 7365 643a 2020 2020 2020 n_Refused: │ │ │ │ │ +0000d7c0: 2020 2020 2020 2020 2020 2020 2020 436f Co │ │ │ │ │ +0000d7d0: 6e6e 6563 7420 2870 726f 6365 6475 7265 nnect (procedure │ │ │ │ │ +0000d7e0: 292e 2020 286c 696e 6520 3236 290a 2a20 ). (line 26).* │ │ │ │ │ +0000d7f0: 436f 6e74 7269 6275 7469 6e67 3a20 2020 Contributing: │ │ │ │ │ +0000d800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d810: 2020 2020 2020 2043 6f6e 7472 6962 7574 Contribut │ │ │ │ │ +0000d820: 6f72 732e 2020 2020 2020 2020 2028 6c69 ors. (li │ │ │ │ │ +0000d830: 6e65 2020 3629 0a2a 2043 6f6e 7472 6962 ne 6).* Contrib │ │ │ │ │ +0000d840: 7574 696e 6720 3c31 3e3a 2020 2020 2020 uting <1>: │ │ │ │ │ +0000d850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d860: 5265 736f 7572 6365 7320 6f6e 2074 6865 Resources on the │ │ │ │ │ +0000d870: 2049 6e74 6572 6e65 742e 0a20 2020 2020 Internet.. │ │ │ │ │ +0000d880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d8a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d8b0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000d8c0: 2036 290a 2a20 4352 3a20 2020 2020 2020 6).* CR: │ │ │ │ │ +0000d8d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d8e0: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000d8f0: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ +0000d900: 2e20 2028 6c69 6e65 2032 3229 0a2a 2043 . (line 22).* C │ │ │ │ │ +0000d910: 5220 3c31 3e3a 2020 2020 2020 2020 2020 R <1>: │ │ │ │ │ +0000d920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d930: 2020 2020 2020 4765 745f 4c69 6e65 2028 Get_Line ( │ │ │ │ │ +0000d940: 7072 6f63 6564 7572 6529 2e20 286c 696e procedure). (lin │ │ │ │ │ +0000d950: 6520 3139 290a 2a20 4352 203c 323e 3a20 e 19).* CR <2>: │ │ │ │ │ +0000d960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d970: 2020 2020 2020 2020 2020 2020 2020 204e N │ │ │ │ │ +0000d980: 6577 5f4c 696e 6520 2870 726f 6365 6475 ew_Line (procedu │ │ │ │ │ +0000d990: 7265 292e 2028 6c69 6e65 2031 3829 0a2a re). (line 18).* │ │ │ │ │ +0000d9a0: 2043 7265 6174 655f 4d75 6c74 6963 6173 Create_Multicas │ │ │ │ │ +0000d9b0: 745f 536f 636b 6574 3a20 2020 2020 2020 t_Socket: │ │ │ │ │ +0000d9c0: 2020 2020 2020 2020 5365 7474 696e 6720 Setting │ │ │ │ │ +0000d9d0: 7570 206d 756c 7469 6361 7374 2073 6f63 up multicast soc │ │ │ │ │ +0000d9e0: 6b65 7473 2e0a 2020 2020 2020 2020 2020 kets.. │ │ │ │ │ +0000d9f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000da00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000da10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000da20: 2020 2020 2028 6c69 6e65 2031 3629 0a2a (line 16).* │ │ │ │ │ +0000da30: 2043 7265 6174 655f 4d75 6c74 6963 6173 Create_Multicas │ │ │ │ │ +0000da40: 745f 536f 636b 6574 203c 313e 3a20 2020 t_Socket <1>: │ │ │ │ │ +0000da50: 2020 2020 2020 2020 4372 6561 7465 5f4d Create_M │ │ │ │ │ +0000da60: 756c 7469 6361 7374 5f53 6f63 6b65 7420 ulticast_Socket │ │ │ │ │ +0000da70: 2866 756e 6374 696f 6e29 2e0a 2020 2020 (function).. │ │ │ │ │ +0000da80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000da90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000daa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dab0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000dac0: 2020 3929 0a2a 2043 7265 6174 655f 4d75 9).* Create_Mu │ │ │ │ │ +0000dad0: 6c74 6963 6173 745f 536f 636b 6574 203c lticast_Socket < │ │ │ │ │ +0000dae0: 323e 3a20 2020 2020 2020 2020 2020 2e20 2>: . │ │ │ │ │ +0000daf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000db00: 2020 2020 286c 696e 6520 3734 290a 2a20 (line 74).* │ │ │ │ │ +0000db10: 4372 6561 7469 6e67 2061 206d 756c 7469 Creating a multi │ │ │ │ │ +0000db20: 6361 7374 2073 6f63 6b65 743a 2020 2020 cast socket: │ │ │ │ │ +0000db30: 2020 2020 2020 2053 6574 7469 6e67 2075 Setting u │ │ │ │ │ +0000db40: 7020 6d75 6c74 6963 6173 7420 736f 636b p multicast sock │ │ │ │ │ +0000db50: 6574 732e 0a20 2020 2020 2020 2020 2020 ets.. │ │ │ │ │ +0000db60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000db70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000db80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000db90: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ +0000dba0: 4372 6561 7469 6e67 2061 206d 756c 7469 Creating a multi │ │ │ │ │ +0000dbb0: 6361 7374 2073 6f63 6b65 7420 3c31 3e3a cast socket <1>: │ │ │ │ │ +0000dbc0: 2020 2020 2020 2043 7265 6174 655f 4d75 Create_Mu │ │ │ │ │ +0000dbd0: 6c74 6963 6173 745f 536f 636b 6574 2028 lticast_Socket ( │ │ │ │ │ +0000dbe0: 6675 6e63 7469 6f6e 292e 0a20 2020 2020 function).. │ │ │ │ │ +0000dbf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dc00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dc10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dc20: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000dc30: 2036 290a 2a20 4372 6561 7469 6e67 2061 6).* Creating a │ │ │ │ │ +0000dc40: 206d 756c 7469 6361 7374 2073 6f63 6b65 multicast socke │ │ │ │ │ +0000dc50: 7420 3c32 3e3a 2020 2020 2020 202e 2020 t <2>: . │ │ │ │ │ +0000dc60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dc70: 2020 2028 6c69 6e65 2037 3129 0a2a 2043 (line 71).* C │ │ │ │ │ +0000dc80: 7265 6174 696e 6720 6120 7365 7276 6572 reating a server │ │ │ │ │ +0000dc90: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000dca0: 2020 2020 2020 4269 6e64 2028 7072 6f63 Bind (proc │ │ │ │ │ +0000dcb0: 6564 7572 6529 2e20 2020 2020 286c 696e edure). (lin │ │ │ │ │ +0000dcc0: 6520 2036 290a 2a20 4372 6561 7469 6e67 e 6).* Creating │ │ │ │ │ +0000dcd0: 2061 2073 6f63 6b65 743a 2020 2020 2020 a socket: │ │ │ │ │ +0000dce0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +0000dcf0: 6574 7469 6e67 2075 7020 756e 6963 6173 etting up unicas │ │ │ │ │ +0000dd00: 7420 736f 636b 6574 732e 0a20 2020 2020 t sockets.. │ │ │ │ │ +0000dd10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dd20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dd30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dd40: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000dd50: 2036 290a 2a20 4372 6561 7469 6e67 2061 6).* Creating a │ │ │ │ │ +0000dd60: 2073 6f63 6b65 7420 3c31 3e3a 2020 2020 socket <1>: │ │ │ │ │ +0000dd70: 2020 2020 2020 2020 2020 2020 2053 6f63 Soc │ │ │ │ │ +0000dd80: 6b65 7420 2870 726f 6365 6475 7265 292e ket (procedure). │ │ │ │ │ +0000dd90: 2020 2028 6c69 6e65 2020 3629 0a2a 2043 (line 6).* C │ │ │ │ │ +0000dda0: 7265 6174 696e 6720 6120 736f 636b 6574 reating a socket │ │ │ │ │ +0000ddb0: 203c 323e 3a20 2020 2020 2020 2020 2020 <2>: │ │ │ │ │ +0000ddc0: 2020 2020 2020 4372 6561 7465 5f4d 756c Create_Mul │ │ │ │ │ +0000ddd0: 7469 6361 7374 5f53 6f63 6b65 7420 2866 ticast_Socket (f │ │ │ │ │ +0000dde0: 756e 6374 696f 6e29 2e0a 2020 2020 2020 unction).. │ │ │ │ │ +0000ddf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000de00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000de10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000de20: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ +0000de30: 3629 0a2a 2043 7265 6174 696e 6720 6120 6).* Creating a │ │ │ │ │ +0000de40: 736f 636b 6574 203c 333e 3a20 2020 2020 socket <3>: │ │ │ │ │ +0000de50: 2020 2020 2020 2020 2020 2020 2e20 2020 . │ │ │ │ │ +0000de60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000de70: 2020 286c 696e 6520 3731 290a 2a20 4372 (line 71).* Cr │ │ │ │ │ +0000de80: 6561 7469 6e67 2061 2054 4350 2073 6f63 eating a TCP soc │ │ │ │ │ +0000de90: 6b65 743a 2020 2020 2020 2020 2020 2020 ket: │ │ │ │ │ +0000dea0: 2020 2020 2053 6574 7469 6e67 2075 7020 Setting up │ │ │ │ │ +0000deb0: 756e 6963 6173 7420 736f 636b 6574 732e unicast sockets. │ │ │ │ │ +0000dec0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000ded0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000def0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000df00: 286c 696e 6520 2036 290a 2a20 4372 6561 (line 6).* Crea │ │ │ │ │ +0000df10: 7469 6e67 2061 2055 4450 2073 6f63 6b65 ting a UDP socke │ │ │ │ │ +0000df20: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ │ +0000df30: 2020 2053 6574 7469 6e67 2075 7020 756e Setting up un │ │ │ │ │ +0000df40: 6963 6173 7420 736f 636b 6574 732e 0a20 icast sockets.. │ │ │ │ │ +0000df50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000df60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000df70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000df80: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000df90: 696e 6520 2036 290a 2a20 4372 6561 7469 ine 6).* Creati │ │ │ │ │ +0000dfa0: 6e67 2061 2075 6e69 6361 7374 2073 6f63 ng a unicast soc │ │ │ │ │ +0000dfb0: 6b65 743a 2020 2020 2020 2020 2020 2020 ket: │ │ │ │ │ +0000dfc0: 2053 6574 7469 6e67 2075 7020 756e 6963 Setting up unic │ │ │ │ │ +0000dfd0: 6173 7420 736f 636b 6574 732e 0a20 2020 ast sockets.. │ │ │ │ │ +0000dfe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e010: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000e020: 6520 2036 290a 2a20 4573 7461 626c 6973 e 6).* Establis │ │ │ │ │ +0000e030: 6869 6e67 2061 206c 6973 7465 6e20 7175 hing a listen qu │ │ │ │ │ +0000e040: 6575 653a 2020 2020 2020 2020 2020 204c eue: L │ │ │ │ │ +0000e050: 6973 7465 6e20 2870 726f 6365 6475 7265 isten (procedure │ │ │ │ │ +0000e060: 292e 2020 2028 6c69 6e65 2020 3629 0a2a ). (line 6).* │ │ │ │ │ +0000e070: 2046 696e 6469 6e67 2041 6461 536f 636b Finding AdaSock │ │ │ │ │ +0000e080: 6574 7320 6f6e 2074 6865 2049 6e74 6572 ets on the Inter │ │ │ │ │ +0000e090: 6e65 743a 2020 2020 5265 736f 7572 6365 net: Resource │ │ │ │ │ +0000e0a0: 7320 6f6e 2074 6865 2049 6e74 6572 6e65 s on the Interne │ │ │ │ │ +0000e0b0: 742e 0a20 2020 2020 2020 2020 2020 2020 t.. │ │ │ │ │ +0000e0c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e0d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e0e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e0f0: 2020 286c 696e 6520 2036 290a 2a20 4765 (line 6).* Ge │ │ │ │ │ +0000e100: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ │ +0000e110: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e120: 2020 2020 2047 6574 2028 6675 6e63 7469 Get (functi │ │ │ │ │ +0000e130: 6f6e 292e 2020 2020 2020 2028 6c69 6e65 on). (line │ │ │ │ │ +0000e140: 2020 3929 0a2a 2047 6574 736f 636b 6f70 9).* Getsockop │ │ │ │ │ +0000e150: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ │ +0000e160: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ +0000e170: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ +0000e180: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ +0000e190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e1a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e1b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e1c0: 2020 2020 2028 6c69 6e65 2020 3929 0a2a (line 9).* │ │ │ │ │ +0000e1d0: 2047 6574 5f43 6861 723a 2020 2020 2020 Get_Char: │ │ │ │ │ +0000e1e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e1f0: 2020 2020 2020 2020 4765 745f 4368 6172 Get_Char │ │ │ │ │ +0000e200: 2028 6675 6e63 7469 6f6e 292e 2020 286c (function). (l │ │ │ │ │ +0000e210: 696e 6520 2039 290a 2a20 4765 745f 4c69 ine 9).* Get_Li │ │ │ │ │ +0000e220: 6e65 3a20 2020 2020 2020 2020 2020 2020 ne: │ │ │ │ │ +0000e230: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e240: 2047 6574 5f4c 696e 6520 2866 756e 6374 Get_Line (funct │ │ │ │ │ +0000e250: 696f 6e29 2e20 2028 6c69 6e65 2020 3929 ion). (line 9) │ │ │ │ │ +0000e260: 0a2a 2047 6574 5f4c 696e 6520 3c31 3e3a .* Get_Line <1>: │ │ │ │ │ +0000e270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e280: 2020 2020 2020 2020 2020 4765 745f 4c69 Get_Li │ │ │ │ │ +0000e290: 6e65 2028 7072 6f63 6564 7572 6529 2e20 ne (procedure). │ │ │ │ │ +0000e2a0: 286c 696e 6520 2039 290a 2a20 4765 745f (line 9).* Get_ │ │ │ │ │ +0000e2b0: 5065 6572 5f41 6464 723a 2020 2020 2020 Peer_Addr: │ │ │ │ │ +0000e2c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e2d0: 2020 2047 6574 5f50 6565 725f 4164 6472 Get_Peer_Addr │ │ │ │ │ +0000e2e0: 2028 6675 6e63 7469 6f6e 292e 0a20 2020 (function).. │ │ │ │ │ +0000e2f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e320: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000e330: 6520 2039 290a 2a20 4765 745f 5065 6572 e 9).* Get_Peer │ │ │ │ │ +0000e340: 5f50 6f72 743a 2020 2020 2020 2020 2020 _Port: │ │ │ │ │ +0000e350: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +0000e360: 6574 5f50 6565 725f 506f 7274 2028 6675 et_Peer_Port (fu │ │ │ │ │ +0000e370: 6e63 7469 6f6e 292e 0a20 2020 2020 2020 nction).. │ │ │ │ │ +0000e380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e3a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e3b0: 2020 2020 2020 2020 286c 696e 6520 2039 (line 9 │ │ │ │ │ +0000e3c0: 290a 2a20 4765 745f 5265 6365 6976 655f ).* Get_Receive_ │ │ │ │ │ +0000e3d0: 5175 6575 655f 5369 7a65 3a20 2020 2020 Queue_Size: │ │ │ │ │ +0000e3e0: 2020 2020 2020 2020 2020 2047 6574 5f52 Get_R │ │ │ │ │ +0000e3f0: 6563 6569 7665 5f51 7565 7565 5f53 697a eceive_Queue_Siz │ │ │ │ │ +0000e400: 6520 2866 756e 6374 696f 6e29 2e0a 2020 e (function).. │ │ │ │ │ +0000e410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e420: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e440: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +0000e450: 6e65 2020 3929 0a2a 2047 6574 5f53 656e ne 9).* Get_Sen │ │ │ │ │ +0000e460: 645f 5175 6575 655f 5369 7a65 3a20 2020 d_Queue_Size: │ │ │ │ │ +0000e470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e480: 4765 745f 5365 6e64 5f51 7565 7565 5f53 Get_Send_Queue_S │ │ │ │ │ +0000e490: 697a 6520 2866 756e 6374 696f 6e29 2e0a ize (function).. │ │ │ │ │ +0000e4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e4b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e4c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e4d0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000e4e0: 6c69 6e65 2020 3929 0a2a 2047 6574 5f53 line 9).* Get_S │ │ │ │ │ +0000e4f0: 6f63 6b5f 4164 6472 3a20 2020 2020 2020 ock_Addr: │ │ │ │ │ +0000e500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e510: 2020 4765 745f 536f 636b 5f41 6464 7220 Get_Sock_Addr │ │ │ │ │ +0000e520: 2866 756e 6374 696f 6e29 2e0a 2020 2020 (function).. │ │ │ │ │ +0000e530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e560: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000e570: 2020 3929 0a2a 2047 6574 5f53 6f63 6b5f 9).* Get_Sock_ │ │ │ │ │ +0000e580: 506f 7274 3a20 2020 2020 2020 2020 2020 Port: │ │ │ │ │ +0000e590: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ +0000e5a0: 745f 536f 636b 5f50 6f72 7420 2866 756e t_Sock_Port (fun │ │ │ │ │ +0000e5b0: 6374 696f 6e29 2e0a 2020 2020 2020 2020 ction).. │ │ │ │ │ +0000e5c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e5d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e5e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e5f0: 2020 2020 2020 2028 6c69 6e65 2020 3929 (line 9) │ │ │ │ │ +0000e600: 0a2a 2047 726f 7570 2063 6f6d 6d75 6e69 .* Group communi │ │ │ │ │ +0000e610: 6361 7469 6f6e 3a20 2020 2020 2020 2020 cation: │ │ │ │ │ +0000e620: 2020 2020 2020 2020 2020 5365 7474 696e Settin │ │ │ │ │ +0000e630: 6720 7570 206d 756c 7469 6361 7374 2073 g up multicast s │ │ │ │ │ +0000e640: 6f63 6b65 7473 2e0a 2020 2020 2020 2020 ockets.. │ │ │ │ │ +0000e650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e670: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e680: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ │ +0000e690: 0a2a 2048 616e 646c 696e 6720 6120 6e65 .* Handling a ne │ │ │ │ │ +0000e6a0: 7720 636f 6e6e 6563 7469 6f6e 3a20 2020 w connection: │ │ │ │ │ +0000e6b0: 2020 2020 2020 2020 2020 4163 6365 7074 Accept │ │ │ │ │ +0000e6c0: 5f53 6f63 6b65 7420 2870 726f 6365 6475 _Socket (procedu │ │ │ │ │ +0000e6d0: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +0000e6e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e6f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e710: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ +0000e720: 486f 7374 5f45 6e74 7279 3a20 2020 2020 Host_Entry: │ │ │ │ │ +0000e730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e740: 2020 2020 2020 2053 6f63 6b65 7473 2e4e Sockets.N │ │ │ │ │ +0000e750: 616d 696e 6720 7061 636b 6167 652e 0a20 aming package.. │ │ │ │ │ +0000e760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e780: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e790: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000e7a0: 696e 6520 3235 290a 2a20 486f 7374 5f4e ine 25).* Host_N │ │ │ │ │ +0000e7b0: 616d 653a 2020 2020 2020 2020 2020 2020 ame: │ │ │ │ │ +0000e7c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e7d0: 2048 6f73 745f 4e61 6d65 2028 6675 6e63 Host_Name (func │ │ │ │ │ +0000e7e0: 7469 6f6e 292e 2028 6c69 6e65 2020 3929 tion). (line 9) │ │ │ │ │ +0000e7f0: 0a2a 2049 6d61 6765 3a20 2020 2020 2020 .* Image: │ │ │ │ │ +0000e800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e810: 2020 2020 2020 2020 2020 496d 6167 6520 Image │ │ │ │ │ +0000e820: 2866 756e 6374 696f 6e29 2e20 2020 2020 (function). │ │ │ │ │ +0000e830: 286c 696e 6520 2039 290a 2a20 496e 666f (line 9).* Info │ │ │ │ │ +0000e840: 5f4f 665f 4e61 6d65 5f4f 725f 4950 3a20 _Of_Name_Or_IP: │ │ │ │ │ +0000e850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e860: 2020 2049 6e66 6f5f 4f66 5f4e 616d 655f Info_Of_Name_ │ │ │ │ │ +0000e870: 4f72 5f49 5020 2866 756e 6374 696f 6e29 Or_IP (function) │ │ │ │ │ +0000e880: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +0000e890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e8a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e8b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e8c0: 2028 6c69 6e65 2020 3929 0a2a 2049 6e73 (line 9).* Ins │ │ │ │ │ +0000e8d0: 7461 6c6c 696e 6720 4164 6153 6f63 6b65 talling AdaSocke │ │ │ │ │ +0000e8e0: 7473 3a20 2020 2020 2020 2020 2020 2020 ts: │ │ │ │ │ +0000e8f0: 2020 2020 496e 7374 616c 6c69 6e67 2041 Installing A │ │ │ │ │ +0000e900: 6461 536f 636b 6574 732e 0a20 2020 2020 daSockets.. │ │ │ │ │ +0000e910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e940: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000e950: 2036 290a 2a20 4950 5052 4f54 4f5f 4950 6).* IPPROTO_IP │ │ │ │ │ +0000e960: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000e970: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000e980: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +0000e990: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +0000e9a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e9b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e9c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e9d0: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ +0000e9e0: 4950 5052 4f54 4f5f 4950 203c 313e 3a20 IPPROTO_IP <1>: │ │ │ │ │ +0000e9f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ea00: 2020 2020 2020 2053 6574 736f 636b 6f70 Setsockop │ │ │ │ │ +0000ea10: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +0000ea20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ea30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ea40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ea50: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000ea60: 696e 6520 3231 290a 2a20 4950 5f41 4444 ine 21).* IP_ADD │ │ │ │ │ +0000ea70: 5f4d 454d 4245 5253 4849 503a 2020 2020 _MEMBERSHIP: │ │ │ │ │ +0000ea80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ea90: 2047 6574 736f 636b 6f70 7420 2870 726f Getsockopt (pro │ │ │ │ │ +0000eaa0: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +0000eab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ead0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eae0: 2020 2020 2020 2020 286c 696e 6520 3231 (line 21 │ │ │ │ │ +0000eaf0: 290a 2a20 4950 5f41 4444 5f4d 454d 4245 ).* IP_ADD_MEMBE │ │ │ │ │ +0000eb00: 5253 4849 5020 3c31 3e3a 2020 2020 2020 RSHIP <1>: │ │ │ │ │ +0000eb10: 2020 2020 2020 2020 2020 2053 6574 736f Setso │ │ │ │ │ +0000eb20: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +0000eb30: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +0000eb40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eb50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eb60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eb70: 2020 286c 696e 6520 3231 290a 2a20 4950 (line 21).* IP │ │ │ │ │ +0000eb80: 5f44 524f 505f 4d45 4d42 4552 5348 4950 _DROP_MEMBERSHIP │ │ │ │ │ +0000eb90: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000eba0: 2020 2020 2047 6574 736f 636b 6f70 7420 Getsockopt │ │ │ │ │ +0000ebb0: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +0000ebc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ebd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ebe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ebf0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000ec00: 6520 3231 290a 2a20 4950 5f44 524f 505f e 21).* IP_DROP_ │ │ │ │ │ +0000ec10: 4d45 4d42 4552 5348 4950 203c 313e 3a20 MEMBERSHIP <1>: │ │ │ │ │ +0000ec20: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +0000ec30: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +0000ec40: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +0000ec50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec80: 2020 2020 2020 286c 696e 6520 3231 290a (line 21). │ │ │ │ │ +0000ec90: 2a20 4950 5f4d 554c 5449 4341 5354 5f4c * IP_MULTICAST_L │ │ │ │ │ +0000eca0: 4f4f 503a 2020 2020 2020 2020 2020 2020 OOP: │ │ │ │ │ +0000ecb0: 2020 2020 2020 2020 2047 6574 736f 636b Getsock │ │ │ │ │ +0000ecc0: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +0000ecd0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000ece0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ecf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed10: 286c 696e 6520 3231 290a 2a20 4950 5f4d (line 21).* IP_M │ │ │ │ │ +0000ed20: 554c 5449 4341 5354 5f4c 4f4f 5020 3c31 ULTICAST_LOOP <1 │ │ │ │ │ +0000ed30: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +0000ed40: 2020 2053 6574 736f 636b 6f70 7420 2870 Setsockopt (p │ │ │ │ │ +0000ed50: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +0000ed60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed90: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000eda0: 3231 290a 2a20 4950 5f4d 554c 5449 4341 21).* IP_MULTICA │ │ │ │ │ +0000edb0: 5354 5f54 544c 3a20 2020 2020 2020 2020 ST_TTL: │ │ │ │ │ +0000edc0: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000edd0: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +0000ede0: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +0000edf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee20: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ +0000ee30: 4950 5f4d 554c 5449 4341 5354 5f54 544c IP_MULTICAST_TTL │ │ │ │ │ +0000ee40: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ +0000ee50: 2020 2020 2020 2053 6574 736f 636b 6f70 Setsockop │ │ │ │ │ +0000ee60: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +0000ee70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eea0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000eeb0: 696e 6520 3231 290a 2a20 4973 5f49 505f ine 21).* Is_IP_ │ │ │ │ │ +0000eec0: 4164 6472 6573 733a 2020 2020 2020 2020 Address: │ │ │ │ │ +0000eed0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eee0: 2049 735f 4950 5f41 6464 7265 7373 2028 Is_IP_Address ( │ │ │ │ │ +0000eef0: 6675 6e63 7469 6f6e 292e 0a20 2020 2020 function).. │ │ │ │ │ +0000ef00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ef10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ef20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ef30: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000ef40: 2039 290a 2a20 4c46 3a20 2020 2020 2020 9).* LF: │ │ │ │ │ +0000ef50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ef60: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000ef70: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ +0000ef80: 2e20 2028 6c69 6e65 2032 3229 0a2a 204c . (line 22).* L │ │ │ │ │ +0000ef90: 4620 3c31 3e3a 2020 2020 2020 2020 2020 F <1>: │ │ │ │ │ +0000efa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000efb0: 2020 2020 2020 4765 745f 4c69 6e65 2028 Get_Line ( │ │ │ │ │ +0000efc0: 7072 6f63 6564 7572 6529 2e20 286c 696e procedure). (lin │ │ │ │ │ +0000efd0: 6520 3139 290a 2a20 4c46 203c 323e 3a20 e 19).* LF <2>: │ │ │ │ │ +0000efe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eff0: 2020 2020 2020 2020 2020 2020 2020 204e N │ │ │ │ │ +0000f000: 6577 5f4c 696e 6520 2870 726f 6365 6475 ew_Line (procedu │ │ │ │ │ +0000f010: 7265 292e 2028 6c69 6e65 2031 3829 0a2a re). (line 18).* │ │ │ │ │ +0000f020: 204c 6973 7465 6e3a 2020 2020 2020 2020 Listen: │ │ │ │ │ +0000f030: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f040: 2020 2020 2020 2020 4c69 7374 656e 2028 Listen ( │ │ │ │ │ +0000f050: 7072 6f63 6564 7572 6529 2e20 2020 286c procedure). (l │ │ │ │ │ +0000f060: 696e 6520 2039 290a 2a20 4c69 7374 656e ine 9).* Listen │ │ │ │ │ +0000f070: 2071 7565 7565 3a20 2020 2020 2020 2020 queue: │ │ │ │ │ +0000f080: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f090: 204c 6973 7465 6e20 2870 726f 6365 6475 Listen (procedu │ │ │ │ │ +0000f0a0: 7265 292e 2020 2028 6c69 6e65 2020 3629 re). (line 6) │ │ │ │ │ +0000f0b0: 0a2a 204d 616e 6970 756c 6174 696e 6720 .* Manipulating │ │ │ │ │ +0000f0c0: 736f 636b 6574 206f 7074 696f 6e73 3a20 socket options: │ │ │ │ │ +0000f0d0: 2020 2020 2020 2020 2020 4765 7473 6f63 Getsoc │ │ │ │ │ +0000f0e0: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ +0000f0f0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +0000f100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f110: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f120: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f130: 2028 6c69 6e65 2020 3629 0a2a 204d 616e (line 6).* Man │ │ │ │ │ +0000f140: 6970 756c 6174 696e 6720 736f 636b 6574 ipulating socket │ │ │ │ │ +0000f150: 206f 7074 696f 6e73 203c 313e 3a20 2020 options <1>: │ │ │ │ │ +0000f160: 2020 2020 5365 7473 6f63 6b6f 7074 2028 Setsockopt ( │ │ │ │ │ +0000f170: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ +0000f180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f1a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f1b0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000f1c0: 2020 3629 0a2a 204d 626f 6e65 3a20 2020 6).* Mbone: │ │ │ │ │ +0000f1d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f1e0: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ +0000f1f0: 7474 696e 6720 7570 206d 756c 7469 6361 tting up multica │ │ │ │ │ +0000f200: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ +0000f210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f230: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f240: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000f250: 2020 3629 0a2a 204d 756c 7469 6361 7374 6).* Multicast │ │ │ │ │ +0000f260: 2073 6f63 6b65 7473 3a20 2020 2020 2020 sockets: │ │ │ │ │ +0000f270: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ +0000f280: 7474 696e 6720 7570 206d 756c 7469 6361 tting up multica │ │ │ │ │ +0000f290: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ +0000f2a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f2b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f2c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f2d0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000f2e0: 2020 3629 0a2a 204d 756c 7469 6361 7374 6).* Multicast │ │ │ │ │ +0000f2f0: 5f53 6f63 6b65 745f 4644 3a20 2020 2020 _Socket_FD: │ │ │ │ │ +0000f300: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ +0000f310: 7474 696e 6720 7570 206d 756c 7469 6361 tting up multica │ │ │ │ │ +0000f320: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ +0000f330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f350: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f360: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000f370: 2031 3629 0a2a 204d 756c 7469 6361 7374 16).* Multicast │ │ │ │ │ +0000f380: 5f53 6f63 6b65 745f 4644 203c 313e 3a20 _Socket_FD <1>: │ │ │ │ │ +0000f390: 2020 2020 2020 2020 2020 2020 2020 536f So │ │ │ │ │ +0000f3a0: 636b 6574 732e 4d75 6c74 6963 6173 7420 ckets.Multicast │ │ │ │ │ +0000f3b0: 7061 636b 6167 652e 0a20 2020 2020 2020 package.. │ │ │ │ │ +0000f3c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f3d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f3e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f3f0: 2020 2020 2020 2020 286c 696e 6520 2038 (line 8 │ │ │ │ │ +0000f400: 290a 2a20 4e61 6d65 5f4f 663a 2020 2020 ).* Name_Of: │ │ │ │ │ +0000f410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f420: 2020 2020 2020 2020 2020 204e 616d 655f Name_ │ │ │ │ │ +0000f430: 4f66 2028 6675 6e63 7469 6f6e 292e 2020 Of (function). │ │ │ │ │ +0000f440: 2028 6c69 6e65 2020 3929 0a2a 204e 616d (line 9).* Nam │ │ │ │ │ +0000f450: 696e 675f 4572 726f 723a 2020 2020 2020 ing_Error: │ │ │ │ │ +0000f460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f470: 2020 2020 4164 6472 6573 735f 4f66 2028 Address_Of ( │ │ │ │ │ +0000f480: 6675 6e63 7469 6f6e 292e 0a20 2020 2020 function).. │ │ │ │ │ +0000f490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f4b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f4c0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000f4d0: 3233 290a 2a20 4e61 6d69 6e67 5f45 7272 23).* Naming_Err │ │ │ │ │ +0000f4e0: 6f72 203c 313e 3a20 2020 2020 2020 2020 or <1>: │ │ │ │ │ +0000f4f0: 2020 2020 2020 2020 2020 2020 2049 6e66 Inf │ │ │ │ │ +0000f500: 6f5f 4f66 5f4e 616d 655f 4f72 5f49 5020 o_Of_Name_Or_IP │ │ │ │ │ +0000f510: 2866 756e 6374 696f 6e29 2e0a 2020 2020 (function).. │ │ │ │ │ +0000f520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f550: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000f560: 2032 3729 0a2a 204e 616d 696e 675f 4572 27).* Naming_Er │ │ │ │ │ +0000f570: 726f 7220 3c32 3e3a 2020 2020 2020 2020 ror <2>: │ │ │ │ │ +0000f580: 2020 2020 2020 2020 2020 2020 2020 4e61 Na │ │ │ │ │ +0000f590: 6d65 5f4f 6620 2866 756e 6374 696f 6e29 me_Of (function) │ │ │ │ │ +0000f5a0: 2e20 2020 286c 696e 6520 3231 290a 2a20 . (line 21).* │ │ │ │ │ +0000f5b0: 4e65 775f 4c69 6e65 3a20 2020 2020 2020 New_Line: │ │ │ │ │ +0000f5c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f5d0: 2020 2020 2020 204e 6577 5f4c 696e 6520 New_Line │ │ │ │ │ +0000f5e0: 2870 726f 6365 6475 7265 292e 2028 6c69 (procedure). (li │ │ │ │ │ +0000f5f0: 6e65 2020 3929 0a2a 2050 465f 494e 4554 ne 9).* PF_INET │ │ │ │ │ +0000f600: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000f610: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f620: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +0000f630: 6529 2e20 2020 286c 696e 6520 3230 290a e). (line 20). │ │ │ │ │ +0000f640: 2a20 5075 743a 2020 2020 2020 2020 2020 * Put: │ │ │ │ │ +0000f650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f660: 2020 2020 2020 2020 2050 7574 2028 7072 Put (pr │ │ │ │ │ +0000f670: 6f63 6564 7572 6529 2e20 2020 2020 2028 ocedure). ( │ │ │ │ │ +0000f680: 6c69 6e65 2020 3929 0a2a 2050 7574 5f4c line 9).* Put_L │ │ │ │ │ +0000f690: 696e 653a 2020 2020 2020 2020 2020 2020 ine: │ │ │ │ │ +0000f6a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f6b0: 2020 5075 745f 4c69 6e65 2028 7072 6f63 Put_Line (proc │ │ │ │ │ +0000f6c0: 6564 7572 6529 2e20 286c 696e 6520 2039 edure). (line 9 │ │ │ │ │ +0000f6d0: 290a 2a20 5261 7720 6461 7461 206d 616e ).* Raw data man │ │ │ │ │ +0000f6e0: 6970 756c 6174 696f 6e3a 2020 2020 2020 ipulation: │ │ │ │ │ +0000f6f0: 2020 2020 2020 2020 2020 2052 6177 2064 Raw d │ │ │ │ │ +0000f700: 6174 6120 6d61 6e69 7075 6c61 7469 6f6e ata manipulation │ │ │ │ │ +0000f710: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +0000f720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f750: 2028 6c69 6e65 2020 3629 0a2a 2052 6563 (line 6).* Rec │ │ │ │ │ +0000f760: 6569 7665 3a20 2020 2020 2020 2020 2020 eive: │ │ │ │ │ +0000f770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f780: 2020 2020 5265 6365 6976 6520 2866 756e Receive (fun │ │ │ │ │ +0000f790: 6374 696f 6e29 2e20 2020 286c 696e 6520 ction). (line │ │ │ │ │ +0000f7a0: 2039 290a 2a20 5265 6365 6976 6520 3c31 9).* Receive <1 │ │ │ │ │ +0000f7b0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +0000f7c0: 2020 2020 2020 2020 2020 2020 2052 6563 Rec │ │ │ │ │ +0000f7d0: 6569 7665 2028 7072 6f63 6564 7572 6529 eive (procedure) │ │ │ │ │ +0000f7e0: 2e20 2028 6c69 6e65 2020 3929 0a2a 2052 . (line 9).* R │ │ │ │ │ +0000f7f0: 6563 6569 7665 203c 323e 3a20 2020 2020 eceive <2>: │ │ │ │ │ +0000f800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f810: 2020 2020 2020 5368 7574 646f 776e 2028 Shutdown ( │ │ │ │ │ +0000f820: 7072 6f63 6564 7572 6529 2e20 286c 696e procedure). (lin │ │ │ │ │ +0000f830: 6520 3137 290a 2a20 5265 6365 6976 655f e 17).* Receive_ │ │ │ │ │ +0000f840: 536f 6d65 3a20 2020 2020 2020 2020 2020 Some: │ │ │ │ │ +0000f850: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ │ +0000f860: 6563 6569 7665 5f53 6f6d 6520 2870 726f eceive_Some (pro │ │ │ │ │ +0000f870: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +0000f880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f8a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f8b0: 2020 2020 2020 2020 286c 696e 6520 2039 (line 9 │ │ │ │ │ +0000f8c0: 290a 2a20 5265 6365 6976 696e 6720 6461 ).* Receiving da │ │ │ │ │ +0000f8d0: 7461 3a20 2020 2020 2020 2020 2020 2020 ta: │ │ │ │ │ +0000f8e0: 2020 2020 2020 2020 2020 2053 656e 6469 Sendi │ │ │ │ │ +0000f8f0: 6e67 2061 6e64 2072 6563 6569 7669 6e67 ng and receiving │ │ │ │ │ +0000f900: 2064 6174 612e 0a20 2020 2020 2020 2020 data.. │ │ │ │ │ +0000f910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f940: 2020 2020 2020 286c 696e 6520 2036 290a (line 6). │ │ │ │ │ +0000f950: 2a20 5265 6365 6976 696e 6720 6461 7461 * Receiving data │ │ │ │ │ +0000f960: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ +0000f970: 2020 2020 2020 2020 2047 6574 2028 6675 Get (fu │ │ │ │ │ +0000f980: 6e63 7469 6f6e 292e 2020 2020 2020 2028 nction). ( │ │ │ │ │ +0000f990: 6c69 6e65 2020 3629 0a2a 2052 6563 6569 line 6).* Recei │ │ │ │ │ +0000f9a0: 7669 6e67 2064 6174 6120 3c32 3e3a 2020 ving data <2>: │ │ │ │ │ +0000f9b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f9c0: 2020 4765 745f 4368 6172 2028 6675 6e63 Get_Char (func │ │ │ │ │ +0000f9d0: 7469 6f6e 292e 2020 286c 696e 6520 2036 tion). (line 6 │ │ │ │ │ +0000f9e0: 290a 2a20 5265 6365 6976 696e 6720 6461 ).* Receiving da │ │ │ │ │ +0000f9f0: 7461 203c 333e 3a20 2020 2020 2020 2020 ta <3>: │ │ │ │ │ +0000fa00: 2020 2020 2020 2020 2020 2047 6574 5f4c Get_L │ │ │ │ │ +0000fa10: 696e 6520 2866 756e 6374 696f 6e29 2e20 ine (function). │ │ │ │ │ +0000fa20: 2028 6c69 6e65 2020 3629 0a2a 2052 6563 (line 6).* Rec │ │ │ │ │ +0000fa30: 6569 7669 6e67 2064 6174 6120 3c34 3e3a eiving data <4>: │ │ │ │ │ +0000fa40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fa50: 2020 2020 4765 745f 4c69 6e65 2028 7072 Get_Line (pr │ │ │ │ │ +0000fa60: 6f63 6564 7572 6529 2e20 286c 696e 6520 ocedure). (line │ │ │ │ │ +0000fa70: 2036 290a 2a20 5265 6365 6976 696e 6720 6).* Receiving │ │ │ │ │ +0000fa80: 6461 7461 203c 353e 3a20 2020 2020 2020 data <5>: │ │ │ │ │ +0000fa90: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000faa0: 5f52 6563 6569 7665 5f51 7565 7565 5f53 _Receive_Queue_S │ │ │ │ │ +0000fab0: 697a 6520 2866 756e 6374 696f 6e29 2e0a ize (function).. │ │ │ │ │ +0000fac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000faf0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000fb00: 6c69 6e65 2020 3629 0a2a 2052 6563 6569 line 6).* Recei │ │ │ │ │ +0000fb10: 7669 6e67 2064 6174 6120 3c36 3e3a 2020 ving data <6>: │ │ │ │ │ +0000fb20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fb30: 2020 5265 6365 6976 6520 2866 756e 6374 Receive (funct │ │ │ │ │ +0000fb40: 696f 6e29 2e20 2020 286c 696e 6520 2036 ion). (line 6 │ │ │ │ │ +0000fb50: 290a 2a20 5265 6365 6976 696e 6720 6461 ).* Receiving da │ │ │ │ │ +0000fb60: 7461 203c 373e 3a20 2020 2020 2020 2020 ta <7>: │ │ │ │ │ +0000fb70: 2020 2020 2020 2020 2020 2052 6563 6569 Recei │ │ │ │ │ +0000fb80: 7665 2028 7072 6f63 6564 7572 6529 2e20 ve (procedure). │ │ │ │ │ +0000fb90: 2028 6c69 6e65 2020 3629 0a2a 2052 6563 (line 6).* Rec │ │ │ │ │ +0000fba0: 6569 7669 6e67 2064 6174 6120 3c38 3e3a eiving data <8>: │ │ │ │ │ +0000fbb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fbc0: 2020 2020 5265 6365 6976 655f 536f 6d65 Receive_Some │ │ │ │ │ +0000fbd0: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ +0000fbe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fbf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc10: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +0000fc20: 6e65 2020 3629 0a2a 2052 6563 6569 7669 ne 6).* Receivi │ │ │ │ │ +0000fc30: 6e67 2064 6174 6120 3c39 3e3a 2020 2020 ng data <9>: │ │ │ │ │ +0000fc40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc50: 5365 745f 4275 6666 6572 2028 7072 6f63 Set_Buffer (proc │ │ │ │ │ +0000fc60: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ +0000fc70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fca0: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ │ +0000fcb0: 0a2a 2052 6563 6569 7669 6e67 2064 6174 .* Receiving dat │ │ │ │ │ +0000fcc0: 6120 3c31 303e 3a20 2020 2020 2020 2020 a <10>: │ │ │ │ │ +0000fcd0: 2020 2020 2020 2020 2020 556e 7365 745f Unset_ │ │ │ │ │ +0000fce0: 4275 6666 6572 2028 7072 6f63 6564 7572 Buffer (procedur │ │ │ │ │ +0000fcf0: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ +0000fd00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fd10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fd20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fd30: 2020 2028 6c69 6e65 2020 3629 0a2a 2052 (line 6).* R │ │ │ │ │ +0000fd40: 6570 6f72 7469 6e67 2061 2062 7567 3a20 eporting a bug: │ │ │ │ │ +0000fd50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fd60: 2020 2020 2020 5265 736f 7572 6365 7320 Resources │ │ │ │ │ +0000fd70: 6f6e 2074 6865 2049 6e74 6572 6e65 742e on the Internet. │ │ │ │ │ +0000fd80: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000fd90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fda0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fdb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fdc0: 286c 696e 6520 2036 290a 2a20 5265 7072 (line 6).* Repr │ │ │ │ │ +0000fdd0: 6573 656e 7469 6e67 2049 5020 6164 6472 esenting IP addr │ │ │ │ │ +0000fde0: 6573 7365 733a 2020 2020 2020 2020 2020 esses: │ │ │ │ │ +0000fdf0: 2020 2049 6d61 6765 2028 6675 6e63 7469 Image (functi │ │ │ │ │ +0000fe00: 6f6e 292e 2020 2020 2028 6c69 6e65 2020 on). (line │ │ │ │ │ +0000fe10: 3629 0a2a 2052 6570 7265 7365 6e74 696e 6).* Representin │ │ │ │ │ +0000fe20: 6720 4950 2061 6464 7265 7373 6573 203c g IP addresses < │ │ │ │ │ +0000fe30: 313e 3a20 2020 2020 2020 2020 5661 6c75 1>: Valu │ │ │ │ │ +0000fe40: 6520 2866 756e 6374 696f 6e29 2e20 2020 e (function). │ │ │ │ │ +0000fe50: 2020 286c 696e 6520 2036 290a 2a20 5265 (line 6).* Re │ │ │ │ │ +0000fe60: 7472 6965 7669 6e67 2073 6f63 6b65 7420 trieving socket │ │ │ │ │ +0000fe70: 6f70 7469 6f6e 733a 2020 2020 2020 2020 options: │ │ │ │ │ +0000fe80: 2020 2020 2047 6574 736f 636b 6f70 7420 Getsockopt │ │ │ │ │ +0000fe90: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +0000fea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000feb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fed0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000fee0: 6520 2036 290a 2a20 5365 6e64 3a20 2020 e 6).* Send: │ │ │ │ │ +0000fef0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ff00: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +0000ff10: 656e 6420 2870 726f 6365 6475 7265 292e end (procedure). │ │ │ │ │ +0000ff20: 2020 2020 2028 6c69 6e65 2020 3929 0a2a (line 9).* │ │ │ │ │ +0000ff30: 2053 656e 6420 3c31 3e3a 2020 2020 2020 Send <1>: │ │ │ │ │ +0000ff40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ff50: 2020 2020 2020 2020 5368 7574 646f 776e Shutdown │ │ │ │ │ +0000ff60: 2028 7072 6f63 6564 7572 6529 2e20 286c (procedure). (l │ │ │ │ │ +0000ff70: 696e 6520 3137 290a 2a20 5365 6e64 696e ine 17).* Sendin │ │ │ │ │ +0000ff80: 6720 6461 7461 3a20 2020 2020 2020 2020 g data: │ │ │ │ │ +0000ff90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ffa0: 2053 656e 6469 6e67 2061 6e64 2072 6563 Sending and rec │ │ │ │ │ +0000ffb0: 6569 7669 6e67 2064 6174 612e 0a20 2020 eiving data.. │ │ │ │ │ +0000ffc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ffd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ffe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fff0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00010000: 6520 2036 290a 2a20 5365 6e64 696e 6720 e 6).* Sending │ │ │ │ │ +00010010: 6461 7461 203c 313e 3a20 2020 2020 2020 data <1>: │ │ │ │ │ +00010020: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +00010030: 6574 5f53 656e 645f 5175 6575 655f 5369 et_Send_Queue_Si │ │ │ │ │ +00010040: 7a65 2028 6675 6e63 7469 6f6e 292e 0a20 ze (function).. │ │ │ │ │ +00010050: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010080: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +00010090: 696e 6520 2036 290a 2a20 5365 6e64 696e ine 6).* Sendin │ │ │ │ │ +000100a0: 6720 6461 7461 203c 323e 3a20 2020 2020 g data <2>: │ │ │ │ │ +000100b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000100c0: 204e 6577 5f4c 696e 6520 2870 726f 6365 New_Line (proce │ │ │ │ │ +000100d0: 6475 7265 292e 2028 6c69 6e65 2020 3629 dure). (line 6) │ │ │ │ │ +000100e0: 0a2a 2053 656e 6469 6e67 2064 6174 6120 .* Sending data │ │ │ │ │ +000100f0: 3c33 3e3a 2020 2020 2020 2020 2020 2020 <3>: │ │ │ │ │ +00010100: 2020 2020 2020 2020 2020 5075 7420 2870 Put (p │ │ │ │ │ +00010110: 726f 6365 6475 7265 292e 2020 2020 2020 rocedure). │ │ │ │ │ +00010120: 286c 696e 6520 2036 290a 2a20 5365 6e64 (line 6).* Send │ │ │ │ │ +00010130: 696e 6720 6461 7461 203c 343e 3a20 2020 ing data <4>: │ │ │ │ │ +00010140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010150: 2020 2050 7574 5f4c 696e 6520 2870 726f Put_Line (pro │ │ │ │ │ +00010160: 6365 6475 7265 292e 2028 6c69 6e65 2020 cedure). (line │ │ │ │ │ +00010170: 3629 0a2a 2053 656e 6469 6e67 2064 6174 6).* Sending dat │ │ │ │ │ +00010180: 6120 3c35 3e3a 2020 2020 2020 2020 2020 a <5>: │ │ │ │ │ +00010190: 2020 2020 2020 2020 2020 2020 5365 6e64 Send │ │ │ │ │ +000101a0: 2028 7072 6f63 6564 7572 6529 2e20 2020 (procedure). │ │ │ │ │ +000101b0: 2020 286c 696e 6520 2036 290a 2a20 5365 (line 6).* Se │ │ │ │ │ +000101c0: 6e64 696e 6720 7061 7463 6865 733a 2020 nding patches: │ │ │ │ │ +000101d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000101e0: 2020 2020 2052 6573 6f75 7263 6573 206f Resources o │ │ │ │ │ +000101f0: 6e20 7468 6520 496e 7465 726e 6574 2e0a n the Internet.. │ │ │ │ │ +00010200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010230: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +00010240: 6c69 6e65 2020 3629 0a2a 2053 6574 736f line 6).* Setso │ │ │ │ │ +00010250: 636b 6f70 743a 2020 2020 2020 2020 2020 ckopt: │ │ │ │ │ +00010260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010270: 2020 5365 7473 6f63 6b6f 7074 2028 7072 Setsockopt (pr │ │ │ │ │ +00010280: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ +00010290: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000102a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000102b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000102c0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ +000102d0: 3929 0a2a 2053 6574 7469 6e67 2073 6f63 9).* Setting soc │ │ │ │ │ +000102e0: 6b65 7420 6f70 7469 6f6e 733a 2020 2020 ket options: │ │ │ │ │ +000102f0: 2020 2020 2020 2020 2020 2020 5365 7473 Sets │ │ │ │ │ +00010300: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ +00010310: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ +00010320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010350: 2020 2028 6c69 6e65 2020 3629 0a2a 2053 (line 6).* S │ │ │ │ │ +00010360: 6574 5f42 7566 6665 723a 2020 2020 2020 et_Buffer: │ │ │ │ │ +00010370: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010380: 2020 2020 2020 5365 745f 4275 6666 6572 Set_Buffer │ │ │ │ │ +00010390: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ +000103a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000103b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000103c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000103d0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +000103e0: 6e65 2020 3929 0a2a 2053 6875 7464 6f77 ne 9).* Shutdow │ │ │ │ │ +000103f0: 6e3a 2020 2020 2020 2020 2020 2020 2020 n: │ │ │ │ │ +00010400: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010410: 5368 7574 646f 776e 2028 7072 6f63 6564 Shutdown (proced │ │ │ │ │ +00010420: 7572 6529 2e20 286c 696e 6520 2039 290a ure). (line 9). │ │ │ │ │ +00010430: 2a20 536f 636b 6574 3a20 2020 2020 2020 * Socket: │ │ │ │ │ +00010440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010450: 2020 2020 2020 2020 2053 6574 7469 6e67 Setting │ │ │ │ │ +00010460: 2075 7020 756e 6963 6173 7420 736f 636b up unicast sock │ │ │ │ │ +00010470: 6574 732e 0a20 2020 2020 2020 2020 2020 ets.. │ │ │ │ │ +00010480: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000104a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000104b0: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ +000104c0: 536f 636b 6574 203c 313e 3a20 2020 2020 Socket <1>: │ │ │ │ │ +000104d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000104e0: 2020 2020 2020 2053 6f63 6b65 7420 2870 Socket (p │ │ │ │ │ +000104f0: 726f 6365 6475 7265 292e 2020 2028 6c69 rocedure). (li │ │ │ │ │ +00010500: 6e65 2020 3929 0a2a 2053 6f63 6b65 7420 ne 9).* Socket │ │ │ │ │ +00010510: 7368 7574 646f 776e 3a20 2020 2020 2020 shutdown: │ │ │ │ │ +00010520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010530: 5368 7574 646f 776e 2028 7072 6f63 6564 Shutdown (proced │ │ │ │ │ +00010540: 7572 6529 2e20 286c 696e 6520 2036 290a ure). (line 6). │ │ │ │ │ +00010550: 2a20 536f 636b 6574 732e 4163 6365 7074 * Sockets.Accept │ │ │ │ │ +00010560: 5f53 6f63 6b65 743a 2020 2020 2020 2020 _Socket: │ │ │ │ │ +00010570: 2020 2020 2020 2020 2041 6363 6570 745f Accept_ │ │ │ │ │ +00010580: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +00010590: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ +000105a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000105b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000105c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000105d0: 2020 2028 6c69 6e65 2031 3229 0a2a 2053 (line 12).* S │ │ │ │ │ +000105e0: 6f63 6b65 7473 2e42 696e 643a 2020 2020 ockets.Bind: │ │ │ │ │ +000105f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010600: 2020 2020 2020 4269 6e64 2028 7072 6f63 Bind (proc │ │ │ │ │ +00010610: 6564 7572 6529 2e20 2020 2020 286c 696e edure). (lin │ │ │ │ │ +00010620: 6520 3132 290a 2a20 536f 636b 6574 732e e 12).* Sockets. │ │ │ │ │ +00010630: 436f 6e6e 6563 743a 2020 2020 2020 2020 Connect: │ │ │ │ │ +00010640: 2020 2020 2020 2020 2020 2020 2020 2043 C │ │ │ │ │ +00010650: 6f6e 6e65 6374 2028 7072 6f63 6564 7572 onnect (procedur │ │ │ │ │ +00010660: 6529 2e20 2028 6c69 6e65 2031 3229 0a2a e). (line 12).* │ │ │ │ │ +00010670: 2053 6f63 6b65 7473 2e47 6574 3a20 2020 Sockets.Get: │ │ │ │ │ +00010680: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010690: 2020 2020 2020 2020 4765 7420 2866 756e Get (fun │ │ │ │ │ +000106a0: 6374 696f 6e29 2e20 2020 2020 2020 286c ction). (l │ │ │ │ │ +000106b0: 696e 6520 3132 290a 2a20 536f 636b 6574 ine 12).* Socket │ │ │ │ │ +000106c0: 732e 4765 7473 6f63 6b6f 7074 3a20 2020 s.Getsockopt: │ │ │ │ │ +000106d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000106e0: 2047 6574 736f 636b 6f70 7420 2870 726f Getsockopt (pro │ │ │ │ │ +000106f0: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +00010700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010730: 2020 2020 2020 2020 286c 696e 6520 3133 (line 13 │ │ │ │ │ +00010740: 290a 2a20 536f 636b 6574 732e 4765 745f ).* Sockets.Get_ │ │ │ │ │ +00010750: 4368 6172 3a20 2020 2020 2020 2020 2020 Char: │ │ │ │ │ +00010760: 2020 2020 2020 2020 2020 2047 6574 5f43 Get_C │ │ │ │ │ +00010770: 6861 7220 2866 756e 6374 696f 6e29 2e20 har (function). │ │ │ │ │ +00010780: 2028 6c69 6e65 2031 3229 0a2a 2053 6f63 (line 12).* Soc │ │ │ │ │ +00010790: 6b65 7473 2e47 6574 5f4c 696e 653a 2020 kets.Get_Line: │ │ │ │ │ +000107a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000107b0: 2020 2020 4765 745f 4c69 6e65 2028 6675 Get_Line (fu │ │ │ │ │ +000107c0: 6e63 7469 6f6e 292e 2020 286c 696e 6520 nction). (line │ │ │ │ │ +000107d0: 3133 290a 2a20 536f 636b 6574 732e 4765 13).* Sockets.Ge │ │ │ │ │ +000107e0: 745f 4c69 6e65 203c 313e 3a20 2020 2020 t_Line <1>: │ │ │ │ │ +000107f0: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +00010800: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ +00010810: 292e 2028 6c69 6e65 2031 3229 0a2a 2053 ). (line 12).* S │ │ │ │ │ +00010820: 6f63 6b65 7473 2e47 6574 5f52 6563 6569 ockets.Get_Recei │ │ │ │ │ +00010830: 7665 5f51 7565 7565 5f53 697a 653a 2020 ve_Queue_Size: │ │ │ │ │ +00010840: 2020 2020 2020 4765 745f 5265 6365 6976 Get_Receiv │ │ │ │ │ +00010850: 655f 5175 6575 655f 5369 7a65 2028 6675 e_Queue_Size (fu │ │ │ │ │ +00010860: 6e63 7469 6f6e 292e 0a20 2020 2020 2020 nction).. │ │ │ │ │ +00010870: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000108a0: 2020 2020 2020 2020 286c 696e 6520 3133 (line 13 │ │ │ │ │ +000108b0: 290a 2a20 536f 636b 6574 732e 4765 745f ).* Sockets.Get_ │ │ │ │ │ +000108c0: 5365 6e64 5f51 7565 7565 5f53 697a 653a Send_Queue_Size: │ │ │ │ │ +000108d0: 2020 2020 2020 2020 2020 2047 6574 5f53 Get_S │ │ │ │ │ +000108e0: 656e 645f 5175 6575 655f 5369 7a65 2028 end_Queue_Size ( │ │ │ │ │ +000108f0: 6675 6e63 7469 6f6e 292e 0a20 2020 2020 function).. │ │ │ │ │ +00010900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010930: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +00010940: 3133 290a 2a20 536f 636b 6574 732e 4950 13).* Sockets.IP │ │ │ │ │ +00010950: 5052 4f54 4f5f 4950 3a20 2020 2020 2020 PROTO_IP: │ │ │ │ │ +00010960: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +00010970: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +00010980: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +00010990: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000109a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000109b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000109c0: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ +000109d0: 536f 636b 6574 732e 4950 5052 4f54 4f5f Sockets.IPPROTO_ │ │ │ │ │ +000109e0: 4950 203c 313e 3a20 2020 2020 2020 2020 IP <1>: │ │ │ │ │ +000109f0: 2020 2020 2020 2053 6574 736f 636b 6f70 Setsockop │ │ │ │ │ +00010a00: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +00010a10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010a20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010a30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010a40: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +00010a50: 696e 6520 3231 290a 2a20 536f 636b 6574 ine 21).* Socket │ │ │ │ │ +00010a60: 732e 4950 5f41 4444 5f4d 454d 4245 5253 s.IP_ADD_MEMBERS │ │ │ │ │ +00010a70: 4849 503a 2020 2020 2020 2020 2020 2020 HIP: │ │ │ │ │ +00010a80: 2047 6574 736f 636b 6f70 7420 2870 726f Getsockopt (pro │ │ │ │ │ +00010a90: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +00010aa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ad0: 2020 2020 2020 2020 286c 696e 6520 3231 (line 21 │ │ │ │ │ +00010ae0: 290a 2a20 536f 636b 6574 732e 4950 5f41 ).* Sockets.IP_A │ │ │ │ │ +00010af0: 4444 5f4d 454d 4245 5253 4849 5020 3c31 DD_MEMBERSHIP <1 │ │ │ │ │ +00010b00: 3e3a 2020 2020 2020 2020 2053 6574 736f >: Setso │ │ │ │ │ +00010b10: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +00010b20: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +00010b30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010b40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010b50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010b60: 2020 286c 696e 6520 3231 290a 2a20 536f (line 21).* So │ │ │ │ │ +00010b70: 636b 6574 732e 4950 5f44 524f 505f 4d45 ckets.IP_DROP_ME │ │ │ │ │ +00010b80: 4d42 4552 5348 4950 3a20 2020 2020 2020 MBERSHIP: │ │ │ │ │ +00010b90: 2020 2020 2047 6574 736f 636b 6f70 7420 Getsockopt │ │ │ │ │ +00010ba0: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +00010bb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010bc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010bd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010be0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00010bf0: 6520 3231 290a 2a20 536f 636b 6574 732e e 21).* Sockets. │ │ │ │ │ +00010c00: 4950 5f44 524f 505f 4d45 4d42 4552 5348 IP_DROP_MEMBERSH │ │ │ │ │ +00010c10: 4950 203c 313e 3a20 2020 2020 2020 2053 IP <1>: S │ │ │ │ │ +00010c20: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +00010c30: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +00010c40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010c50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010c70: 2020 2020 2020 286c 696e 6520 3231 290a (line 21). │ │ │ │ │ +00010c80: 2a20 536f 636b 6574 732e 4950 5f4d 554c * Sockets.IP_MUL │ │ │ │ │ +00010c90: 5449 4341 5354 5f4c 4f4f 503a 2020 2020 TICAST_LOOP: │ │ │ │ │ +00010ca0: 2020 2020 2020 2020 2047 6574 736f 636b Getsock │ │ │ │ │ +00010cb0: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +00010cc0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00010cd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ce0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010d00: 286c 696e 6520 3231 290a 2a20 536f 636b (line 21).* Sock │ │ │ │ │ +00010d10: 6574 732e 4950 5f4d 554c 5449 4341 5354 ets.IP_MULTICAST │ │ │ │ │ +00010d20: 5f4c 4f4f 5020 3c31 3e3a 2020 2020 2020 _LOOP <1>: │ │ │ │ │ +00010d30: 2020 2053 6574 736f 636b 6f70 7420 2870 Setsockopt (p │ │ │ │ │ +00010d40: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +00010d50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010d60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010d70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010d80: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +00010d90: 3231 290a 2a20 536f 636b 6574 732e 4950 21).* Sockets.IP │ │ │ │ │ +00010da0: 5f4d 554c 5449 4341 5354 5f54 544c 3a20 _MULTICAST_TTL: │ │ │ │ │ +00010db0: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +00010dc0: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +00010dd0: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +00010de0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010df0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010e00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010e10: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ +00010e20: 536f 636b 6574 732e 4950 5f4d 554c 5449 Sockets.IP_MULTI │ │ │ │ │ +00010e30: 4341 5354 5f54 544c 203c 313e 3a20 2020 CAST_TTL <1>: │ │ │ │ │ +00010e40: 2020 2020 2020 2053 6574 736f 636b 6f70 Setsockop │ │ │ │ │ +00010e50: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +00010e60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010e70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010e80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010e90: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +00010ea0: 696e 6520 3231 290a 2a20 536f 636b 6574 ine 21).* Socket │ │ │ │ │ +00010eb0: 732e 4c69 7374 656e 3a20 2020 2020 2020 s.Listen: │ │ │ │ │ +00010ec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ed0: 204c 6973 7465 6e20 2870 726f 6365 6475 Listen (procedu │ │ │ │ │ +00010ee0: 7265 292e 2020 2028 6c69 6e65 2031 3129 re). (line 11) │ │ │ │ │ +00010ef0: 0a2a 2053 6f63 6b65 7473 2e4d 756c 7469 .* Sockets.Multi │ │ │ │ │ +00010f00: 6361 7374 2e43 7265 6174 655f 4d75 6c74 cast.Create_Mult │ │ │ │ │ +00010f10: 6963 6173 745f 536f 636b 6574 3a20 5365 icast_Socket: Se │ │ │ │ │ +00010f20: 7474 696e 6720 7570 206d 756c 7469 6361 tting up multica │ │ │ │ │ +00010f30: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ +00010f40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010f50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010f60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010f70: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +00010f80: 2031 3629 0a2a 2053 6f63 6b65 7473 2e4d 16).* Sockets.M │ │ │ │ │ +00010f90: 756c 7469 6361 7374 2e43 7265 6174 655f ulticast.Create_ │ │ │ │ │ +00010fa0: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ +00010fb0: 203c 313e 3a20 4372 6561 7465 5f4d 756c <1>: Create_Mul │ │ │ │ │ +00010fc0: 7469 6361 7374 5f53 6f63 6b65 7420 2866 ticast_Socket (f │ │ │ │ │ +00010fd0: 756e 6374 696f 6e29 2e0a 2020 2020 2020 unction).. │ │ │ │ │ +00010fe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011010: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ │ +00011020: 3529 0a2a 2053 6f63 6b65 7473 2e4d 756c 5).* Sockets.Mul │ │ │ │ │ +00011030: 7469 6361 7374 2e43 7265 6174 655f 4d75 ticast.Create_Mu │ │ │ │ │ +00011040: 6c74 6963 6173 745f 536f 636b 6574 203c lticast_Socket < │ │ │ │ │ +00011050: 323e 3a20 2e20 2020 2020 2020 2020 2020 2>: . │ │ │ │ │ +00011060: 2020 286c 696e 6520 3832 290a 2a20 536f (line 82).* So │ │ │ │ │ +00011070: 636b 6574 732e 4e61 6d69 6e67 2e41 6464 ckets.Naming.Add │ │ │ │ │ +00011080: 7265 7373 5f4f 663a 2020 2020 2020 2020 ress_Of: │ │ │ │ │ +00011090: 2020 2020 2041 6464 7265 7373 5f4f 6620 Address_Of │ │ │ │ │ +000110a0: 2866 756e 6374 696f 6e29 2e0a 2020 2020 (function).. │ │ │ │ │ +000110b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000110c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000110d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000110e0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +000110f0: 2031 3429 0a2a 2053 6f63 6b65 7473 2e4e 14).* Sockets.N │ │ │ │ │ +00011100: 616d 696e 672e 416e 795f 4164 6472 6573 aming.Any_Addres │ │ │ │ │ +00011110: 733a 2020 2020 2020 2020 2020 2020 416e s: An │ │ │ │ │ +00011120: 795f 4164 6472 6573 7320 2866 756e 6374 y_Address (funct │ │ │ │ │ +00011130: 696f 6e29 2e0a 2020 2020 2020 2020 2020 ion).. │ │ │ │ │ +00011140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011150: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011160: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011170: 2020 2020 2028 6c69 6e65 2031 3029 0a2a (line 10).* │ │ │ │ │ +00011180: 2053 6f63 6b65 7473 2e4e 616d 696e 672e Sockets.Naming. │ │ │ │ │ +00011190: 4765 745f 5065 6572 5f41 6464 723a 2020 Get_Peer_Addr: │ │ │ │ │ +000111a0: 2020 2020 2020 2020 4765 745f 5065 6572 Get_Peer │ │ │ │ │ +000111b0: 5f41 6464 7220 2866 756e 6374 696f 6e29 _Addr (function) │ │ │ │ │ +000111c0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +000111d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000111e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000111f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011200: 2028 6c69 6e65 2031 3429 0a2a 2053 6f63 (line 14).* Soc │ │ │ │ │ +00011210: 6b65 7473 2e4e 616d 696e 672e 4765 745f kets.Naming.Get_ │ │ │ │ │ +00011220: 5065 6572 5f50 6f72 743a 2020 2020 2020 Peer_Port: │ │ │ │ │ +00011230: 2020 2020 4765 745f 5065 6572 5f50 6f72 Get_Peer_Por │ │ │ │ │ +00011240: 7420 2866 756e 6374 696f 6e29 2e0a 2020 t (function).. │ │ │ │ │ +00011250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011280: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +00011290: 6e65 2031 3429 0a2a 2053 6f63 6b65 7473 ne 14).* Sockets │ │ │ │ │ +000112a0: 2e4e 616d 696e 672e 4765 745f 536f 636b .Naming.Get_Sock │ │ │ │ │ +000112b0: 5f41 6464 723a 2020 2020 2020 2020 2020 _Addr: │ │ │ │ │ +000112c0: 4765 745f 536f 636b 5f41 6464 7220 2866 Get_Sock_Addr (f │ │ │ │ │ +000112d0: 756e 6374 696f 6e29 2e0a 2020 2020 2020 unction).. │ │ │ │ │ +000112e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000112f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011310: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ │ +00011320: 3429 0a2a 2053 6f63 6b65 7473 2e4e 616d 4).* Sockets.Nam │ │ │ │ │ +00011330: 696e 672e 4765 745f 536f 636b 5f50 6f72 ing.Get_Sock_Por │ │ │ │ │ +00011340: 743a 2020 2020 2020 2020 2020 4765 745f t: Get_ │ │ │ │ │ +00011350: 536f 636b 5f50 6f72 7420 2866 756e 6374 Sock_Port (funct │ │ │ │ │ +00011360: 696f 6e29 2e0a 2020 2020 2020 2020 2020 ion).. │ │ │ │ │ +00011370: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000113a0: 2020 2020 2028 6c69 6e65 2031 3429 0a2a (line 14).* │ │ │ │ │ +000113b0: 2053 6f63 6b65 7473 2e4e 616d 696e 672e Sockets.Naming. │ │ │ │ │ +000113c0: 486f 7374 5f4e 616d 653a 2020 2020 2020 Host_Name: │ │ │ │ │ +000113d0: 2020 2020 2020 2020 486f 7374 5f4e 616d Host_Nam │ │ │ │ │ +000113e0: 6520 2866 756e 6374 696f 6e29 2e20 286c e (function). (l │ │ │ │ │ +000113f0: 696e 6520 3130 290a 2a20 536f 636b 6574 ine 10).* Socket │ │ │ │ │ +00011400: 732e 4e61 6d69 6e67 2e49 6d61 6765 3a20 s.Naming.Image: │ │ │ │ │ +00011410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011420: 2049 6d61 6765 2028 6675 6e63 7469 6f6e Image (function │ │ │ │ │ +00011430: 292e 2020 2020 2028 6c69 6e65 2031 3229 ). (line 12) │ │ │ │ │ +00011440: 0a2a 2053 6f63 6b65 7473 2e4e 616d 696e .* Sockets.Namin │ │ │ │ │ +00011450: 672e 496e 666f 5f4f 665f 4e61 6d65 5f4f g.Info_Of_Name_O │ │ │ │ │ +00011460: 725f 4950 3a20 2020 2020 496e 666f 5f4f r_IP: Info_O │ │ │ │ │ +00011470: 665f 4e61 6d65 5f4f 725f 4950 2028 6675 f_Name_Or_IP (fu │ │ │ │ │ +00011480: 6e63 7469 6f6e 292e 0a20 2020 2020 2020 nction).. │ │ │ │ │ +00011490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000114a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000114b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000114c0: 2020 2020 2020 2020 286c 696e 6520 3134 (line 14 │ │ │ │ │ +000114d0: 290a 2a20 536f 636b 6574 732e 4e61 6d69 ).* Sockets.Nami │ │ │ │ │ +000114e0: 6e67 2e49 735f 4950 5f41 6464 7265 7373 ng.Is_IP_Address │ │ │ │ │ +000114f0: 3a20 2020 2020 2020 2020 2049 735f 4950 : Is_IP │ │ │ │ │ +00011500: 5f41 6464 7265 7373 2028 6675 6e63 7469 _Address (functi │ │ │ │ │ +00011510: 6f6e 292e 0a20 2020 2020 2020 2020 2020 on).. │ │ │ │ │ +00011520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011550: 2020 2020 286c 696e 6520 3134 290a 2a20 (line 14).* │ │ │ │ │ +00011560: 536f 636b 6574 732e 4e61 6d69 6e67 2e4e Sockets.Naming.N │ │ │ │ │ +00011570: 616d 655f 4f66 3a20 2020 2020 2020 2020 ame_Of: │ │ │ │ │ +00011580: 2020 2020 2020 204e 616d 655f 4f66 2028 Name_Of ( │ │ │ │ │ +00011590: 6675 6e63 7469 6f6e 292e 2020 2028 6c69 function). (li │ │ │ │ │ +000115a0: 6e65 2031 3229 0a2a 2053 6f63 6b65 7473 ne 12).* Sockets │ │ │ │ │ +000115b0: 2e4e 616d 696e 672e 5661 6c75 653a 2020 .Naming.Value: │ │ │ │ │ +000115c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000115d0: 5661 6c75 6520 2866 756e 6374 696f 6e29 Value (function) │ │ │ │ │ +000115e0: 2e20 2020 2020 286c 696e 6520 3132 290a . (line 12). │ │ │ │ │ +000115f0: 2a20 536f 636b 6574 732e 4e65 775f 4c69 * Sockets.New_Li │ │ │ │ │ +00011600: 6e65 3a20 2020 2020 2020 2020 2020 2020 ne: │ │ │ │ │ +00011610: 2020 2020 2020 2020 204e 6577 5f4c 696e New_Lin │ │ │ │ │ +00011620: 6520 2870 726f 6365 6475 7265 292e 2028 e (procedure). ( │ │ │ │ │ +00011630: 6c69 6e65 2031 3229 0a2a 2053 6f63 6b65 line 12).* Socke │ │ │ │ │ +00011640: 7473 2e50 7574 3a20 2020 2020 2020 2020 ts.Put: │ │ │ │ │ +00011650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011660: 2020 5075 7420 2870 726f 6365 6475 7265 Put (procedure │ │ │ │ │ +00011670: 292e 2020 2020 2020 286c 696e 6520 3132 ). (line 12 │ │ │ │ │ +00011680: 290a 2a20 536f 636b 6574 732e 5075 745f ).* Sockets.Put_ │ │ │ │ │ +00011690: 4c69 6e65 3a20 2020 2020 2020 2020 2020 Line: │ │ │ │ │ +000116a0: 2020 2020 2020 2020 2020 2050 7574 5f4c Put_L │ │ │ │ │ +000116b0: 696e 6520 2870 726f 6365 6475 7265 292e ine (procedure). │ │ │ │ │ +000116c0: 2028 6c69 6e65 2031 3229 0a2a 2053 6f63 (line 12).* Soc │ │ │ │ │ +000116d0: 6b65 7473 2e52 6563 6569 7665 3a20 2020 kets.Receive: │ │ │ │ │ +000116e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000116f0: 2020 2020 5265 6365 6976 6520 2866 756e Receive (fun │ │ │ │ │ +00011700: 6374 696f 6e29 2e20 2020 286c 696e 6520 ction). (line │ │ │ │ │ +00011710: 3134 290a 2a20 536f 636b 6574 732e 5265 14).* Sockets.Re │ │ │ │ │ +00011720: 6365 6976 6520 3c31 3e3a 2020 2020 2020 ceive <1>: │ │ │ │ │ +00011730: 2020 2020 2020 2020 2020 2020 2052 6563 Rec │ │ │ │ │ +00011740: 6569 7665 2028 7072 6f63 6564 7572 6529 eive (procedure) │ │ │ │ │ +00011750: 2e20 2028 6c69 6e65 2031 3129 0a2a 2053 . (line 11).* S │ │ │ │ │ +00011760: 6f63 6b65 7473 2e52 6563 6569 7665 5f53 ockets.Receive_S │ │ │ │ │ +00011770: 6f6d 653a 2020 2020 2020 2020 2020 2020 ome: │ │ │ │ │ +00011780: 2020 2020 2020 5265 6365 6976 655f 536f Receive_So │ │ │ │ │ +00011790: 6d65 2028 7072 6f63 6564 7572 6529 2e0a me (procedure).. │ │ │ │ │ +000117a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000117b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000117c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000117d0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +000117e0: 6c69 6e65 2031 3629 0a2a 2053 6f63 6b65 line 16).* Socke │ │ │ │ │ +000117f0: 7473 2e53 656e 643a 2020 2020 2020 2020 ts.Send: │ │ │ │ │ +00011800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011810: 2020 5365 6e64 2028 7072 6f63 6564 7572 Send (procedur │ │ │ │ │ +00011820: 6529 2e20 2020 2020 286c 696e 6520 3132 e). (line 12 │ │ │ │ │ +00011830: 290a 2a20 536f 636b 6574 732e 5365 7473 ).* Sockets.Sets │ │ │ │ │ +00011840: 6f63 6b6f 7074 3a20 2020 2020 2020 2020 ockopt: │ │ │ │ │ +00011850: 2020 2020 2020 2020 2020 2053 6574 736f Setso │ │ │ │ │ +00011860: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +00011870: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +00011880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011890: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000118a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000118b0: 2020 286c 696e 6520 3133 290a 2a20 536f (line 13).* So │ │ │ │ │ +000118c0: 636b 6574 732e 5365 745f 4275 6666 6572 ckets.Set_Buffer │ │ │ │ │ +000118d0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +000118e0: 2020 2020 2053 6574 5f42 7566 6665 7220 Set_Buffer │ │ │ │ │ +000118f0: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +00011900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011930: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00011940: 6520 3132 290a 2a20 536f 636b 6574 732e e 12).* Sockets. │ │ │ │ │ +00011950: 5368 7574 646f 776e 3a20 2020 2020 2020 Shutdown: │ │ │ │ │ +00011960: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +00011970: 6875 7464 6f77 6e20 2870 726f 6365 6475 hutdown (procedu │ │ │ │ │ +00011980: 7265 292e 2028 6c69 6e65 2031 3129 0a2a re). (line 11).* │ │ │ │ │ +00011990: 2053 6f63 6b65 7473 2e53 6f63 6b65 743a Sockets.Socket: │ │ │ │ │ +000119a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000119b0: 2020 2020 2020 2020 5365 7474 696e 6720 Setting │ │ │ │ │ +000119c0: 7570 2075 6e69 6361 7374 2073 6f63 6b65 up unicast socke │ │ │ │ │ +000119d0: 7473 2e0a 2020 2020 2020 2020 2020 2020 ts.. │ │ │ │ │ +000119e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000119f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011a00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011a10: 2020 2028 6c69 6e65 2020 3629 0a2a 2053 (line 6).* S │ │ │ │ │ +00011a20: 6f63 6b65 7473 2e53 6f63 6b65 7420 3c31 ockets.Socket <1 │ │ │ │ │ +00011a30: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +00011a40: 2020 2020 2020 536f 636b 6574 2028 7072 Socket (pr │ │ │ │ │ +00011a50: 6f63 6564 7572 6529 2e20 2020 286c 696e ocedure). (lin │ │ │ │ │ +00011a60: 6520 3133 290a 2a20 536f 636b 6574 732e e 13).* Sockets. │ │ │ │ │ +00011a70: 534f 4c5f 534f 434b 4554 3a20 2020 2020 SOL_SOCKET: │ │ │ │ │ +00011a80: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +00011a90: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +00011aa0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +00011ab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011ac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011ad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011ae0: 2020 2020 2020 286c 696e 6520 3231 290a (line 21). │ │ │ │ │ +00011af0: 2a20 536f 636b 6574 732e 534f 4c5f 534f * Sockets.SOL_SO │ │ │ │ │ +00011b00: 434b 4554 203c 313e 3a20 2020 2020 2020 CKET <1>: │ │ │ │ │ +00011b10: 2020 2020 2020 2020 2053 6574 736f 636b Setsock │ │ │ │ │ +00011b20: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +00011b30: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00011b40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011b50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011b60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011b70: 286c 696e 6520 3231 290a 2a20 536f 636b (line 21).* Sock │ │ │ │ │ +00011b80: 6574 732e 534f 5f52 4356 4255 463a 2020 ets.SO_RCVBUF: │ │ │ │ │ +00011b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011ba0: 2020 2047 6574 736f 636b 6f70 7420 2870 Getsockopt (p │ │ │ │ │ +00011bb0: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +00011bc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011bd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011be0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011bf0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +00011c00: 3231 290a 2a20 536f 636b 6574 732e 534f 21).* Sockets.SO │ │ │ │ │ +00011c10: 5f52 4356 4255 4620 3c31 3e3a 2020 2020 _RCVBUF <1>: │ │ │ │ │ +00011c20: 2020 2020 2020 2020 2020 2020 2053 6574 Set │ │ │ │ │ +00011c30: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +00011c40: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +00011c50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011c70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011c80: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ +00011c90: 536f 636b 6574 732e 534f 5f52 4555 5345 Sockets.SO_REUSE │ │ │ │ │ +00011ca0: 4144 4452 3a20 2020 2020 2020 2020 2020 ADDR: │ │ │ │ │ +00011cb0: 2020 2020 2020 2047 6574 736f 636b 6f70 Getsockop │ │ │ │ │ +00011cc0: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +00011cd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011ce0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011d00: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +00011d10: 696e 6520 3231 290a 2a20 536f 636b 6574 ine 21).* Socket │ │ │ │ │ +00011d20: 732e 534f 5f52 4555 5345 4144 4452 203c s.SO_REUSEADDR < │ │ │ │ │ +00011d30: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ +00011d40: 2053 6574 736f 636b 6f70 7420 2870 726f Setsockopt (pro │ │ │ │ │ +00011d50: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +00011d60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011d70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011d80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011d90: 2020 2020 2020 2020 286c 696e 6520 3231 (line 21 │ │ │ │ │ +00011da0: 290a 2a20 536f 636b 6574 732e 534f 5f52 ).* Sockets.SO_R │ │ │ │ │ +00011db0: 4555 5345 504f 5254 3a20 2020 2020 2020 EUSEPORT: │ │ │ │ │ +00011dc0: 2020 2020 2020 2020 2020 2047 6574 736f Getso │ │ │ │ │ +00011dd0: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +00011de0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +00011df0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011e00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011e10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011e20: 2020 286c 696e 6520 3231 290a 2a20 536f (line 21).* So │ │ │ │ │ +00011e30: 636b 6574 732e 534f 5f52 4555 5345 504f ckets.SO_REUSEPO │ │ │ │ │ +00011e40: 5254 203c 313e 3a20 2020 2020 2020 2020 RT <1>: │ │ │ │ │ +00011e50: 2020 2020 2053 6574 736f 636b 6f70 7420 Setsockopt │ │ │ │ │ +00011e60: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +00011e70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011e80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011e90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011ea0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00011eb0: 6520 3231 290a 2a20 536f 636b 6574 732e e 21).* Sockets. │ │ │ │ │ +00011ec0: 534f 5f53 4e44 4255 463a 2020 2020 2020 SO_SNDBUF: │ │ │ │ │ +00011ed0: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +00011ee0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +00011ef0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +00011f00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011f10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011f20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011f30: 2020 2020 2020 286c 696e 6520 3231 290a (line 21). │ │ │ │ │ +00011f40: 2a20 536f 636b 6574 732e 534f 5f53 4e44 * Sockets.SO_SND │ │ │ │ │ +00011f50: 4255 4620 3c31 3e3a 2020 2020 2020 2020 BUF <1>: │ │ │ │ │ +00011f60: 2020 2020 2020 2020 2053 6574 736f 636b Setsock │ │ │ │ │ +00011f70: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +00011f80: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00011f90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011fa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011fb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011fc0: 286c 696e 6520 3231 290a 2a20 536f 636b (line 21).* Sock │ │ │ │ │ +00011fd0: 6574 732e 556e 7365 745f 4275 6666 6572 ets.Unset_Buffer │ │ │ │ │ +00011fe0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +00011ff0: 2020 2055 6e73 6574 5f42 7566 6665 7220 Unset_Buffer │ │ │ │ │ +00012000: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +00012010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012030: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012040: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00012050: 6520 3132 290a 2a20 536f 636b 6574 5f45 e 12).* Socket_E │ │ │ │ │ +00012060: 7272 6f72 3a20 2020 2020 2020 2020 2020 rror: │ │ │ │ │ +00012070: 2020 2020 2020 2020 2020 2020 2020 2042 B │ │ │ │ │ +00012080: 696e 6420 2870 726f 6365 6475 7265 292e ind (procedure). │ │ │ │ │ +00012090: 2020 2020 2028 6c69 6e65 2033 3129 0a2a (line 31).* │ │ │ │ │ +000120a0: 2053 6f63 6b65 745f 4572 726f 7220 3c31 Socket_Error <1 │ │ │ │ │ +000120b0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +000120c0: 2020 2020 2020 2020 436f 6e6e 6563 7420 Connect │ │ │ │ │ +000120d0: 2870 726f 6365 6475 7265 292e 2020 286c (procedure). (l │ │ │ │ │ +000120e0: 696e 6520 3238 290a 2a20 536f 636b 6574 ine 28).* Socket │ │ │ │ │ +000120f0: 5f46 443a 2020 2020 2020 2020 2020 2020 _FD: │ │ │ │ │ +00012100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012110: 2053 6574 7469 6e67 2075 7020 756e 6963 Setting up unic │ │ │ │ │ +00012120: 6173 7420 736f 636b 6574 732e 0a20 2020 ast sockets.. │ │ │ │ │ +00012130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012150: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012160: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00012170: 6520 2036 290a 2a20 536f 636b 6574 5f46 e 6).* Socket_F │ │ │ │ │ +00012180: 4420 3c31 3e3a 2020 2020 2020 2020 2020 D <1>: │ │ │ │ │ +00012190: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +000121a0: 6f63 6b65 7473 2070 6163 6b61 6765 2e20 ockets package. │ │ │ │ │ +000121b0: 2020 2020 2028 6c69 6e65 2020 3929 0a2a (line 9).* │ │ │ │ │ +000121c0: 2053 4f43 4b5f 4447 5241 4d3a 2020 2020 SOCK_DGRAM: │ │ │ │ │ +000121d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000121e0: 2020 2020 2020 2020 536f 636b 6574 2028 Socket ( │ │ │ │ │ +000121f0: 7072 6f63 6564 7572 6529 2e20 2020 286c procedure). (l │ │ │ │ │ +00012200: 696e 6520 3230 290a 2a20 534f 434b 5f53 ine 20).* SOCK_S │ │ │ │ │ +00012210: 5452 4541 4d3a 2020 2020 2020 2020 2020 TREAM: │ │ │ │ │ +00012220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012230: 2053 6f63 6b65 7420 2870 726f 6365 6475 Socket (procedu │ │ │ │ │ +00012240: 7265 292e 2020 2028 6c69 6e65 2032 3029 re). (line 20) │ │ │ │ │ +00012250: 0a2a 2053 4f4c 5f53 4f43 4b45 543a 2020 .* SOL_SOCKET: │ │ │ │ │ +00012260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012270: 2020 2020 2020 2020 2020 4765 7473 6f63 Getsoc │ │ │ │ │ +00012280: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ +00012290: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +000122a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000122b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000122c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000122d0: 2028 6c69 6e65 2032 3129 0a2a 2053 4f4c (line 21).* SOL │ │ │ │ │ +000122e0: 5f53 4f43 4b45 5420 3c31 3e3a 2020 2020 _SOCKET <1>: │ │ │ │ │ +000122f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012300: 2020 2020 5365 7473 6f63 6b6f 7074 2028 Setsockopt ( │ │ │ │ │ +00012310: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ +00012320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012350: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +00012360: 2032 3129 0a2a 2053 4f5f 5243 5642 5546 21).* SO_RCVBUF │ │ │ │ │ +00012370: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +00012380: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ +00012390: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ +000123a0: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ +000123b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000123c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000123d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000123e0: 2020 2020 2028 6c69 6e65 2032 3129 0a2a (line 21).* │ │ │ │ │ +000123f0: 2053 4f5f 5243 5642 5546 203c 313e 3a20 SO_RCVBUF <1>: │ │ │ │ │ +00012400: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012410: 2020 2020 2020 2020 5365 7473 6f63 6b6f Setsocko │ │ │ │ │ +00012420: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ +00012430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012460: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +00012470: 6c69 6e65 2032 3129 0a2a 2053 4f5f 5245 line 21).* SO_RE │ │ │ │ │ +00012480: 5553 4541 4444 523a 2020 2020 2020 2020 USEADDR: │ │ │ │ │ +00012490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000124a0: 2020 4765 7473 6f63 6b6f 7074 2028 7072 Getsockopt (pr │ │ │ │ │ +000124b0: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ +000124c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000124d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000124e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000124f0: 2020 2020 2020 2020 2028 6c69 6e65 2032 (line 2 │ │ │ │ │ +00012500: 3129 0a2a 2053 4f5f 5245 5553 4541 4444 1).* SO_REUSEADD │ │ │ │ │ +00012510: 5220 3c31 3e3a 2020 2020 2020 2020 2020 R <1>: │ │ │ │ │ +00012520: 2020 2020 2020 2020 2020 2020 5365 7473 Sets │ │ │ │ │ +00012530: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ +00012540: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ +00012550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012570: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012580: 2020 2028 6c69 6e65 2032 3129 0a2a 2053 (line 21).* S │ │ │ │ │ +00012590: 4f5f 5245 5553 4550 4f52 543a 2020 2020 O_REUSEPORT: │ │ │ │ │ +000125a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000125b0: 2020 2020 2020 4765 7473 6f63 6b6f 7074 Getsockopt │ │ │ │ │ +000125c0: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ +000125d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000125e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000125f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012600: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +00012610: 6e65 2032 3129 0a2a 2053 4f5f 5245 5553 ne 21).* SO_REUS │ │ │ │ │ +00012620: 4550 4f52 5420 3c31 3e3a 2020 2020 2020 EPORT <1>: │ │ │ │ │ +00012630: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012640: 5365 7473 6f63 6b6f 7074 2028 7072 6f63 Setsockopt (proc │ │ │ │ │ +00012650: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ +00012660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012670: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012680: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012690: 2020 2020 2020 2028 6c69 6e65 2032 3129 (line 21) │ │ │ │ │ +000126a0: 0a2a 2053 4f5f 534e 4442 5546 3a20 2020 .* SO_SNDBUF: │ │ │ │ │ +000126b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000126c0: 2020 2020 2020 2020 2020 4765 7473 6f63 Getsoc │ │ │ │ │ +000126d0: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ +000126e0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +000126f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012720: 2028 6c69 6e65 2032 3129 0a2a 2053 4f5f (line 21).* SO_ │ │ │ │ │ +00012730: 534e 4442 5546 203c 313e 3a20 2020 2020 SNDBUF <1>: │ │ │ │ │ +00012740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012750: 2020 2020 5365 7473 6f63 6b6f 7074 2028 Setsockopt ( │ │ │ │ │ +00012760: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ +00012770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012780: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012790: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000127a0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +000127b0: 2032 3129 0a2a 2053 7472 6561 6d5f 456c 21).* Stream_El │ │ │ │ │ +000127c0: 656d 656e 745f 4172 7261 793a 2020 2020 ement_Array: │ │ │ │ │ +000127d0: 2020 2020 2020 2020 2020 2020 2020 5261 Ra │ │ │ │ │ +000127e0: 7720 6461 7461 206d 616e 6970 756c 6174 w data manipulat │ │ │ │ │ +000127f0: 696f 6e2e 0a20 2020 2020 2020 2020 2020 ion.. │ │ │ │ │ +00012800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012810: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012820: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012830: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ +00012840: 5374 7265 616d 5f45 6c65 6d65 6e74 5f41 Stream_Element_A │ │ │ │ │ +00012850: 7272 6179 203c 313e 3a20 2020 2020 2020 rray <1>: │ │ │ │ │ +00012860: 2020 2020 2020 2052 6563 6569 7665 2028 Receive ( │ │ │ │ │ +00012870: 6675 6e63 7469 6f6e 292e 2020 2028 6c69 function). (li │ │ │ │ │ +00012880: 6e65 2032 3429 0a2a 2053 7472 6561 6d5f ne 24).* Stream_ │ │ │ │ │ +00012890: 456c 656d 656e 745f 4172 7261 7920 3c32 Element_Array <2 │ │ │ │ │ +000128a0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +000128b0: 5265 6365 6976 6520 2870 726f 6365 6475 Receive (procedu │ │ │ │ │ +000128c0: 7265 292e 2020 286c 696e 6520 3138 290a re). (line 18). │ │ │ │ │ +000128d0: 2a20 5374 7265 616d 5f45 6c65 6d65 6e74 * Stream_Element │ │ │ │ │ +000128e0: 5f41 7272 6179 203c 333e 3a20 2020 2020 _Array <3>: │ │ │ │ │ +000128f0: 2020 2020 2020 2020 2052 6563 6569 7665 Receive │ │ │ │ │ +00012900: 5f53 6f6d 6520 2870 726f 6365 6475 7265 _Some (procedure │ │ │ │ │ +00012910: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +00012920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012950: 2020 286c 696e 6520 3234 290a 2a20 5374 (line 24).* St │ │ │ │ │ +00012960: 7265 616d 5f45 6c65 6d65 6e74 5f41 7272 ream_Element_Arr │ │ │ │ │ +00012970: 6179 203c 343e 3a20 2020 2020 2020 2020 ay <4>: │ │ │ │ │ +00012980: 2020 2020 2053 656e 6420 2870 726f 6365 Send (proce │ │ │ │ │ +00012990: 6475 7265 292e 2020 2020 2028 6c69 6e65 dure). (line │ │ │ │ │ +000129a0: 2031 3829 0a2a 2053 7472 6561 6d5f 456c 18).* Stream_El │ │ │ │ │ +000129b0: 656d 656e 745f 436f 756e 743a 2020 2020 ement_Count: │ │ │ │ │ +000129c0: 2020 2020 2020 2020 2020 2020 2020 5265 Re │ │ │ │ │ +000129d0: 6365 6976 6520 2866 756e 6374 696f 6e29 ceive (function) │ │ │ │ │ +000129e0: 2e20 2020 286c 696e 6520 3234 290a 2a20 . (line 24).* │ │ │ │ │ +000129f0: 5374 7265 616d 5f45 6c65 6d65 6e74 5f43 Stream_Element_C │ │ │ │ │ +00012a00: 6f75 6e74 203c 313e 3a20 2020 2020 2020 ount <1>: │ │ │ │ │ +00012a10: 2020 2020 2020 2052 6563 6569 7665 5f53 Receive_S │ │ │ │ │ +00012a20: 6f6d 6520 2870 726f 6365 6475 7265 292e ome (procedure). │ │ │ │ │ +00012a30: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00012a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012a50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012a60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012a70: 286c 696e 6520 3234 290a 2a20 5374 7269 (line 24).* Stri │ │ │ │ │ +00012a80: 6e67 5f41 6363 6573 733a 2020 2020 2020 ng_Access: │ │ │ │ │ +00012a90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012aa0: 2020 2053 6f63 6b65 7473 2e4e 616d 696e Sockets.Namin │ │ │ │ │ +00012ab0: 6720 7061 636b 6167 652e 0a20 2020 2020 g package.. │ │ │ │ │ +00012ac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012ad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012ae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012af0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +00012b00: 3338 290a 2a20 5374 7269 6e67 5f41 7272 38).* String_Arr │ │ │ │ │ +00012b10: 6179 3a20 2020 2020 2020 2020 2020 2020 ay: │ │ │ │ │ +00012b20: 2020 2020 2020 2020 2020 2020 2053 6f63 Soc │ │ │ │ │ +00012b30: 6b65 7473 2e4e 616d 696e 6720 7061 636b kets.Naming pack │ │ │ │ │ +00012b40: 6167 652e 0a20 2020 2020 2020 2020 2020 age.. │ │ │ │ │ +00012b50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012b60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012b70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012b80: 2020 2020 286c 696e 6520 3431 290a 2a20 (line 41).* │ │ │ │ │ +00012b90: 5375 6767 6573 7469 6e67 2061 2066 6561 Suggesting a fea │ │ │ │ │ +00012ba0: 7475 7265 3a20 2020 2020 2020 2020 2020 ture: │ │ │ │ │ +00012bb0: 2020 2020 2020 2052 6573 6f75 7263 6573 Resources │ │ │ │ │ +00012bc0: 206f 6e20 7468 6520 496e 7465 726e 6574 on the Internet │ │ │ │ │ +00012bd0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +00012be0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012bf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c10: 2028 6c69 6e65 2020 3629 0a2a 2054 4350 (line 6).* TCP │ │ │ │ │ +00012c20: 2073 6f63 6b65 743a 2020 2020 2020 2020 socket: │ │ │ │ │ +00012c30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c40: 2020 2020 5365 7474 696e 6720 7570 2075 Setting up u │ │ │ │ │ +00012c50: 6e69 6361 7374 2073 6f63 6b65 7473 2e0a nicast sockets.. │ │ │ │ │ +00012c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c90: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +00012ca0: 6c69 6e65 2020 3629 0a2a 2055 4450 2073 line 6).* UDP s │ │ │ │ │ +00012cb0: 6f63 6b65 743a 2020 2020 2020 2020 2020 ocket: │ │ │ │ │ +00012cc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012cd0: 2020 5365 7474 696e 6720 7570 2075 6e69 Setting up uni │ │ │ │ │ +00012ce0: 6361 7374 2073 6f63 6b65 7473 2e0a 2020 cast sockets.. │ │ │ │ │ +00012cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012d00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012d10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012d20: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +00012d30: 6e65 2020 3629 0a2a 2055 6e69 6361 7374 ne 6).* Unicast │ │ │ │ │ +00012d40: 2073 6f63 6b65 7473 3a20 2020 2020 2020 sockets: │ │ │ │ │ +00012d50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012d60: 5365 7474 696e 6720 7570 2075 6e69 6361 Setting up unica │ │ │ │ │ +00012d70: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ +00012d80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012d90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012da0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012db0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +00012dc0: 2020 3629 0a2a 2055 6e73 6574 5f42 7566 6).* Unset_Buf │ │ │ │ │ +00012dd0: 6665 723a 2020 2020 2020 2020 2020 2020 fer: │ │ │ │ │ +00012de0: 2020 2020 2020 2020 2020 2020 2020 556e Un │ │ │ │ │ +00012df0: 7365 745f 4275 6666 6572 2028 7072 6f63 set_Buffer (proc │ │ │ │ │ +00012e00: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ +00012e10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012e20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012e30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012e40: 2020 2020 2020 2028 6c69 6e65 2020 3929 (line 9) │ │ │ │ │ +00012e50: 0a2a 2056 616c 7565 3a20 2020 2020 2020 .* Value: │ │ │ │ │ +00012e60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012e70: 2020 2020 2020 2020 2020 5661 6c75 6520 Value │ │ │ │ │ +00012e80: 2866 756e 6374 696f 6e29 2e20 2020 2020 (function). │ │ │ │ │ +00012e90: 286c 696e 6520 2039 290a 0a0a 1f0a 5461 (line 9).....Ta │ │ │ │ │ +00012ea0: 6720 5461 626c 653a 0a4e 6f64 653a 2054 g Table:.Node: T │ │ │ │ │ +00012eb0: 6f70 7f38 3137 0a4e 6f64 653a 2057 6861 op.817.Node: Wha │ │ │ │ │ +00012ec0: 7420 6973 2041 6461 536f 636b 6574 733f t is AdaSockets? │ │ │ │ │ +00012ed0: 7f31 3339 300a 4e6f 6465 3a20 496e 7374 .1390.Node: Inst │ │ │ │ │ +00012ee0: 616c 6c69 6e67 2041 6461 536f 636b 6574 alling AdaSocket │ │ │ │ │ +00012ef0: 737f 3232 3833 0a4e 6f64 653a 2055 7369 s.2283.Node: Usi │ │ │ │ │ +00012f00: 6e67 2041 6461 536f 636b 6574 737f 3332 ng AdaSockets.32 │ │ │ │ │ +00012f10: 3730 0a4e 6f64 653a 2043 6f6d 7069 6c69 70.Node: Compili │ │ │ │ │ +00012f20: 6e67 2061 6e20 4164 6120 6170 706c 6963 ng an Ada applic │ │ │ │ │ +00012f30: 6174 696f 6e7f 3335 3631 0a4e 6f64 653a ation.3561.Node: │ │ │ │ │ +00012f40: 2053 6574 7469 6e67 2075 7020 756e 6963 Setting up unic │ │ │ │ │ +00012f50: 6173 7420 736f 636b 6574 737f 3431 3838 ast sockets.4188 │ │ │ │ │ +00012f60: 0a4e 6f64 653a 2053 6574 7469 6e67 2075 .Node: Setting u │ │ │ │ │ +00012f70: 7020 6d75 6c74 6963 6173 7420 736f 636b p multicast sock │ │ │ │ │ +00012f80: 6574 737f 3534 3934 0a4e 6f64 653a 2053 ets.5494.Node: S │ │ │ │ │ +00012f90: 656e 6469 6e67 2061 6e64 2072 6563 6569 ending and recei │ │ │ │ │ +00012fa0: 7669 6e67 2064 6174 617f 3638 3233 0a4e ving data.6823.N │ │ │ │ │ +00012fb0: 6f64 653a 2052 6177 2064 6174 6120 6d61 ode: Raw data ma │ │ │ │ │ +00012fc0: 6e69 7075 6c61 7469 6f6e 7f37 3138 350a nipulation.7185. │ │ │ │ │ +00012fd0: 4e6f 6465 3a20 5374 7269 6e67 2d6f 7269 Node: String-ori │ │ │ │ │ +00012fe0: 656e 7465 6420 6578 6368 616e 6765 737f ented exchanges. │ │ │ │ │ +00012ff0: 3735 3835 0a4e 6f64 653a 2053 6f63 6b65 7585.Node: Socke │ │ │ │ │ +00013000: 7473 2070 6163 6b61 6765 7f38 3638 320a ts package.8682. │ │ │ │ │ +00013010: 4e6f 6465 3a20 4163 6365 7074 5f53 6f63 Node: Accept_Soc │ │ │ │ │ +00013020: 6b65 7420 2870 726f 6365 6475 7265 297f ket (procedure). │ │ │ │ │ +00013030: 3130 3934 390a 4e6f 6465 3a20 4269 6e64 10949.Node: Bind │ │ │ │ │ +00013040: 2028 7072 6f63 6564 7572 6529 7f31 3333 (procedure).133 │ │ │ │ │ +00013050: 3438 0a4e 6f64 653a 2043 6f6e 6e65 6374 48.Node: Connect │ │ │ │ │ +00013060: 2028 7072 6f63 6564 7572 6529 7f31 3436 (procedure).146 │ │ │ │ │ +00013070: 3231 0a4e 6f64 653a 2047 6574 2028 6675 21.Node: Get (fu │ │ │ │ │ +00013080: 6e63 7469 6f6e 297f 3135 3635 330a 4e6f nction).15653.No │ │ │ │ │ +00013090: 6465 3a20 4765 745f 4368 6172 2028 6675 de: Get_Char (fu │ │ │ │ │ +000130a0: 6e63 7469 6f6e 297f 3136 3835 300a 4e6f nction).16850.No │ │ │ │ │ +000130b0: 6465 3a20 4765 745f 4c69 6e65 2028 6675 de: Get_Line (fu │ │ │ │ │ +000130c0: 6e63 7469 6f6e 297f 3137 3731 310a 4e6f nction).17711.No │ │ │ │ │ +000130d0: 6465 3a20 4765 745f 4c69 6e65 2028 7072 de: Get_Line (pr │ │ │ │ │ +000130e0: 6f63 6564 7572 6529 7f31 3930 3138 0a4e ocedure).19018.N │ │ │ │ │ +000130f0: 6f64 653a 2047 6574 5f52 6563 6569 7665 ode: Get_Receive │ │ │ │ │ +00013100: 5f51 7565 7565 5f53 697a 6520 2866 756e _Queue_Size (fun │ │ │ │ │ +00013110: 6374 696f 6e29 7f32 3031 3833 0a4e 6f64 ction).20183.Nod │ │ │ │ │ +00013120: 653a 2047 6574 5f53 656e 645f 5175 6575 e: Get_Send_Queu │ │ │ │ │ +00013130: 655f 5369 7a65 2028 6675 6e63 7469 6f6e e_Size (function │ │ │ │ │ +00013140: 297f 3231 3035 310a 4e6f 6465 3a20 4765 ).21051.Node: Ge │ │ │ │ │ +00013150: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ +00013160: 7572 6529 7f32 3139 3038 0a4e 6f64 653a ure).21908.Node: │ │ │ │ │ +00013170: 204c 6973 7465 6e20 2870 726f 6365 6475 Listen (procedu │ │ │ │ │ +00013180: 7265 297f 3233 3232 360a 4e6f 6465 3a20 re).23226.Node: │ │ │ │ │ +00013190: 4e65 775f 4c69 6e65 2028 7072 6f63 6564 New_Line (proced │ │ │ │ │ +000131a0: 7572 6529 7f32 3431 3032 0a4e 6f64 653a ure).24102.Node: │ │ │ │ │ +000131b0: 2050 7574 2028 7072 6f63 6564 7572 6529 Put (procedure) │ │ │ │ │ +000131c0: 7f32 3438 3234 0a4e 6f64 653a 2050 7574 .24824.Node: Put │ │ │ │ │ +000131d0: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ +000131e0: 297f 3235 3535 350a 4e6f 6465 3a20 5265 ).25555.Node: Re │ │ │ │ │ +000131f0: 6365 6976 6520 2866 756e 6374 696f 6e29 ceive (function) │ │ │ │ │ +00013200: 7f32 3633 3431 0a4e 6f64 653a 2052 6563 .26341.Node: Rec │ │ │ │ │ +00013210: 6569 7665 2028 7072 6f63 6564 7572 6529 eive (procedure) │ │ │ │ │ +00013220: 7f32 3735 3530 0a4e 6f64 653a 2052 6563 .27550.Node: Rec │ │ │ │ │ +00013230: 6569 7665 5f53 6f6d 6520 2870 726f 6365 eive_Some (proce │ │ │ │ │ +00013240: 6475 7265 297f 3238 3537 330a 4e6f 6465 dure).28573.Node │ │ │ │ │ +00013250: 3a20 5365 6e64 2028 7072 6f63 6564 7572 : Send (procedur │ │ │ │ │ +00013260: 6529 7f32 3937 3630 0a4e 6f64 653a 2053 e).29760.Node: S │ │ │ │ │ +00013270: 6574 5f42 7566 6665 7220 2870 726f 6365 et_Buffer (proce │ │ │ │ │ +00013280: 6475 7265 297f 3330 3439 390a 4e6f 6465 dure).30499.Node │ │ │ │ │ +00013290: 3a20 5365 7473 6f63 6b6f 7074 2028 7072 : Setsockopt (pr │ │ │ │ │ +000132a0: 6f63 6564 7572 6529 7f33 3137 3132 0a4e ocedure).31712.N │ │ │ │ │ +000132b0: 6f64 653a 2053 6875 7464 6f77 6e20 2870 ode: Shutdown (p │ │ │ │ │ +000132c0: 726f 6365 6475 7265 297f 3333 3031 300a rocedure).33010. │ │ │ │ │ +000132d0: 4e6f 6465 3a20 536f 636b 6574 2028 7072 Node: Socket (pr │ │ │ │ │ +000132e0: 6f63 6564 7572 6529 7f33 3336 3438 0a4e ocedure).33648.N │ │ │ │ │ +000132f0: 6f64 653a 2055 6e73 6574 5f42 7566 6665 ode: Unset_Buffe │ │ │ │ │ +00013300: 7220 2870 726f 6365 6475 7265 297f 3335 r (procedure).35 │ │ │ │ │ +00013310: 3032 320a 4e6f 6465 3a20 536f 636b 6574 022.Node: Socket │ │ │ │ │ +00013320: 732e 4d75 6c74 6963 6173 7420 7061 636b s.Multicast pack │ │ │ │ │ +00013330: 6167 657f 3335 3732 310a 4e6f 6465 3a20 age.35721.Node: │ │ │ │ │ +00013340: 4372 6561 7465 5f4d 756c 7469 6361 7374 Create_Multicast │ │ │ │ │ +00013350: 5f53 6f63 6b65 7420 2866 756e 6374 696f _Socket (functio │ │ │ │ │ +00013360: 6e29 7f33 3635 3436 0a4e 6f64 653a 2053 n).36546.Node: S │ │ │ │ │ +00013370: 6f63 6b65 7473 2e4e 616d 696e 6720 7061 ockets.Naming pa │ │ │ │ │ +00013380: 636b 6167 657f 3430 3537 350a 4e6f 6465 ckage.40575.Node │ │ │ │ │ +00013390: 3a20 4164 6472 6573 735f 4f66 2028 6675 : Address_Of (fu │ │ │ │ │ +000133a0: 6e63 7469 6f6e 297f 3433 3038 360a 4e6f nction).43086.No │ │ │ │ │ +000133b0: 6465 3a20 416e 795f 4164 6472 6573 7320 de: Any_Address │ │ │ │ │ +000133c0: 2866 756e 6374 696f 6e29 7f34 3339 3736 (function).43976 │ │ │ │ │ +000133d0: 0a4e 6f64 653a 2047 6574 5f50 6565 725f .Node: Get_Peer_ │ │ │ │ │ +000133e0: 4164 6472 2028 6675 6e63 7469 6f6e 297f Addr (function). │ │ │ │ │ +000133f0: 3434 3338 370a 4e6f 6465 3a20 4765 745f 44387.Node: Get_ │ │ │ │ │ +00013400: 5065 6572 5f50 6f72 7420 2866 756e 6374 Peer_Port (funct │ │ │ │ │ +00013410: 696f 6e29 7f34 3439 3539 0a4e 6f64 653a ion).44959.Node: │ │ │ │ │ +00013420: 2047 6574 5f53 6f63 6b5f 4164 6472 2028 Get_Sock_Addr ( │ │ │ │ │ +00013430: 6675 6e63 7469 6f6e 297f 3435 3534 390a function).45549. │ │ │ │ │ +00013440: 4e6f 6465 3a20 4765 745f 536f 636b 5f50 Node: Get_Sock_P │ │ │ │ │ +00013450: 6f72 7420 2866 756e 6374 696f 6e29 7f34 ort (function).4 │ │ │ │ │ +00013460: 3631 3431 0a4e 6f64 653a 2048 6f73 745f 6141.Node: Host_ │ │ │ │ │ +00013470: 4e61 6d65 2028 6675 6e63 7469 6f6e 297f Name (function). │ │ │ │ │ +00013480: 3436 3732 350a 4e6f 6465 3a20 496d 6167 46725.Node: Imag │ │ │ │ │ +00013490: 6520 2866 756e 6374 696f 6e29 7f34 3732 e (function).472 │ │ │ │ │ +000134a0: 3431 0a4e 6f64 653a 2049 6e66 6f5f 4f66 41.Node: Info_Of │ │ │ │ │ +000134b0: 5f4e 616d 655f 4f72 5f49 5020 2866 756e _Name_Or_IP (fun │ │ │ │ │ +000134c0: 6374 696f 6e29 7f34 3737 3137 0a4e 6f64 ction).47717.Nod │ │ │ │ │ +000134d0: 653a 2049 735f 4950 5f41 6464 7265 7373 e: Is_IP_Address │ │ │ │ │ +000134e0: 2028 6675 6e63 7469 6f6e 297f 3438 3434 (function).4844 │ │ │ │ │ +000134f0: 330a 4e6f 6465 3a20 4e61 6d65 5f4f 6620 3.Node: Name_Of │ │ │ │ │ +00013500: 2866 756e 6374 696f 6e29 7f34 3839 3533 (function).48953 │ │ │ │ │ +00013510: 0a4e 6f64 653a 2056 616c 7565 2028 6675 .Node: Value (fu │ │ │ │ │ +00013520: 6e63 7469 6f6e 297f 3439 3533 360a 4e6f nction).49536.No │ │ │ │ │ +00013530: 6465 3a20 436f 6e74 7269 6275 746f 7273 de: Contributors │ │ │ │ │ +00013540: 7f34 3939 3838 0a4e 6f64 653a 2052 6573 .49988.Node: Res │ │ │ │ │ +00013550: 6f75 7263 6573 206f 6e20 7468 6520 496e ources on the In │ │ │ │ │ +00013560: 7465 726e 6574 7f35 3133 3734 0a4e 6f64 ternet.51374.Nod │ │ │ │ │ +00013570: 653a 2049 6e64 6578 7f35 3138 3038 0a1f e: Index.51808.. │ │ │ │ │ +00013580: 0a45 6e64 2054 6167 2054 6162 6c65 0a .End Tag Table.