--- /srv/reproducible-results/rbuild-debian/r-b-build.iteBzl7U/b1/adasockets_1.12-8_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.iteBzl7U/b2/adasockets_1.12-8_amd64.changes ├── Files │ @@ -1,4 +1,4 @@ │ │ c3b4326ce5c2916bf2d4b452f176686b 50604 debug optional libadasockets10-dbgsym_1.12-8_amd64.deb │ 6f694ec7056ae91fd99d9ff17ab6f9b9 29296 libs optional libadasockets10_1.12-8_amd64.deb │ - c3ab4472c08dcf80636442c8ba2fff31 329180 libdevel optional libadasockets12-dev_1.12-8_amd64.deb │ + b874119ca4d8b782765115453295de86 328800 libdevel optional libadasockets12-dev_1.12-8_amd64.deb ├── libadasockets12-dev_1.12-8_amd64.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2023-05-10 20:09:30.000000 debian-binary │ │ --rw-r--r-- 0 0 0 1856 2023-05-10 20:09:30.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 327132 2023-05-10 20:09:30.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 1852 2023-05-10 20:09:30.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 326756 2023-05-10 20:09:30.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -37,27 +37,27 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3766 2023-05-10 20:09:30.000000 ./usr/share/ada/adainclude/adasockets/sockets-utils.ads │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23300 2023-05-10 20:09:30.000000 ./usr/share/ada/adainclude/adasockets/sockets.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10598 2023-05-10 20:09:30.000000 ./usr/share/ada/adainclude/adasockets/sockets.ads │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/doc/libadasockets12-dev/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 768 2023-05-10 20:07:02.000000 ./usr/share/doc/libadasockets12-dev/README.Debian │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1940 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets12-dev/README.md │ │ │ │ --rw-r--r-- 0 root (0) root (0) 250488 2023-05-10 20:09:30.000000 ./usr/share/doc/libadasockets12-dev/adasockets.pdf.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 249930 2023-05-10 20:09:30.000000 ./usr/share/doc/libadasockets12-dev/adasockets.pdf.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1072 2023-05-10 20:09:30.000000 ./usr/share/doc/libadasockets12-dev/changelog.Debian.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3541 2023-05-10 20:08:47.000000 ./usr/share/doc/libadasockets12-dev/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/doc/libadasockets12-dev/examples/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 233 2023-05-10 20:07:02.000000 ./usr/share/doc/libadasockets12-dev/examples/examples.gpr │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4956 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets12-dev/examples/listener.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3980 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets12-dev/examples/multi.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4591 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets12-dev/examples/stream_listener.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3904 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets12-dev/examples/stream_sender.adb │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4919 2020-06-18 13:33:07.000000 ./usr/share/doc/libadasockets12-dev/examples/tcprelay.adb │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 477 2023-05-10 20:09:30.000000 ./usr/share/doc-base/libadasockets12-dev.adasockets │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/gpr/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 354 2023-05-10 20:09:30.000000 ./usr/share/gpr/adasockets.gpr │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/info/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13789 2023-05-10 20:09:30.000000 ./usr/share/info/adasockets.info.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13987 2023-05-10 20:09:30.000000 ./usr/share/info/adasockets.info.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/man/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/share/man/man1/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 299 2023-05-10 20:09:30.000000 ./usr/share/man/man1/adasockets-config.1.gz │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2023-05-10 20:09:30.000000 ./usr/lib/x86_64-linux-gnu/libadasockets.so -> libadasockets.so.10.0.0 │ │ │ ├── ./usr/share/doc/libadasockets12-dev/adasockets.pdf.gz │ │ │ │ ├── adasockets.pdf │ │ │ │ │ ├── pdftotext {} - │ │ │ │ │ │ @@ -38,70 +38,70 @@ │ │ │ │ │ │ Setting up multicast sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ Sending and receiving data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 │ │ │ │ │ │ 3.4.1 Raw data manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 │ │ │ │ │ │ 3.4.2 String-oriented exchanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 │ │ │ │ │ │ │ │ │ │ │ │ Sockets package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ Accept Socket (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ -Bind (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ +Bind (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ Connect (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ Get (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ Get Char (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ Get Line (function). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 │ │ │ │ │ │ Get Line (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 │ │ │ │ │ │ Get Receive Queue Size (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ Get Send Queue Size (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ -Getsockopt (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ +Getsockopt (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ Listen (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ -New Line (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ +New Line (procedure) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ │ │ Sockets.Multicast package . . . . . . . . . . . . . . . . . . . . . 19 │ │ │ │ │ │ Create Multicast Socket (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 │ │ │ │ │ │ -Create Multicast Socket (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 │ │ │ │ │ │ +Create Multicast Socket (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 │ │ │ │ │ │ │ │ │ │ │ │ ii │ │ │ │ │ │ │ │ │ │ │ │ 6 │ │ │ │ │ │ │ │ │ │ │ │ -Sockets.Naming package . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Address Of (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Any Address (function). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Get Peer Addr (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Get Peer Port (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Get Sock Addr (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Get Sock Port (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -Host Name (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -Image (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -Info Of Name Or IP (function). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ -Is IP Address (function). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ -Name Of (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ -Value (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +Sockets.Naming package . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Address Of (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Any Address (function). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Get Peer Addr (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Get Peer Port (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Get Sock Addr (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Get Sock Port (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +Host Name (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +Image (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +Info Of Name Or IP (function). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ +Is IP Address (function). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ +Name Of (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ +Value (function) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 │ │ │ │ │ │ │ │ │ │ │ │ Appendix A │ │ │ │ │ │ │ │ │ │ │ │ -Contributors. . . . . . . . . . . . . . . . . . . . . . . . 27 │ │ │ │ │ │ +Contributors. . . . . . . . . . . . . . . . . . . . . . . . 29 │ │ │ │ │ │ │ │ │ │ │ │ Appendix B │ │ │ │ │ │ │ │ │ │ │ │ -Resources on the Internet . . . . . . . . . 29 │ │ │ │ │ │ +Resources on the Internet . . . . . . . . . 31 │ │ │ │ │ │ │ │ │ │ │ │ -Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 │ │ │ │ │ │ +Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ 1 What is AdaSockets? │ │ │ │ │ │ AdaSockets is a set of free software Ada packages allowing Ada programmers to use the │ │ │ │ │ │ so-called BSD sockets from their favourite programming language. AdaSockets has been │ │ │ │ │ │ designed and tested with the GNAT free software Ada compiler, but should be portable to │ │ │ │ │ │ @@ -113,15 +113,15 @@ │ │ │ │ │ │ AdaSockets philosophy is to help the Ada programmer by providing easy-to-use objects. │ │ │ │ │ │ Special care has been taken to ensure that performances do however remain good. │ │ │ │ │ │ │ │ │ │ │ │ 3 │ │ │ │ │ │ │ │ │ │ │ │ 2 Installing AdaSockets │ │ │ │ │ │ Installing AdaSockets on a Unix or OpenVMS machine is as simple as typing a few commands. Once you got the latest version of AdaSockets (see Appendix B [Resources on │ │ │ │ │ │ -the Internet], page 29), uncompress and untar it and go to the top-level directory of the │ │ │ │ │ │ +the Internet], page 31), uncompress and untar it and go to the top-level directory of the │ │ │ │ │ │ distribution. │ │ │ │ │ │ You must configure the AdaSockets distribution by using the configure command, such │ │ │ │ │ │ as in: │ │ │ │ │ │ ./configure --prefix=/users/sam/adasockets │ │ │ │ │ │ If you want to install AdaSockets under the /usr/local hierarchy, you do not need to │ │ │ │ │ │ specify the --prefix option. Make sure you have write permission on the target directories. │ │ │ │ │ │ Once AdaSockets is configured, you can compile and install it by using the make command: │ │ │ │ │ │ @@ -241,39 +241,15 @@ │ │ │ │ │ │ This procedure creates a new socket corresponding to an incoming connection │ │ │ │ │ │ on TCP socket Socket. All the communications with the peer will take place │ │ │ │ │ │ on New Socket, while the program can accept another connection on Socket. │ │ │ │ │ │ New Socket must not be initialized before calling this procedure, or must have │ │ │ │ │ │ been cleaned up by calling Shutdown, in order to avoid a file descriptors leak. │ │ │ │ │ │ Accept_Socket will block until an incoming connection is ready to be accepted. │ │ │ │ │ │ Example │ │ │ │ │ │ -declare │ │ │ │ │ │ -Sock │ │ │ │ │ │ -: Socket_FD; │ │ │ │ │ │ -Incoming : Socket_FD; │ │ │ │ │ │ -begin │ │ │ │ │ │ --- Create a TCP socket listening on local port 4161 │ │ │ │ │ │ -Socket (Sock, PF_INET, SOCK_STREAM); │ │ │ │ │ │ -Bind (Sock, 4161); │ │ │ │ │ │ -Listen (Sock, 3); │ │ │ │ │ │ --- One-connection-at-a-time server (3 may be pending) │ │ │ │ │ │ -loop │ │ │ │ │ │ --- Wait for a new connection and accept it │ │ │ │ │ │ -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; │ │ │ │ │ │ - │ │ │ │ │ │ - 8 │ │ │ │ │ │ - │ │ │ │ │ │ -AdaSockets reference manual │ │ │ │ │ │ - │ │ │ │ │ │ -See also [Bind (procedure)], page 8, │ │ │ │ │ │ +See also [Bind (procedure)], page 7, │ │ │ │ │ │ [Listen (procedure)], page 12, │ │ │ │ │ │ [Shutdown (procedure)], page 17, │ │ │ │ │ │ [Socket (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ Bind (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ @@ -288,24 +264,28 @@ │ │ │ │ │ │ Port │ │ │ │ │ │ Host │ │ │ │ │ │ │ │ │ │ │ │ in │ │ │ │ │ │ in │ │ │ │ │ │ in │ │ │ │ │ │ │ │ │ │ │ │ -[Sockets.Bind] │ │ │ │ │ │ - │ │ │ │ │ │ Initialized socket object │ │ │ │ │ │ Local port to bind to │ │ │ │ │ │ Local interface to bind to │ │ │ │ │ │ │ │ │ │ │ │ +[Sockets.Bind] │ │ │ │ │ │ + │ │ │ │ │ │ + 8 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure requests a local port from the operating system. If 0 is given │ │ │ │ │ │ in Port, the system will assign a free port whose number can later be retrieved │ │ │ │ │ │ -using [Get Sock Port (function)], page 23. Also, most operating systems require │ │ │ │ │ │ +using [Get Sock Port (function)], page 25. Also, most operating systems require │ │ │ │ │ │ special privileges if you want to bind to ports below 1024. │ │ │ │ │ │ If Host is not the empty string, it must contain the IP address of a local interface │ │ │ │ │ │ to bind to, or a name which resolves into such an address. If an empty string │ │ │ │ │ │ is given (the default), the socket will be bound to all the available interfaces. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Socket_Error │ │ │ │ │ │ │ │ │ │ │ │ @@ -345,31 +325,31 @@ │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Refused │ │ │ │ │ │ Socket_Error │ │ │ │ │ │ │ │ │ │ │ │ The connection has been refused by the server │ │ │ │ │ │ Another error occurred during the connection │ │ │ │ │ │ │ │ │ │ │ │ - Chapter 4: Sockets package │ │ │ │ │ │ - │ │ │ │ │ │ -9 │ │ │ │ │ │ - │ │ │ │ │ │ Example │ │ │ │ │ │ declare │ │ │ │ │ │ -Sock : Multicast_Socket_FD; │ │ │ │ │ │ +Sock : Socket_FD; │ │ │ │ │ │ begin │ │ │ │ │ │ --- Create a multicast socket on group 224.1.2.3 port 8763 │ │ │ │ │ │ -Sock := Create_Multicast_Socket ("224.1.2.3", 8763); │ │ │ │ │ │ --- Perform some operations on socket │ │ │ │ │ │ +-- 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 │ │ │ │ │ │ [...] │ │ │ │ │ │ --- Shutdown the socket in both directions │ │ │ │ │ │ -Shutdown (Sock, Both); │ │ │ │ │ │ end; │ │ │ │ │ │ See also [Socket (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +9 │ │ │ │ │ │ + │ │ │ │ │ │ Get (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Get a string from a remote host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ @@ -415,33 +395,33 @@ │ │ │ │ │ │ │ │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ │ │ 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. │ │ │ │ │ │ │ │ │ │ │ │ + 10 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ Get Line (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Get a whole line from a remote host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ @@ -473,26 +453,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 │ │ │ │ │ │ @@ -514,18 +490,22 @@ │ │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +11 │ │ │ │ │ │ + │ │ │ │ │ │ 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 │ │ │ │ │ │ │ │ │ │ │ │ @@ -544,25 +524,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 │ │ │ │ │ │ @@ -574,21 +550,25 @@ │ │ │ │ │ │ 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. │ │ │ │ │ │ +See also [Send (procedure)], page 15. │ │ │ │ │ │ │ │ │ │ │ │ Getsockopt (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Retrieve a socket option │ │ │ │ │ │ │ │ │ │ │ │ + 12 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ procedure Getsockopt (Socket : Socket FD; │ │ │ │ │ │ [Sockets.Getsockopt] │ │ │ │ │ │ Level : Socket Level := SOL SOCKET; │ │ │ │ │ │ Optname : Socket Option; Optval : out Integer); │ │ │ │ │ │ Parameters │ │ │ │ │ │ @@ -624,45 +604,42 @@ │ │ │ │ │ │ │ │ │ │ │ │ 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, │ │ │ │ │ │ +[Bind (procedure)], page 7, │ │ │ │ │ │ [Socket (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ New Line (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Send a CR/LF to a remote host │ │ │ │ │ │ │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +13 │ │ │ │ │ │ + │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ procedure New_Line (Socket : Socket FD’Class; │ │ │ │ │ │ Count : Natural := 1); │ │ │ │ │ │ Parameters │ │ │ │ │ │ Socket │ │ │ │ │ │ Count │ │ │ │ │ │ @@ -679,15 +656,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 │ │ │ │ │ │ @@ -709,21 +686,17 @@ │ │ │ │ │ │ Description │ │ │ │ │ │ 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 │ │ │ │ │ │ +See also [New Line (procedure)], page 12, │ │ │ │ │ │ +[Put Line (procedure)], page 13, │ │ │ │ │ │ +[Send (procedure)], page 15. │ │ │ │ │ │ │ │ │ │ │ │ Put Line (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Send a CR/LF terminated string to a remote host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -741,22 +714,27 @@ │ │ │ │ │ │ │ │ │ │ │ │ Initialized and connected socket object │ │ │ │ │ │ String to send │ │ │ │ │ │ │ │ │ │ │ │ Description │ │ │ │ │ │ This procedure sends the content of Str plus a CR/LF combination over an │ │ │ │ │ │ outgoing or incoming socket. │ │ │ │ │ │ + │ │ │ │ │ │ + 14 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has prematurely closed the connection │ │ │ │ │ │ │ │ │ │ │ │ -See also [New Line (procedure)], page 13, │ │ │ │ │ │ +See also [New Line (procedure)], page 12, │ │ │ │ │ │ [Put (procedure)], page 13, │ │ │ │ │ │ -[Send (procedure)], page 16. │ │ │ │ │ │ +[Send (procedure)], page 15. │ │ │ │ │ │ │ │ │ │ │ │ Receive (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Receive raw data over a socket │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -782,23 +760,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 │ │ │ │ │ │ │ │ │ │ │ │ @@ -820,14 +794,18 @@ │ │ │ │ │ │ socket. It will block until the Data reception buffer has been totally filled. │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Connection_Closed │ │ │ │ │ │ │ │ │ │ │ │ Peer has closed the connection before Data’Length bytes │ │ │ │ │ │ were received │ │ │ │ │ │ │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +15 │ │ │ │ │ │ + │ │ │ │ │ │ See also [Get Line (function)], page 10, │ │ │ │ │ │ [Get Line (procedure)], page 10, │ │ │ │ │ │ [Receive (function)], page 14, │ │ │ │ │ │ [Receive Some (procedure)], page 15. │ │ │ │ │ │ │ │ │ │ │ │ Receive Some (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ @@ -862,19 +840,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 │ │ │ │ │ │ @@ -897,25 +871,28 @@ │ │ │ │ │ │ socket. │ │ │ │ │ │ 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. │ │ │ │ │ │ + │ │ │ │ │ │ + 16 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ │ │ │ │ │ │ Set Buffer (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Install a line-oriented buffer of the socket object │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ - │ │ │ │ │ │ -procedure Set_Buffer │ │ │ │ │ │ [Sockets.Set Buffer] │ │ │ │ │ │ +procedure Set_Buffer │ │ │ │ │ │ (Socket : Socket FD’Class; Length : Positive := 1500); │ │ │ │ │ │ Parameters │ │ │ │ │ │ Socket │ │ │ │ │ │ Length │ │ │ │ │ │ │ │ │ │ │ │ in │ │ │ │ │ │ in │ │ │ │ │ │ @@ -934,18 +911,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 │ │ │ │ │ │ @@ -969,15 +942,19 @@ │ │ │ │ │ │ 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. │ │ │ │ │ │ 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. │ │ │ │ │ │ +See also [Getsockopt (procedure)], page 11. │ │ │ │ │ │ + │ │ │ │ │ │ + Chapter 4: Sockets package │ │ │ │ │ │ + │ │ │ │ │ │ +17 │ │ │ │ │ │ │ │ │ │ │ │ Shutdown (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Shutdown a socket │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -1015,24 +992,20 @@ │ │ │ │ │ │ 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 │ │ │ │ │ │ @@ -1044,14 +1017,18 @@ │ │ │ │ │ │ -- Perform some operations on socket │ │ │ │ │ │ [...] │ │ │ │ │ │ -- Shutdown the socket in both directions │ │ │ │ │ │ Shutdown (Sock, Both); │ │ │ │ │ │ end; │ │ │ │ │ │ See also [Shutdown (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ + 18 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ Unset Buffer (procedure) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Deinstall the line-oriented buffer of the socket object │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ @@ -1077,26 +1054,25 @@ │ │ │ │ │ │ │ │ │ │ │ │ type Multicast_Socket_FD is new │ │ │ │ │ │ Socket FD with private; │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Multicast.Multicast Socket FD] │ │ │ │ │ │ │ │ │ │ │ │ The Multicast_Socket_FD tagged type derives from the Socket_FD type. It gets │ │ │ │ │ │ -initialized by calling [Create Multicast Socket (function)], page 19. An uninitialized │ │ │ │ │ │ +initialized by calling [Create Multicast Socket (function)], page 20. An uninitialized │ │ │ │ │ │ Multicast_Socket_FD can be succesfully compared to Null_Multicast_Socket_FD. │ │ │ │ │ │ │ │ │ │ │ │ Create Multicast Socket (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Create an IP multicast socket │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ - │ │ │ │ │ │ -function │ │ │ │ │ │ [Sockets.Multicast.Create Multicast Socket] │ │ │ │ │ │ +function │ │ │ │ │ │ Create_Multicast_Socket (Group : String; Port : Natural; │ │ │ │ │ │ TTL : Positive := 16; Self_Loop : Boolean := True; │ │ │ │ │ │ Local_If : String := 0.0.0.0) │ │ │ │ │ │ return Multicast Socket FD; │ │ │ │ │ │ Parameters │ │ │ │ │ │ Group │ │ │ │ │ │ Port │ │ │ │ │ │ @@ -1124,26 +1100,46 @@ │ │ │ │ │ │ Be careful when choosing the TTL parameter of your IP multicast socket. Most │ │ │ │ │ │ IP multicast routers do implement threshold-based filtering and will not let IP │ │ │ │ │ │ multicast packets leave your organization if the TTL on the last router is smaller │ │ │ │ │ │ than 16. │ │ │ │ │ │ If 0 is given for the Port, a local one will be chosen. It can then later be retrieved │ │ │ │ │ │ using Get Sock Port. │ │ │ │ │ │ Example │ │ │ │ │ │ -See also [Send (procedure)], page 16, │ │ │ │ │ │ +declare │ │ │ │ │ │ +Sock │ │ │ │ │ │ +: Socket_FD; │ │ │ │ │ │ +Incoming : Socket_FD; │ │ │ │ │ │ +begin │ │ │ │ │ │ +-- Create a TCP socket listening on local port 4161 │ │ │ │ │ │ +Socket (Sock, PF_INET, SOCK_STREAM); │ │ │ │ │ │ +Bind (Sock, 4161); │ │ │ │ │ │ +Listen (Sock, 3); │ │ │ │ │ │ + │ │ │ │ │ │ + 20 │ │ │ │ │ │ + │ │ │ │ │ │ +AdaSockets reference manual │ │ │ │ │ │ + │ │ │ │ │ │ +-- One-connection-at-a-time server (3 may be pending) │ │ │ │ │ │ +loop │ │ │ │ │ │ +-- Wait for a new connection and accept it │ │ │ │ │ │ +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 15, │ │ │ │ │ │ [Shutdown (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ Create Multicast Socket (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Create an IP multicast socket │ │ │ │ │ │ │ │ │ │ │ │ - 20 │ │ │ │ │ │ - │ │ │ │ │ │ -AdaSockets reference manual │ │ │ │ │ │ - │ │ │ │ │ │ Prototype │ │ │ │ │ │ │ │ │ │ │ │ function │ │ │ │ │ │ [Sockets.Multicast.Create Multicast Socket] │ │ │ │ │ │ Create_Multicast_Socket (Group : String; Port : Positive; │ │ │ │ │ │ Local_Port : Natural; TTL : Positive := 16; │ │ │ │ │ │ Local_If : String := 0.0.0.0) │ │ │ │ │ │ @@ -1171,18 +1167,33 @@ │ │ │ │ │ │ The new initialized multicast socket │ │ │ │ │ │ Description │ │ │ │ │ │ This function creates an IP multicast socket attached to a given group, identified by its class E IP address and port. If Local Port is 0, a free port will │ │ │ │ │ │ automatically be chosen by your operating system. │ │ │ │ │ │ This function should be used when you want to send packets to a multicast │ │ │ │ │ │ group without receiving any packet yourself. │ │ │ │ │ │ Example │ │ │ │ │ │ -See also [Send (procedure)], page 16, │ │ │ │ │ │ +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); │ │ │ │ │ │ + │ │ │ │ │ │ + Chapter 5: Sockets.Multicast package │ │ │ │ │ │ + │ │ │ │ │ │ +-- Do a mail transaction then close the socket │ │ │ │ │ │ +[...] │ │ │ │ │ │ +end; │ │ │ │ │ │ +See also [Send (procedure)], page 15, │ │ │ │ │ │ [Shutdown (procedure)], page 17. │ │ │ │ │ │ │ │ │ │ │ │ - 21 │ │ │ │ │ │ +21 │ │ │ │ │ │ + │ │ │ │ │ │ + 23 │ │ │ │ │ │ │ │ │ │ │ │ 6 Sockets.Naming package │ │ │ │ │ │ The Sockets.Naming package contains types and helper functions needed to manipulate │ │ │ │ │ │ Internet host names and addresses. │ │ │ │ │ │ │ │ │ │ │ │ type Address is record │ │ │ │ │ │ H1, H2, H3, H4 : Address Component; │ │ │ │ │ │ @@ -1251,17 +1262,17 @@ │ │ │ │ │ │ Return value │ │ │ │ │ │ IPv4 address │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Naming_Error │ │ │ │ │ │ │ │ │ │ │ │ No information available for this name or address │ │ │ │ │ │ │ │ │ │ │ │ -See also [Name Of (function)], page 24. │ │ │ │ │ │ +See also [Name Of (function)], page 26. │ │ │ │ │ │ │ │ │ │ │ │ - 22 │ │ │ │ │ │ + 24 │ │ │ │ │ │ │ │ │ │ │ │ AdaSockets reference manual │ │ │ │ │ │ │ │ │ │ │ │ Any Address (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Special address representing any address on the local host │ │ │ │ │ │ @@ -1290,16 +1301,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Naming.Get Peer Addr] │ │ │ │ │ │ │ │ │ │ │ │ Connected socket object │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ Peer address │ │ │ │ │ │ -See also [Get Peer Port (function)], page 22, │ │ │ │ │ │ -[Get Sock Addr (function)], page 22. │ │ │ │ │ │ +See also [Get Peer Port (function)], page 24, │ │ │ │ │ │ +[Get Sock Addr (function)], page 24. │ │ │ │ │ │ │ │ │ │ │ │ Get Peer Port (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Retrieve port used by remote host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -1314,16 +1325,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Naming.Get Peer Port] │ │ │ │ │ │ │ │ │ │ │ │ Connected socket object │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ Port used on the remote host │ │ │ │ │ │ -See also [Get Sock Port (function)], page 23, │ │ │ │ │ │ -[Get Peer Addr (function)], page 22. │ │ │ │ │ │ +See also [Get Sock Port (function)], page 25, │ │ │ │ │ │ +[Get Peer Addr (function)], page 24. │ │ │ │ │ │ │ │ │ │ │ │ Get Sock Addr (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Retrieve IP address of local host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -1338,20 +1349,20 @@ │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Naming.Get Sock Addr] │ │ │ │ │ │ │ │ │ │ │ │ Connected socket object │ │ │ │ │ │ │ │ │ │ │ │ Chapter 6: Sockets.Naming package │ │ │ │ │ │ │ │ │ │ │ │ -23 │ │ │ │ │ │ +25 │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ Address of local interface used │ │ │ │ │ │ -See also [Get Sock Port (function)], page 23, │ │ │ │ │ │ -[Get Peer Addr (function)], page 22. │ │ │ │ │ │ +See also [Get Sock Port (function)], page 25, │ │ │ │ │ │ +[Get Peer Addr (function)], page 24. │ │ │ │ │ │ │ │ │ │ │ │ Get Sock Port (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Retrieve port used by local host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -1366,16 +1377,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Naming.Get Sock Port] │ │ │ │ │ │ │ │ │ │ │ │ Connected socket object │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ Port used on the local host │ │ │ │ │ │ -See also [Get Peer Port (function)], page 22, │ │ │ │ │ │ -[Get Sock Addr (function)], page 22. │ │ │ │ │ │ +See also [Get Peer Port (function)], page 24, │ │ │ │ │ │ +[Get Sock Addr (function)], page 24. │ │ │ │ │ │ │ │ │ │ │ │ Host Name (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Get the name of the current host │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -1403,19 +1414,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ in │ │ │ │ │ │ │ │ │ │ │ │ IP address │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ String representation of the IP address │ │ │ │ │ │ -See also [Value (function)], page 25. │ │ │ │ │ │ +See also [Value (function)], page 27. │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Naming.Image] │ │ │ │ │ │ │ │ │ │ │ │ - 24 │ │ │ │ │ │ + 26 │ │ │ │ │ │ │ │ │ │ │ │ AdaSockets reference manual │ │ │ │ │ │ │ │ │ │ │ │ Info Of Name Or IP (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Get addresses and names of a host │ │ │ │ │ │ @@ -1486,19 +1497,19 @@ │ │ │ │ │ │ Return value │ │ │ │ │ │ Name of the host │ │ │ │ │ │ Exceptions │ │ │ │ │ │ Naming_Error │ │ │ │ │ │ │ │ │ │ │ │ No information available for this name or address │ │ │ │ │ │ │ │ │ │ │ │ -See also [Address Of (function)], page 21. │ │ │ │ │ │ +See also [Address Of (function)], page 23. │ │ │ │ │ │ │ │ │ │ │ │ Chapter 6: Sockets.Naming package │ │ │ │ │ │ │ │ │ │ │ │ -25 │ │ │ │ │ │ +27 │ │ │ │ │ │ │ │ │ │ │ │ Value (function) │ │ │ │ │ │ Purpose │ │ │ │ │ │ │ │ │ │ │ │ Transform a string into an address │ │ │ │ │ │ │ │ │ │ │ │ Prototype │ │ │ │ │ │ @@ -1508,21 +1519,21 @@ │ │ │ │ │ │ Parameters │ │ │ │ │ │ Add │ │ │ │ │ │ │ │ │ │ │ │ in │ │ │ │ │ │ │ │ │ │ │ │ Return value │ │ │ │ │ │ Corresponding Address │ │ │ │ │ │ -See also [Image (function)], page 23. │ │ │ │ │ │ +See also [Image (function)], page 25. │ │ │ │ │ │ │ │ │ │ │ │ [Sockets.Naming.Value] │ │ │ │ │ │ │ │ │ │ │ │ Textual representation of an IP address │ │ │ │ │ │ │ │ │ │ │ │ - 27 │ │ │ │ │ │ + 29 │ │ │ │ │ │ │ │ │ │ │ │ Appendix A Contributors │ │ │ │ │ │ AdaSockets has been originally developped by Samuel Tardieu who still maintains it. However, the following people have made crucial contributions to AdaSockets, be they new code, │ │ │ │ │ │ bug fixes or porting to new operating systems: │ │ │ │ │ │ • Dmitriy Anisimkov (anisimkov@yahoo.com) │ │ │ │ │ │ • Alan Barnes (barnesa@aston.ac.uk) │ │ │ │ │ │ • Juanma Barranquero (lektu@terra.es) │ │ │ │ │ │ @@ -1539,213 +1550,213 @@ │ │ │ │ │ │ • Thomas Quinot (thomas@cuivre.fr.eu.org) │ │ │ │ │ │ • Preben Randhol (randhol@pvv.org) │ │ │ │ │ │ • Maxim Reznik (max1@mbank.com.ua) │ │ │ │ │ │ • Joel Sherrill (joel.sherrill@oarcorp.com) │ │ │ │ │ │ • Samuel Tardieu (sam@rfc1149.net) │ │ │ │ │ │ If you feel that you have been forgotten, please send me a mail so that I can fix it in the │ │ │ │ │ │ next version. │ │ │ │ │ │ -See Appendix B [Resources on the Internet], page 29, for how to contribute. │ │ │ │ │ │ +See Appendix B [Resources on the Internet], page 31, for how to contribute. │ │ │ │ │ │ │ │ │ │ │ │ - 29 │ │ │ │ │ │ + 31 │ │ │ │ │ │ │ │ │ │ │ │ Appendix B Resources on the Internet │ │ │ │ │ │ The latest version of AdaSockets can always be found at: │ │ │ │ │ │ http://www.rfc1149.net/devel/adasockets │ │ │ │ │ │ You can report issues or submit questions on GitHub’s issue tracker at: │ │ │ │ │ │ https://github.com/samueltardieu/adasockets/issues │ │ │ │ │ │ │ │ │ │ │ │ - 31 │ │ │ │ │ │ + 33 │ │ │ │ │ │ │ │ │ │ │ │ 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Address_Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Address_Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Address_Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -AF_INET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ -Any_Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Assigning a local port . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ +Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Address_Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Address_Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Address_Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +AF_INET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ +Any_Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Assigning a local port . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ │ │ │ │ │ │ Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ Get_Char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 │ │ │ │ │ │ -Get_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11 │ │ │ │ │ │ -Get_Peer_Addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Get_Peer_Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ +Get_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 │ │ │ │ │ │ +Get_Peer_Addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Get_Peer_Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ Get_Receive_Queue_Size . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ -Get_Send_Queue_Size. . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ -Get_Sock_Addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Get_Sock_Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Get_Send_Queue_Size. . . . . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ +Get_Sock_Addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Get_Sock_Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ Getsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ Group communication . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ │ │ │ │ │ │ H │ │ │ │ │ │ B │ │ │ │ │ │ -Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ -Binding a socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ +Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ +Binding a socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ Both . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ │ │ │ │ │ │ Handling a new connection . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ -Host_Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Host_Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Host_Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Host_Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ │ │ │ │ │ │ I │ │ │ │ │ │ C │ │ │ │ │ │ Closing a socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 │ │ │ │ │ │ Comparaison with GNAT.Sockets . . . . . . . . . . . . . . . . 1 │ │ │ │ │ │ Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ Connecting a socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ -Connection_Closed . . . . . . . 9, 10, 11, 13, 14, 15, 16 │ │ │ │ │ │ +Connection_Closed . . . . . . . . . . . . . . 9, 10, 13, 14, 15 │ │ │ │ │ │ Connection_Refused . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ -Contributing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27, 29 │ │ │ │ │ │ +Contributing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29, 31 │ │ │ │ │ │ Create_Multicast_Socket . . . . . . . . . . . . . . . 5, 19, 20 │ │ │ │ │ │ -Creating a multicast socket . . . . . . . . . . . . . . . . . . 5, 19 │ │ │ │ │ │ -Creating a server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 │ │ │ │ │ │ -Creating a socket . . . . . . . . . . . . . . . . . . . . . . . . 5, 17, 19 │ │ │ │ │ │ +Creating a multicast socket . . . . . . . . . . . . . . 5, 19, 20 │ │ │ │ │ │ +Creating a server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ +Creating a socket. . . . . . . . . . . . . . . . . . . . . 5, 17, 19, 20 │ │ │ │ │ │ Creating a TCP socket . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ Creating a UDP socket . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ Creating a unicast socket . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ -CR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 11, 13 │ │ │ │ │ │ +CR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 13 │ │ │ │ │ │ │ │ │ │ │ │ -Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -Info_Of_Name_Or_IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +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 │ │ │ │ │ │ -Is_IP_Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +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 │ │ │ │ │ │ +LF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10, 13 │ │ │ │ │ │ Listen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ Listen queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ │ │ │ │ │ │ M │ │ │ │ │ │ E │ │ │ │ │ │ Establishing a listen queue . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ │ │ │ │ │ │ -Manipulating socket options . . . . . . . . . . . . . . . . 12, 16 │ │ │ │ │ │ +Manipulating socket options . . . . . . . . . . . . . . . . 11, 16 │ │ │ │ │ │ Mbone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ Multicast sockets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ Multicast_Socket_FD . . . . . . . . . . . . . . . . . . . . . . . 5, 19 │ │ │ │ │ │ │ │ │ │ │ │ F │ │ │ │ │ │ │ │ │ │ │ │ N │ │ │ │ │ │ │ │ │ │ │ │ -Finding AdaSockets on the Internet . . . . . . . . . . . . 29 │ │ │ │ │ │ +Finding AdaSockets on the Internet . . . . . . . . . . . . 31 │ │ │ │ │ │ │ │ │ │ │ │ -Name_Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ -Naming_Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21, 24 │ │ │ │ │ │ +Name_Of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 │ │ │ │ │ │ +Naming_Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23, 26 │ │ │ │ │ │ New_Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 │ │ │ │ │ │ │ │ │ │ │ │ - 32 │ │ │ │ │ │ + 34 │ │ │ │ │ │ │ │ │ │ │ │ AdaSockets reference manual │ │ │ │ │ │ │ │ │ │ │ │ P │ │ │ │ │ │ │ │ │ │ │ │ Sockets.Multicast.Create_ │ │ │ │ │ │ Multicast_Socket . . . . . . . . . . . . . . . . . . . . . 5, 19, 20 │ │ │ │ │ │ -Sockets.Naming.Address_Of . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Sockets.Naming.Any_Address. . . . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Sockets.Naming.Get_Peer_Addr . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Sockets.Naming.Get_Peer_Port . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Sockets.Naming.Get_Sock_Addr . . . . . . . . . . . . . . . 22 │ │ │ │ │ │ -Sockets.Naming.Get_Sock_Port . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -Sockets.Naming.Host_Name . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -Sockets.Naming.Image . . . . . . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ -Sockets.Naming.Info_Of_Name_Or_IP . . . . . . . . . 24 │ │ │ │ │ │ -Sockets.Naming.Is_IP_Address . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ -Sockets.Naming.Name_Of . . . . . . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ -Sockets.Naming.Value . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +Sockets.Naming.Address_Of . . . . . . . . . . . . . . . . . . . 23 │ │ │ │ │ │ +Sockets.Naming.Any_Address. . . . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Sockets.Naming.Get_Peer_Addr . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Sockets.Naming.Get_Peer_Port . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Sockets.Naming.Get_Sock_Addr . . . . . . . . . . . . . . . 24 │ │ │ │ │ │ +Sockets.Naming.Get_Sock_Port . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +Sockets.Naming.Host_Name . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -String_Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 │ │ │ │ │ │ -Suggesting a feature . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 │ │ │ │ │ │ +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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 │ │ │ │ │ │ -Representing IP addresses . . . . . . . . . . . . . . . . . . 23, 25 │ │ │ │ │ │ -Retrieving socket options. . . . . . . . . . . . . . . . . . . . . . . 12 │ │ │ │ │ │ +Reporting a bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 │ │ │ │ │ │ +Representing IP addresses . . . . . . . . . . . . . . . . . . 25, 27 │ │ │ │ │ │ +Retrieving socket options. . . . . . . . . . . . . . . . . . . . . . . 11 │ │ │ │ │ │ │ │ │ │ │ │ S │ │ │ │ │ │ -Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16, 17 │ │ │ │ │ │ -Sending data . . . . . . . . . . . . . . . . . . . . . 6, 11, 13, 14, 16 │ │ │ │ │ │ -Sending patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 │ │ │ │ │ │ +Send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15, 17 │ │ │ │ │ │ +Sending data . . . . . . . . . . . . . . . . . . . . . 6, 11, 12, 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.Bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 │ │ │ │ │ │ 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 │ │ │ │ │ │ Unicast sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 │ │ │ │ │ │ Unset_Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 │ │ │ │ │ │ │ │ │ │ │ │ V │ │ │ │ │ │ -Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 │ │ │ │ │ │ +Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 │ │ │ ├── ./usr/share/info/adasockets.info.gz │ │ │ │ ├── adasockets.info │ │ │ │ │ @@ -739,4076 +739,4195 @@ │ │ │ │ │ 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 0a1f 0a46 696c 653a 2061 re)::....File: a │ │ │ │ │ -00003410: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ -00003420: 204e 6f64 653a 2042 696e 6420 2870 726f Node: Bind (pro │ │ │ │ │ -00003430: 6365 6475 7265 292c 2020 4e65 7874 3a20 cedure), Next: │ │ │ │ │ -00003440: 436f 6e6e 6563 7420 2870 726f 6365 6475 Connect (procedu │ │ │ │ │ -00003450: 7265 292c 2020 5072 6576 3a20 4163 6365 re), Prev: Acce │ │ │ │ │ -00003460: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ -00003470: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ -00003480: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ -00003490: 6475 7265 290a 0a42 696e 6420 2870 726f dure)..Bind (pro │ │ │ │ │ -000034a0: 6365 6475 7265 290a 2d2d 2d2d 2d2d 2d2d cedure).-------- │ │ │ │ │ -000034b0: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ -000034c0: 450a 2020 2020 2041 7373 6f63 6961 7465 E. Associate │ │ │ │ │ -000034d0: 2061 206c 6f63 616c 2070 6f72 7420 746f a local port to │ │ │ │ │ -000034e0: 2061 2073 6f63 6b65 740a 5052 4f54 4f54 a socket.PROTOT │ │ │ │ │ -000034f0: 5950 450a 2020 2020 2020 2d2d 2053 6f63 YPE. -- Soc │ │ │ │ │ -00003500: 6b65 7473 2e42 696e 643a 2070 726f 6365 kets.Bind: proce │ │ │ │ │ -00003510: 6475 7265 2042 696e 6420 2853 4f43 4b45 dure Bind (SOCKE │ │ │ │ │ -00003520: 5420 3a20 536f 636b 6574 5f46 443b 0a20 T : Socket_FD;. │ │ │ │ │ -00003530: 2020 2020 2020 2020 2020 2020 2020 504f PO │ │ │ │ │ -00003540: 5254 203a 204e 6174 7572 616c 3b20 484f RT : Natural; HO │ │ │ │ │ -00003550: 5354 203a 2053 7472 696e 6720 3a3d 2022 ST : String := " │ │ │ │ │ -00003560: 2229 3b0a 0a50 4152 414d 4554 4552 530a ");..PARAMETERS. │ │ │ │ │ -00003570: 2020 2020 2053 4f43 4b45 5420 2020 2020 SOCKET │ │ │ │ │ -00003580: 696e 2020 2020 2020 2020 2049 6e69 7469 in Initi │ │ │ │ │ -00003590: 616c 697a 6564 2073 6f63 6b65 7420 6f62 alized socket ob │ │ │ │ │ -000035a0: 6a65 6374 0a20 2020 2020 504f 5254 2020 ject. PORT │ │ │ │ │ -000035b0: 2020 2020 2069 6e20 2020 2020 2020 2020 in │ │ │ │ │ -000035c0: 4c6f 6361 6c20 706f 7274 2074 6f20 6269 Local port to bi │ │ │ │ │ -000035d0: 6e64 2074 6f0a 2020 2020 2048 4f53 5420 nd to. HOST │ │ │ │ │ -000035e0: 2020 2020 2020 696e 2020 2020 2020 2020 in │ │ │ │ │ -000035f0: 204c 6f63 616c 2069 6e74 6572 6661 6365 Local interface │ │ │ │ │ -00003600: 2074 6f20 6269 6e64 2074 6f0a 0a44 4553 to bind to..DES │ │ │ │ │ -00003610: 4352 4950 5449 4f4e 0a20 2020 2020 5468 CRIPTION. Th │ │ │ │ │ -00003620: 6973 2070 726f 6365 6475 7265 2072 6571 is procedure req │ │ │ │ │ -00003630: 7565 7374 7320 6120 6c6f 6361 6c20 706f uests a local po │ │ │ │ │ -00003640: 7274 2066 726f 6d20 7468 6520 6f70 6572 rt from the oper │ │ │ │ │ -00003650: 6174 696e 6720 7379 7374 656d 2e20 2049 ating system. I │ │ │ │ │ -00003660: 660a 2020 2020 2030 2069 7320 6769 7665 f. 0 is give │ │ │ │ │ -00003670: 6e20 696e 2050 4f52 542c 2074 6865 2073 n in PORT, the s │ │ │ │ │ -00003680: 7973 7465 6d20 7769 6c6c 2061 7373 6967 ystem will assig │ │ │ │ │ -00003690: 6e20 6120 6672 6565 2070 6f72 7420 7768 n a free port wh │ │ │ │ │ -000036a0: 6f73 6520 6e75 6d62 6572 0a20 2020 2020 ose number. │ │ │ │ │ -000036b0: 6361 6e20 6c61 7465 7220 6265 2072 6574 can later be ret │ │ │ │ │ -000036c0: 7269 6576 6564 2075 7369 6e67 202a 6e6f rieved using *no │ │ │ │ │ -000036d0: 7465 2047 6574 5f53 6f63 6b5f 506f 7274 te Get_Sock_Port │ │ │ │ │ -000036e0: 2028 6675 6e63 7469 6f6e 293a 3a2e 0a20 (function)::.. │ │ │ │ │ -000036f0: 2020 2020 416c 736f 2c20 6d6f 7374 206f Also, most o │ │ │ │ │ -00003700: 7065 7261 7469 6e67 2073 7973 7465 6d73 perating systems │ │ │ │ │ -00003710: 2072 6571 7569 7265 2073 7065 6369 616c require special │ │ │ │ │ -00003720: 2070 7269 7669 6c65 6765 7320 6966 2079 privileges if y │ │ │ │ │ -00003730: 6f75 2077 616e 740a 2020 2020 2074 6f20 ou want. to │ │ │ │ │ -00003740: 6269 6e64 2074 6f20 706f 7274 7320 6265 bind to ports be │ │ │ │ │ -00003750: 6c6f 7720 3130 3234 2e0a 0a20 2020 2020 low 1024... │ │ │ │ │ -00003760: 4966 2048 4f53 5420 6973 206e 6f74 2074 If HOST is not t │ │ │ │ │ -00003770: 6865 2065 6d70 7479 2073 7472 696e 672c he empty string, │ │ │ │ │ -00003780: 2069 7420 6d75 7374 2063 6f6e 7461 696e it must contain │ │ │ │ │ -00003790: 2074 6865 2049 5020 6164 6472 6573 7320 the IP address │ │ │ │ │ -000037a0: 6f66 0a20 2020 2020 6120 6c6f 6361 6c20 of. a local │ │ │ │ │ -000037b0: 696e 7465 7266 6163 6520 746f 2062 696e interface to bin │ │ │ │ │ -000037c0: 6420 746f 2c20 6f72 2061 206e 616d 6520 d to, or a name │ │ │ │ │ -000037d0: 7768 6963 6820 7265 736f 6c76 6573 2069 which resolves i │ │ │ │ │ -000037e0: 6e74 6f20 7375 6368 2061 6e0a 2020 2020 nto such an. │ │ │ │ │ -000037f0: 2061 6464 7265 7373 2e20 2049 6620 616e address. If an │ │ │ │ │ -00003800: 2065 6d70 7479 2073 7472 696e 6720 6973 empty string is │ │ │ │ │ -00003810: 2067 6976 656e 2028 7468 6520 6465 6661 given (the defa │ │ │ │ │ -00003820: 756c 7429 2c20 7468 6520 736f 636b 6574 ult), the socket │ │ │ │ │ -00003830: 0a20 2020 2020 7769 6c6c 2062 6520 626f . will be bo │ │ │ │ │ -00003840: 756e 6420 746f 2061 6c6c 2074 6865 2061 und to all the a │ │ │ │ │ -00003850: 7661 696c 6162 6c65 2069 6e74 6572 6661 vailable interfa │ │ │ │ │ -00003860: 6365 732e 0a0a 4558 4345 5054 494f 4e53 ces...EXCEPTIONS │ │ │ │ │ -00003870: 0a20 2020 2020 2753 6f63 6b65 745f 4572 . 'Socket_Er │ │ │ │ │ -00003880: 726f 7227 2020 2020 2052 6571 7565 7374 ror' Request │ │ │ │ │ -00003890: 6564 2070 6f72 7420 6f72 2069 6e74 6572 ed port or inter │ │ │ │ │ -000038a0: 6661 6365 206e 6f74 2061 7661 696c 6162 face not availab │ │ │ │ │ -000038b0: 6c65 0a0a 5345 4520 414c 534f 0a20 2020 le..SEE ALSO. │ │ │ │ │ -000038c0: 2020 2a6e 6f74 6520 4c69 7374 656e 2028 *note Listen ( │ │ │ │ │ -000038d0: 7072 6f63 6564 7572 6529 3a3a 2c0a 2020 procedure)::,. │ │ │ │ │ -000038e0: 2020 202a 6e6f 7465 2053 6f63 6b65 7420 *note Socket │ │ │ │ │ -000038f0: 2870 726f 6365 6475 7265 293a 3a2e 0a0a (procedure)::... │ │ │ │ │ -00003900: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ -00003910: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ -00003920: 436f 6e6e 6563 7420 2870 726f 6365 6475 Connect (procedu │ │ │ │ │ -00003930: 7265 292c 2020 4e65 7874 3a20 4765 7420 re), Next: Get │ │ │ │ │ -00003940: 2866 756e 6374 696f 6e29 2c20 2050 7265 (function), Pre │ │ │ │ │ -00003950: 763a 2042 696e 6420 2870 726f 6365 6475 v: Bind (procedu │ │ │ │ │ -00003960: 7265 292c 2020 5570 3a20 4163 6365 7074 re), Up: Accept │ │ │ │ │ -00003970: 5f53 6f63 6b65 7420 2870 726f 6365 6475 _Socket (procedu │ │ │ │ │ -00003980: 7265 290a 0a43 6f6e 6e65 6374 2028 7072 re)..Connect (pr │ │ │ │ │ -00003990: 6f63 6564 7572 6529 0a2d 2d2d 2d2d 2d2d ocedure).------- │ │ │ │ │ -000039a0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 ------------..PU │ │ │ │ │ -000039b0: 5250 4f53 450a 2020 2020 2043 6f6e 6e65 RPOSE. Conne │ │ │ │ │ -000039c0: 6374 2061 2073 6f63 6b65 7420 6f6e 2061 ct a socket on a │ │ │ │ │ -000039d0: 2067 6976 656e 2068 6f73 742f 706f 7274 given host/port │ │ │ │ │ -000039e0: 0a50 524f 544f 5459 5045 0a20 2020 2020 .PROTOTYPE. │ │ │ │ │ -000039f0: 202d 2d20 536f 636b 6574 732e 436f 6e6e -- Sockets.Conn │ │ │ │ │ -00003a00: 6563 743a 2070 726f 6365 6475 7265 2043 ect: procedure C │ │ │ │ │ -00003a10: 6f6e 6e65 6374 2028 534f 434b 4554 203a onnect (SOCKET : │ │ │ │ │ -00003a20: 2053 6f63 6b65 745f 4644 3b0a 2020 2020 Socket_FD;. │ │ │ │ │ -00003a30: 2020 2020 2020 2020 2020 2048 4f53 5420 HOST │ │ │ │ │ -00003a40: 3a20 5374 7269 6e67 3b20 504f 5254 203a : String; PORT : │ │ │ │ │ -00003a50: 2050 6f73 6974 6976 6529 3b0a 0a50 4152 Positive);..PAR │ │ │ │ │ -00003a60: 414d 4554 4552 530a 2020 2020 2053 4f43 AMETERS. SOC │ │ │ │ │ -00003a70: 4b45 5420 2020 2020 696e 2020 2020 2020 KET in │ │ │ │ │ -00003a80: 2020 2049 6e69 7469 616c 697a 6564 2073 Initialized s │ │ │ │ │ -00003a90: 6f63 6b65 7420 6f62 6a65 6374 0a20 2020 ocket object. │ │ │ │ │ -00003aa0: 2020 484f 5354 2020 2020 2020 2069 6e20 HOST in │ │ │ │ │ -00003ab0: 2020 2020 2020 2020 486f 7374 2074 6f20 Host to │ │ │ │ │ -00003ac0: 636f 6e6e 6563 7420 746f 0a20 2020 2020 connect to. │ │ │ │ │ -00003ad0: 504f 5254 2020 2020 2020 2069 6e20 2020 PORT in │ │ │ │ │ -00003ae0: 2020 2020 2020 506f 7274 2074 6f20 636f Port to co │ │ │ │ │ -00003af0: 6e6e 6563 7420 746f 0a0a 4445 5343 5249 nnect to..DESCRI │ │ │ │ │ -00003b00: 5054 494f 4e0a 2020 2020 2054 6869 7320 PTION. This │ │ │ │ │ -00003b10: 7072 6f63 6564 7572 6520 636f 6e6e 6563 procedure connec │ │ │ │ │ -00003b20: 7473 2061 6e20 696e 6974 6961 6c69 7a65 ts an initialize │ │ │ │ │ -00003b30: 6420 736f 636b 6574 2074 6f20 6120 6769 d socket to a gi │ │ │ │ │ -00003b40: 7665 6e20 686f 7374 206f 6e20 610a 2020 ven host on a. │ │ │ │ │ -00003b50: 2020 2067 6976 656e 2070 6f72 742e 2020 given port. │ │ │ │ │ -00003b60: 496e 2074 6865 2063 6173 6520 6f66 2061 In the case of a │ │ │ │ │ -00003b70: 2054 4350 2073 6f63 6b65 742c 2061 2072 TCP socket, a r │ │ │ │ │ -00003b80: 6561 6c20 636f 6e6e 6563 7469 6f6e 2069 eal connection i │ │ │ │ │ -00003b90: 730a 2020 2020 2061 7474 656d 7074 6564 s. attempted │ │ │ │ │ -00003ba0: 2e20 2049 6e20 7468 6520 6361 7365 206f . In the case o │ │ │ │ │ -00003bb0: 6620 6120 5544 5020 736f 636b 6574 2c20 f a UDP socket, │ │ │ │ │ -00003bc0: 6e6f 2063 6f6e 6e65 6374 696f 6e20 7461 no connection ta │ │ │ │ │ -00003bd0: 6b65 7320 706c 6163 650a 2020 2020 2062 kes place. b │ │ │ │ │ -00003be0: 7574 2074 6865 2065 6e64 706f 696e 7420 ut the endpoint │ │ │ │ │ -00003bf0: 636f 6f72 6469 6e61 7465 7320 6172 6520 coordinates are │ │ │ │ │ -00003c00: 7265 636f 7264 6564 2e0a 0a45 5843 4550 recorded...EXCEP │ │ │ │ │ -00003c10: 5449 4f4e 530a 2020 2020 2027 436f 6e6e TIONS. 'Conn │ │ │ │ │ -00003c20: 6563 7469 6f6e 5f52 6566 7573 6564 2754 ection_Refused'T │ │ │ │ │ -00003c30: 6865 2063 6f6e 6e65 6374 696f 6e20 6861 he connection ha │ │ │ │ │ -00003c40: 7320 6265 656e 2072 6566 7573 6564 2062 s been refused b │ │ │ │ │ -00003c50: 7920 7468 650a 2020 2020 2020 2020 2020 y the. │ │ │ │ │ -00003c60: 2020 2020 2020 2020 2020 2020 2020 7365 se │ │ │ │ │ -00003c70: 7276 6572 0a20 2020 2020 2753 6f63 6b65 rver. 'Socke │ │ │ │ │ -00003c80: 745f 4572 726f 7227 2020 2020 2041 6e6f t_Error' Ano │ │ │ │ │ -00003c90: 7468 6572 2065 7272 6f72 206f 6363 7572 ther error occur │ │ │ │ │ -00003ca0: 7265 6420 6475 7269 6e67 2074 6865 0a20 red during the. │ │ │ │ │ -00003cb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00003cc0: 2020 2020 2020 2063 6f6e 6e65 6374 696f connectio │ │ │ │ │ -00003cd0: 6e0a 0a45 5841 4d50 4c45 0a20 2020 2020 n..EXAMPLE. │ │ │ │ │ -00003ce0: 2020 2020 2064 6563 6c61 7265 0a20 2020 declare. │ │ │ │ │ -00003cf0: 2020 2020 2020 2020 2020 536f 636b 203a Sock : │ │ │ │ │ -00003d00: 204d 756c 7469 6361 7374 5f53 6f63 6b65 Multicast_Socke │ │ │ │ │ -00003d10: 745f 4644 3b0a 2020 2020 2020 2020 2020 t_FD;. │ │ │ │ │ -00003d20: 6265 6769 6e0a 2020 2020 2020 2020 2020 begin. │ │ │ │ │ -00003d30: 2020 202d 2d20 4372 6561 7465 2061 206d -- Create a m │ │ │ │ │ -00003d40: 756c 7469 6361 7374 2073 6f63 6b65 7420 ulticast socket │ │ │ │ │ -00003d50: 6f6e 2067 726f 7570 2032 3234 2e31 2e32 on group 224.1.2 │ │ │ │ │ -00003d60: 2e33 2070 6f72 7420 3837 3633 0a20 2020 .3 port 8763. │ │ │ │ │ -00003d70: 2020 2020 2020 2020 2020 536f 636b 203a Sock : │ │ │ │ │ -00003d80: 3d20 4372 6561 7465 5f4d 756c 7469 6361 = Create_Multica │ │ │ │ │ -00003d90: 7374 5f53 6f63 6b65 7420 2822 3232 342e st_Socket ("224. │ │ │ │ │ -00003da0: 312e 322e 3322 2c20 3837 3633 293b 0a20 1.2.3", 8763);. │ │ │ │ │ -00003db0: 2020 2020 2020 2020 2020 2020 2d2d 2050 -- P │ │ │ │ │ -00003dc0: 6572 666f 726d 2073 6f6d 6520 6f70 6572 erform some oper │ │ │ │ │ -00003dd0: 6174 696f 6e73 206f 6e20 736f 636b 6574 ations on socket │ │ │ │ │ -00003de0: 0a20 2020 2020 2020 2020 2020 2020 5b2e . [. │ │ │ │ │ -00003df0: 2e2e 5d0a 2020 2020 2020 2020 2020 2020 ..]. │ │ │ │ │ -00003e00: 202d 2d20 5368 7574 646f 776e 2074 6865 -- Shutdown the │ │ │ │ │ -00003e10: 2073 6f63 6b65 7420 696e 2062 6f74 6820 socket in both │ │ │ │ │ -00003e20: 6469 7265 6374 696f 6e73 0a20 2020 2020 directions. │ │ │ │ │ -00003e30: 2020 2020 2020 2020 5368 7574 646f 776e Shutdown │ │ │ │ │ -00003e40: 2028 536f 636b 2c20 426f 7468 293b 0a20 (Sock, Both);. │ │ │ │ │ -00003e50: 2020 2020 2020 2020 2065 6e64 3b0a 0a53 end;..S │ │ │ │ │ -00003e60: 4545 2041 4c53 4f0a 2020 2020 202a 6e6f EE ALSO. *no │ │ │ │ │ -00003e70: 7465 2053 6f63 6b65 7420 2870 726f 6365 te Socket (proce │ │ │ │ │ -00003e80: 6475 7265 293a 3a2e 0a0a 1f0a 4669 6c65 dure)::.....File │ │ │ │ │ -00003e90: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ -00003ea0: 6f2c 2020 4e6f 6465 3a20 4765 7420 2866 o, Node: Get (f │ │ │ │ │ -00003eb0: 756e 6374 696f 6e29 2c20 204e 6578 743a unction), Next: │ │ │ │ │ -00003ec0: 2047 6574 5f43 6861 7220 2866 756e 6374 Get_Char (funct │ │ │ │ │ -00003ed0: 696f 6e29 2c20 2050 7265 763a 2043 6f6e ion), Prev: Con │ │ │ │ │ -00003ee0: 6e65 6374 2028 7072 6f63 6564 7572 6529 nect (procedure) │ │ │ │ │ -00003ef0: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ -00003f00: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ -00003f10: 0a0a 4765 7420 2866 756e 6374 696f 6e29 ..Get (function) │ │ │ │ │ -00003f20: 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a .--------------. │ │ │ │ │ -00003f30: 0a50 5552 504f 5345 0a20 2020 2020 4765 .PURPOSE. Ge │ │ │ │ │ -00003f40: 7420 6120 7374 7269 6e67 2066 726f 6d20 t a string from │ │ │ │ │ -00003f50: 6120 7265 6d6f 7465 2068 6f73 740a 5052 a remote host.PR │ │ │ │ │ -00003f60: 4f54 4f54 5950 450a 2020 2020 2020 2d2d OTOTYPE. -- │ │ │ │ │ -00003f70: 2053 6f63 6b65 7473 2e47 6574 3a20 6675 Sockets.Get: fu │ │ │ │ │ -00003f80: 6e63 7469 6f6e 2047 6574 2028 534f 434b nction Get (SOCK │ │ │ │ │ -00003f90: 4554 203a 2053 6f63 6b65 745f 4644 2743 ET : Socket_FD'C │ │ │ │ │ -00003fa0: 6c61 7373 290a 2020 2020 2020 2020 2020 lass). │ │ │ │ │ -00003fb0: 2020 2020 2072 6574 7572 6e20 5374 7269 return Stri │ │ │ │ │ -00003fc0: 6e67 3b0a 0a50 4152 414d 4554 4552 530a ng;..PARAMETERS. │ │ │ │ │ -00003fd0: 2020 2020 2053 4f43 4b45 5420 2020 2020 SOCKET │ │ │ │ │ -00003fe0: 696e 2020 2020 2020 2020 2049 6e69 7469 in Initi │ │ │ │ │ -00003ff0: 616c 697a 6564 2061 6e64 2063 6f6e 6e65 alized and conne │ │ │ │ │ -00004000: 6374 6564 2073 6f63 6b65 7420 6f62 6a65 cted socket obje │ │ │ │ │ -00004010: 6374 0a0a 5245 5455 524e 2056 414c 5545 ct..RETURN VALUE │ │ │ │ │ -00004020: 0a20 2020 2020 536f 6d65 2063 6861 7261 . Some chara │ │ │ │ │ -00004030: 6374 6572 7320 7468 6174 2068 6176 6520 cters that have │ │ │ │ │ -00004040: 6265 656e 2072 6563 6569 7665 640a 0a44 been received..D │ │ │ │ │ -00004050: 4553 4352 4950 5449 4f4e 0a20 2020 2020 ESCRIPTION. │ │ │ │ │ -00004060: 5468 6973 2066 756e 6374 696f 6e20 7265 This function re │ │ │ │ │ -00004070: 6365 6976 6573 2073 6f6d 6520 6368 6172 ceives some char │ │ │ │ │ -00004080: 6163 7465 7273 2066 726f 6d20 6120 7265 acters from a re │ │ │ │ │ -00004090: 6d6f 7465 2068 6f73 742e 2020 4173 2073 mote host. As s │ │ │ │ │ -000040a0: 6f6f 6e0a 2020 2020 2074 6861 7420 6174 oon. that at │ │ │ │ │ -000040b0: 206c 6561 7374 206f 6e65 2063 6861 7261 least one chara │ │ │ │ │ -000040c0: 6374 6572 2069 7320 6176 6169 6c61 626c cter is availabl │ │ │ │ │ -000040d0: 652c 2074 6865 2063 7572 7265 6e74 2072 e, the current r │ │ │ │ │ -000040e0: 6563 6570 7469 6f6e 0a20 2020 2020 6275 eception. bu │ │ │ │ │ -000040f0: 6666 6572 2069 7320 7265 7475 726e 6564 ffer is returned │ │ │ │ │ -00004100: 2e0a 0a20 2020 2020 5468 6572 6520 6973 ... There is │ │ │ │ │ -00004110: 2075 7375 616c 6c79 206c 6974 746c 6520 usually little │ │ │ │ │ -00004120: 6761 696e 2069 6e20 7573 696e 6720 7468 gain in using th │ │ │ │ │ -00004130: 6973 2066 756e 6374 696f 6e20 7768 6f73 is function whos │ │ │ │ │ -00004140: 6520 6265 6861 7669 6f75 720a 2020 2020 e behaviour. │ │ │ │ │ -00004150: 2069 7320 636f 6d70 6172 6162 6c65 2074 is comparable t │ │ │ │ │ -00004160: 6f20 7468 6520 6f6e 6520 6f66 202a 6e6f o the one of *no │ │ │ │ │ -00004170: 7465 2052 6563 6569 7665 2028 6675 6e63 te Receive (func │ │ │ │ │ -00004180: 7469 6f6e 293a 3a2e 2020 4f74 6865 720a tion)::. Other. │ │ │ │ │ -00004190: 2020 2020 2066 756e 6374 696f 6e73 2073 functions s │ │ │ │ │ -000041a0: 7563 6820 6173 202a 6e6f 7465 2047 6574 uch as *note Get │ │ │ │ │ -000041b0: 5f43 6861 7220 2866 756e 6374 696f 6e29 _Char (function) │ │ │ │ │ -000041c0: 3a3a 2c20 6f72 202a 6e6f 7465 2047 6574 ::, or *note Get │ │ │ │ │ -000041d0: 5f4c 696e 650a 2020 2020 2028 6675 6e63 _Line. (func │ │ │ │ │ -000041e0: 7469 6f6e 293a 3a2c 2061 6c6c 6f77 206d tion)::, allow m │ │ │ │ │ -000041f0: 6f72 6520 7374 7275 6374 7572 6564 2070 ore structured p │ │ │ │ │ -00004200: 726f 6772 616d 6d69 6e67 2e0a 0a20 2020 rogramming... │ │ │ │ │ -00004210: 2020 486f 7765 7665 722c 2074 6869 7320 However, this │ │ │ │ │ -00004220: 6675 6e63 7469 6f6e 206d 6179 2062 6520 function may be │ │ │ │ │ -00004230: 7573 6564 2074 6f20 6176 6f69 6420 6c6f used to avoid lo │ │ │ │ │ -00004240: 6f73 696e 6720 6368 6172 6163 7465 7273 osing characters │ │ │ │ │ -00004250: 2077 6865 6e0a 2020 2020 2063 616c 6c69 when. calli │ │ │ │ │ -00004260: 6e67 202a 6e6f 7465 2055 6e73 6574 5f42 ng *note Unset_B │ │ │ │ │ -00004270: 7566 6665 7220 2870 726f 6365 6475 7265 uffer (procedure │ │ │ │ │ -00004280: 293a 3a2c 2069 662c 2066 6f72 2073 6f6d )::, if, for som │ │ │ │ │ -00004290: 6520 7265 6173 6f6e 2c20 7468 650a 2020 e reason, the. │ │ │ │ │ -000042a0: 2020 2072 656d 6f74 6520 686f 7374 206d remote host m │ │ │ │ │ -000042b0: 6179 2068 6176 6520 7365 6e74 2073 6f6d ay have sent som │ │ │ │ │ -000042c0: 652e 0a0a 4558 4345 5054 494f 4e53 0a20 e...EXCEPTIONS. │ │ │ │ │ -000042d0: 2020 2020 2743 6f6e 6e65 6374 696f 6e5f 'Connection_ │ │ │ │ │ -000042e0: 436c 6f73 6564 2750 6565 7220 6861 7320 Closed'Peer has │ │ │ │ │ -000042f0: 636c 6f73 6564 2074 6865 2063 6f6e 6e65 closed the conne │ │ │ │ │ -00004300: 6374 696f 6e20 6265 666f 7265 0a20 2020 ction before. │ │ │ │ │ -00004310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00004320: 2020 2020 2073 656e 6469 6e67 2061 6e79 sending any │ │ │ │ │ -00004330: 2064 6174 610a 0a1f 0a46 696c 653a 2061 data....File: a │ │ │ │ │ -00004340: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ -00004350: 204e 6f64 653a 2047 6574 5f43 6861 7220 Node: Get_Char │ │ │ │ │ -00004360: 2866 756e 6374 696f 6e29 2c20 204e 6578 (function), Nex │ │ │ │ │ -00004370: 743a 2047 6574 5f4c 696e 6520 2866 756e t: Get_Line (fun │ │ │ │ │ -00004380: 6374 696f 6e29 2c20 2050 7265 763a 2047 ction), Prev: G │ │ │ │ │ -00004390: 6574 2028 6675 6e63 7469 6f6e 292c 2020 et (function), │ │ │ │ │ -000043a0: 5570 3a20 4163 6365 7074 5f53 6f63 6b65 Up: Accept_Socke │ │ │ │ │ -000043b0: 7420 2870 726f 6365 6475 7265 290a 0a47 t (procedure)..G │ │ │ │ │ -000043c0: 6574 5f43 6861 7220 2866 756e 6374 696f et_Char (functio │ │ │ │ │ -000043d0: 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d n).------------- │ │ │ │ │ -000043e0: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ -000043f0: 2020 2020 2047 6574 2061 2063 6861 7261 Get a chara │ │ │ │ │ -00004400: 6374 6572 2066 726f 6d20 6120 7265 6d6f cter from a remo │ │ │ │ │ -00004410: 7465 2068 6f73 740a 5052 4f54 4f54 5950 te host.PROTOTYP │ │ │ │ │ -00004420: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ -00004430: 7473 2e47 6574 5f43 6861 723a 2066 756e ts.Get_Char: fun │ │ │ │ │ -00004440: 6374 696f 6e20 4765 745f 4368 6172 2028 ction Get_Char ( │ │ │ │ │ -00004450: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ -00004460: 4644 2743 6c61 7373 290a 2020 2020 2020 FD'Class). │ │ │ │ │ -00004470: 2020 2020 2020 2020 2072 6574 7572 6e20 return │ │ │ │ │ -00004480: 4368 6172 6163 7465 723b 0a0a 5041 5241 Character;..PARA │ │ │ │ │ -00004490: 4d45 5445 5253 0a20 2020 2020 534f 434b METERS. SOCK │ │ │ │ │ -000044a0: 4554 2020 2020 2069 6e20 2020 2020 2020 ET in │ │ │ │ │ -000044b0: 2020 496e 6974 6961 6c69 7a65 6420 616e Initialized an │ │ │ │ │ -000044c0: 6420 636f 6e6e 6563 7465 6420 736f 636b d connected sock │ │ │ │ │ -000044d0: 6574 206f 626a 6563 740a 0a52 4554 5552 et object..RETUR │ │ │ │ │ -000044e0: 4e20 5641 4c55 450a 2020 2020 204f 6e65 N VALUE. One │ │ │ │ │ -000044f0: 2063 6861 7261 6374 6572 2073 656e 7420 character sent │ │ │ │ │ -00004500: 6279 2074 6865 2072 656d 6f74 6520 686f by the remote ho │ │ │ │ │ -00004510: 7374 0a0a 4445 5343 5249 5054 494f 4e0a st..DESCRIPTION. │ │ │ │ │ -00004520: 2020 2020 2054 6869 7320 6675 6e63 7469 This functi │ │ │ │ │ -00004530: 6f6e 2072 6563 6569 7665 7320 6578 6163 on receives exac │ │ │ │ │ -00004540: 746c 7920 6f6e 6520 6368 6172 6163 7465 tly one characte │ │ │ │ │ -00004550: 7220 6672 6f6d 2074 6865 2072 656d 6f74 r from the remot │ │ │ │ │ -00004560: 6520 686f 7374 2e0a 0a45 5843 4550 5449 e host...EXCEPTI │ │ │ │ │ -00004570: 4f4e 530a 2020 2020 2027 436f 6e6e 6563 ONS. 'Connec │ │ │ │ │ -00004580: 7469 6f6e 5f43 6c6f 7365 6427 5065 6572 tion_Closed'Peer │ │ │ │ │ -00004590: 2068 6173 2063 6c6f 7365 6420 7468 6520 has closed the │ │ │ │ │ -000045a0: 636f 6e6e 6563 7469 6f6e 2062 6566 6f72 connection befor │ │ │ │ │ -000045b0: 650a 2020 2020 2020 2020 2020 2020 2020 e. │ │ │ │ │ -000045c0: 2020 2020 2020 2020 2020 7365 6e64 696e sendin │ │ │ │ │ -000045d0: 6720 7468 6520 6368 6172 6163 7465 720a g the character. │ │ │ │ │ -000045e0: 0a53 4545 2041 4c53 4f0a 2020 2020 202a .SEE ALSO. * │ │ │ │ │ -000045f0: 6e6f 7465 2047 6574 2028 6675 6e63 7469 note Get (functi │ │ │ │ │ -00004600: 6f6e 293a 3a2c 0a20 2020 2020 2a6e 6f74 on)::,. *not │ │ │ │ │ -00004610: 6520 4765 745f 4c69 6e65 2028 6675 6e63 e Get_Line (func │ │ │ │ │ -00004620: 7469 6f6e 293a 3a2c 0a20 2020 2020 2a6e tion)::,. *n │ │ │ │ │ -00004630: 6f74 6520 4765 745f 4c69 6e65 2028 7072 ote Get_Line (pr │ │ │ │ │ -00004640: 6f63 6564 7572 6529 3a3a 2c0a 2020 2020 ocedure)::,. │ │ │ │ │ -00004650: 202a 6e6f 7465 2052 6563 6569 7665 2028 *note Receive ( │ │ │ │ │ -00004660: 7072 6f63 6564 7572 6529 3a3a 2c0a 2020 procedure)::,. │ │ │ │ │ -00004670: 2020 202a 6e6f 7465 2053 6574 5f42 7566 *note Set_Buf │ │ │ │ │ -00004680: 6665 7220 2870 726f 6365 6475 7265 293a fer (procedure): │ │ │ │ │ -00004690: 3a2e 0a0a 1f0a 4669 6c65 3a20 6164 6173 :.....File: adas │ │ │ │ │ -000046a0: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ -000046b0: 6465 3a20 4765 745f 4c69 6e65 2028 6675 de: Get_Line (fu │ │ │ │ │ -000046c0: 6e63 7469 6f6e 292c 2020 4e65 7874 3a20 nction), Next: │ │ │ │ │ -000046d0: 4765 745f 4c69 6e65 2028 7072 6f63 6564 Get_Line (proced │ │ │ │ │ -000046e0: 7572 6529 2c20 2050 7265 763a 2047 6574 ure), Prev: Get │ │ │ │ │ -000046f0: 5f43 6861 7220 2866 756e 6374 696f 6e29 _Char (function) │ │ │ │ │ -00004700: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ -00004710: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ -00004720: 0a0a 4765 745f 4c69 6e65 2028 6675 6e63 ..Get_Line (func │ │ │ │ │ -00004730: 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d 2d2d tion).---------- │ │ │ │ │ -00004740: 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f ---------..PURPO │ │ │ │ │ -00004750: 5345 0a20 2020 2020 4765 7420 6120 7768 SE. Get a wh │ │ │ │ │ -00004760: 6f6c 6520 6c69 6e65 2066 726f 6d20 6120 ole line from a │ │ │ │ │ -00004770: 7265 6d6f 7465 2068 6f73 740a 5052 4f54 remote host.PROT │ │ │ │ │ -00004780: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ -00004790: 6f63 6b65 7473 2e47 6574 5f4c 696e 653a ockets.Get_Line: │ │ │ │ │ -000047a0: 2066 756e 6374 696f 6e20 4765 745f 4c69 function Get_Li │ │ │ │ │ -000047b0: 6e65 2028 534f 434b 4554 203a 2053 6f63 ne (SOCKET : Soc │ │ │ │ │ -000047c0: 6b65 745f 4644 2743 6c61 7373 3b0a 2020 ket_FD'Class;. │ │ │ │ │ -000047d0: 2020 2020 2020 2020 2020 2020 204d 4158 MAX │ │ │ │ │ -000047e0: 5f4c 454e 4754 4820 3a20 506f 7369 7469 _LENGTH : Positi │ │ │ │ │ -000047f0: 7665 203a 3d20 3230 3438 290a 2020 2020 ve := 2048). │ │ │ │ │ -00004800: 2020 2020 2020 2020 2020 2072 6574 7572 retur │ │ │ │ │ -00004810: 6e20 5374 7269 6e67 3b0a 0a50 4152 414d n String;..PARAM │ │ │ │ │ -00004820: 4554 4552 530a 2020 2020 2053 4f43 4b45 ETERS. SOCKE │ │ │ │ │ -00004830: 5420 2020 2020 696e 2020 2020 2020 2020 T in │ │ │ │ │ -00004840: 2049 6e69 7469 616c 697a 6564 2061 6e64 Initialized and │ │ │ │ │ -00004850: 2063 6f6e 6e65 6374 6564 2073 6f63 6b65 connected socke │ │ │ │ │ -00004860: 7420 6f62 6a65 6374 0a20 2020 2020 4d41 t object. MA │ │ │ │ │ -00004870: 585f 4c45 4e47 5448 2069 6e20 2020 2020 X_LENGTH in │ │ │ │ │ -00004880: 2020 2020 4d61 7869 6d75 6d20 7265 7475 Maximum retu │ │ │ │ │ -00004890: 726e 6564 206c 696e 6520 6c65 6e67 7468 rned line length │ │ │ │ │ -000048a0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ -000048b0: 2020 2020 4120 6c69 6e65 2077 6974 686f A line witho │ │ │ │ │ -000048c0: 7574 2074 6865 2043 5220 616e 6420 4c46 ut the CR and LF │ │ │ │ │ -000048d0: 2073 6570 6172 6174 6f72 730a 0a44 4553 separators..DES │ │ │ │ │ -000048e0: 4352 4950 5449 4f4e 0a20 2020 2020 5468 CRIPTION. Th │ │ │ │ │ -000048f0: 6973 2066 756e 6374 696f 6e20 7265 6365 is function rece │ │ │ │ │ -00004900: 6976 6573 206f 6e65 206c 696e 6520 6672 ives one line fr │ │ │ │ │ -00004910: 6f6d 2074 6865 2072 656d 6f74 6520 686f om the remote ho │ │ │ │ │ -00004920: 7374 2e20 2041 206c 696e 650a 2020 2020 st. A line. │ │ │ │ │ -00004930: 2063 6f6e 7369 7374 7320 696e 746f 207a consists into z │ │ │ │ │ -00004940: 6572 6f20 6f72 206d 6f72 6520 6368 6172 ero or more char │ │ │ │ │ -00004950: 6163 7465 7273 2066 6f6c 6c6f 7765 6420 acters followed │ │ │ │ │ -00004960: 6279 2061 6e20 6f70 7469 6f6e 616c 2043 by an optional C │ │ │ │ │ -00004970: 520a 2020 2020 2061 6e64 2062 7920 6120 R. and by a │ │ │ │ │ -00004980: 4c46 2e20 5468 6f73 6520 7465 726d 696e LF. Those termin │ │ │ │ │ -00004990: 6174 6f72 7320 6172 6520 7374 7269 7070 ators are stripp │ │ │ │ │ -000049a0: 6564 2062 6566 6f72 6520 7468 6520 6c69 ed before the li │ │ │ │ │ -000049b0: 6e65 2069 730a 2020 2020 2072 6574 7572 ne is. retur │ │ │ │ │ -000049c0: 6e65 642e 0a0a 2020 2020 2054 6869 7320 ned... This │ │ │ │ │ -000049d0: 6675 6e63 7469 6f6e 2062 6c6f 636b 7320 function blocks │ │ │ │ │ -000049e0: 756e 7469 6c20 6f6e 6520 6675 6c6c 206c until one full l │ │ │ │ │ -000049f0: 696e 6520 6861 7320 6265 656e 2072 6563 ine has been rec │ │ │ │ │ -00004a00: 6569 7665 642e 2020 5468 650a 2020 2020 eived. The. │ │ │ │ │ -00004a10: 206c 696e 6520 6c65 6e67 7468 2069 7320 line length is │ │ │ │ │ -00004a20: 6c69 6d69 7465 6420 7769 7468 2074 6865 limited with the │ │ │ │ │ -00004a30: 2076 616c 7565 206f 6620 7468 6520 4d61 value of the Ma │ │ │ │ │ -00004a40: 785f 4c65 6e67 7468 2061 7267 756d 656e x_Length argumen │ │ │ │ │ -00004a50: 742c 0a20 2020 2020 746f 2061 766f 6964 t,. to avoid │ │ │ │ │ -00004a60: 2065 7868 6175 7374 696f 6e20 6f66 2074 exhaustion of t │ │ │ │ │ -00004a70: 6865 2073 6563 6f6e 6461 7279 2073 7461 he secondary sta │ │ │ │ │ -00004a80: 636b 2e0a 0a45 5843 4550 5449 4f4e 530a ck...EXCEPTIONS. │ │ │ │ │ -00004a90: 2020 2020 2027 436f 6e6e 6563 7469 6f6e 'Connection │ │ │ │ │ -00004aa0: 5f43 6c6f 7365 6427 5065 6572 2068 6173 _Closed'Peer has │ │ │ │ │ -00004ab0: 2063 6c6f 7365 6420 7468 6520 636f 6e6e closed the conn │ │ │ │ │ -00004ac0: 6563 7469 6f6e 2062 6566 6f72 650a 2020 ection before. │ │ │ │ │ -00004ad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00004ae0: 2020 2020 2020 7365 6e64 696e 6720 6120 sending a │ │ │ │ │ -00004af0: 7768 6f6c 6520 6c69 6e65 0a0a 5345 4520 whole line..SEE │ │ │ │ │ -00004b00: 414c 534f 0a20 2020 2020 2a6e 6f74 6520 ALSO. *note │ │ │ │ │ -00004b10: 4765 7420 2866 756e 6374 696f 6e29 3a3a Get (function):: │ │ │ │ │ -00004b20: 2c0a 2020 2020 202a 6e6f 7465 2047 6574 ,. *note Get │ │ │ │ │ -00004b30: 5f43 6861 7220 2866 756e 6374 696f 6e29 _Char (function) │ │ │ │ │ -00004b40: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2047 ::,. *note G │ │ │ │ │ -00004b50: 6574 5f4c 696e 6520 2870 726f 6365 6475 et_Line (procedu │ │ │ │ │ -00004b60: 7265 293a 3a2c 0a20 2020 2020 2a6e 6f74 re)::,. *not │ │ │ │ │ -00004b70: 6520 5265 6365 6976 6520 2870 726f 6365 e Receive (proce │ │ │ │ │ -00004b80: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ -00004b90: 6f74 6520 5365 745f 4275 6666 6572 2028 ote Set_Buffer ( │ │ │ │ │ -00004ba0: 7072 6f63 6564 7572 6529 3a3a 2e0a 0a1f procedure)::.... │ │ │ │ │ -00004bb0: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ -00004bc0: 732e 696e 666f 2c20 204e 6f64 653a 2047 s.info, Node: G │ │ │ │ │ -00004bd0: 6574 5f4c 696e 6520 2870 726f 6365 6475 et_Line (procedu │ │ │ │ │ -00004be0: 7265 292c 2020 4e65 7874 3a20 4765 745f re), Next: Get_ │ │ │ │ │ -00004bf0: 5265 6365 6976 655f 5175 6575 655f 5369 Receive_Queue_Si │ │ │ │ │ -00004c00: 7a65 2028 6675 6e63 7469 6f6e 292c 2020 ze (function), │ │ │ │ │ -00004c10: 5072 6576 3a20 4765 745f 4c69 6e65 2028 Prev: Get_Line ( │ │ │ │ │ -00004c20: 6675 6e63 7469 6f6e 292c 2020 5570 3a20 function), Up: │ │ │ │ │ -00004c30: 4163 6365 7074 5f53 6f63 6b65 7420 2870 Accept_Socket (p │ │ │ │ │ -00004c40: 726f 6365 6475 7265 290a 0a47 6574 5f4c rocedure)..Get_L │ │ │ │ │ -00004c50: 696e 6520 2870 726f 6365 6475 7265 290a ine (procedure). │ │ │ │ │ -00004c60: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -00004c70: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ -00004c80: 2020 2047 6574 2061 2077 686f 6c65 206c Get a whole l │ │ │ │ │ -00004c90: 696e 6520 6672 6f6d 2061 2072 656d 6f74 ine from a remot │ │ │ │ │ -00004ca0: 6520 686f 7374 0a50 524f 544f 5459 5045 e host.PROTOTYPE │ │ │ │ │ -00004cb0: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ -00004cc0: 732e 4765 745f 4c69 6e65 3a20 7072 6f63 s.Get_Line: proc │ │ │ │ │ -00004cd0: 6564 7572 6520 4765 745f 4c69 6e65 2028 edure Get_Line ( │ │ │ │ │ -00004ce0: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ -00004cf0: 4644 2743 6c61 7373 3b0a 2020 2020 2020 FD'Class;. │ │ │ │ │ -00004d00: 2020 2020 2020 2020 2053 5452 203a 2069 STR : i │ │ │ │ │ -00004d10: 6e20 6f75 7420 5374 7269 6e67 3b20 4c41 n out String; LA │ │ │ │ │ -00004d20: 5354 203a 206f 7574 204e 6174 7572 616c ST : out Natural │ │ │ │ │ -00004d30: 293b 0a0a 5041 5241 4d45 5445 5253 0a20 );..PARAMETERS. │ │ │ │ │ -00004d40: 2020 2020 534f 434b 4554 2020 2020 2069 SOCKET i │ │ │ │ │ -00004d50: 6e20 2020 2020 2020 2020 496e 6974 6961 n Initia │ │ │ │ │ -00004d60: 6c69 7a65 6420 616e 6420 636f 6e6e 6563 lized and connec │ │ │ │ │ -00004d70: 7465 6420 736f 636b 6574 206f 626a 6563 ted socket objec │ │ │ │ │ -00004d80: 740a 2020 2020 2053 5452 2020 2020 2020 t. STR │ │ │ │ │ -00004d90: 2020 696e 206f 7574 2020 2020 2053 7472 in out Str │ │ │ │ │ -00004da0: 696e 6720 746f 2066 696c 6c0a 2020 2020 ing to fill. │ │ │ │ │ -00004db0: 204c 4153 5420 2020 2020 2020 6f75 7420 LAST out │ │ │ │ │ -00004dc0: 2020 2020 2020 204c 6173 7420 696e 6465 Last inde │ │ │ │ │ -00004dd0: 7820 7573 6564 2069 6e20 7468 6520 7374 x used in the st │ │ │ │ │ -00004de0: 7269 6e67 0a0a 4445 5343 5249 5054 494f ring..DESCRIPTIO │ │ │ │ │ -00004df0: 4e0a 2020 2020 2054 6869 7320 7072 6f63 N. This proc │ │ │ │ │ -00004e00: 6564 7572 6520 7265 6365 6976 6573 206f edure receives o │ │ │ │ │ -00004e10: 6e65 206c 696e 6520 6672 6f6d 2074 6865 ne line from the │ │ │ │ │ -00004e20: 2072 656d 6f74 6520 686f 7374 2e20 2041 remote host. A │ │ │ │ │ -00004e30: 206c 696e 650a 2020 2020 2063 6f6e 7369 line. consi │ │ │ │ │ -00004e40: 7374 7320 696e 746f 207a 6572 6f20 6f72 sts into zero or │ │ │ │ │ -00004e50: 206d 6f72 6520 6368 6172 6163 7465 7273 more characters │ │ │ │ │ -00004e60: 2066 6f6c 6c6f 7765 6420 6279 2061 6e20 followed by an │ │ │ │ │ -00004e70: 6f70 7469 6f6e 616c 2043 520a 2020 2020 optional CR. │ │ │ │ │ -00004e80: 2061 6e64 2062 7920 6120 4c46 2e20 5468 and by a LF. Th │ │ │ │ │ -00004e90: 6f73 6520 7465 726d 696e 6174 6f72 7320 ose terminators │ │ │ │ │ -00004ea0: 6172 6520 7374 7269 7070 6564 2062 6566 are stripped bef │ │ │ │ │ -00004eb0: 6f72 6520 7468 6520 6c69 6e65 2069 730a ore the line is. │ │ │ │ │ -00004ec0: 2020 2020 2072 6574 7572 6e65 642e 0a0a returned... │ │ │ │ │ -00004ed0: 2020 2020 2054 6869 7320 7072 6f63 6564 This proced │ │ │ │ │ -00004ee0: 7572 6520 626c 6f63 6b73 2075 6e74 696c ure blocks until │ │ │ │ │ -00004ef0: 206f 6e65 2066 756c 6c20 6c69 6e65 2068 one full line h │ │ │ │ │ -00004f00: 6173 2062 6565 6e20 7265 6365 6976 6564 as been received │ │ │ │ │ -00004f10: 2e0a 0a45 5843 4550 5449 4f4e 530a 2020 ...EXCEPTIONS. │ │ │ │ │ -00004f20: 2020 2027 436f 6e6e 6563 7469 6f6e 5f43 'Connection_C │ │ │ │ │ -00004f30: 6c6f 7365 6427 5065 6572 2068 6173 2063 losed'Peer has c │ │ │ │ │ -00004f40: 6c6f 7365 6420 7468 6520 636f 6e6e 6563 losed the connec │ │ │ │ │ -00004f50: 7469 6f6e 2062 6566 6f72 650a 2020 2020 tion before. │ │ │ │ │ -00004f60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00004f70: 2020 2020 7365 6e64 696e 6720 6120 7768 sending a wh │ │ │ │ │ -00004f80: 6f6c 6520 6c69 6e65 0a0a 5345 4520 414c ole line..SEE AL │ │ │ │ │ -00004f90: 534f 0a20 2020 2020 2a6e 6f74 6520 4765 SO. *note Ge │ │ │ │ │ -00004fa0: 7420 2866 756e 6374 696f 6e29 3a3a 2c0a t (function)::,. │ │ │ │ │ -00004fb0: 2020 2020 202a 6e6f 7465 2047 6574 5f43 *note Get_C │ │ │ │ │ -00004fc0: 6861 7220 2866 756e 6374 696f 6e29 3a3a har (function):: │ │ │ │ │ -00004fd0: 2c0a 2020 2020 202a 6e6f 7465 2047 6574 ,. *note Get │ │ │ │ │ -00004fe0: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ -00004ff0: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2052 ::,. *note R │ │ │ │ │ -00005000: 6563 6569 7665 2028 7072 6f63 6564 7572 eceive (procedur │ │ │ │ │ -00005010: 6529 3a3a 2c0a 2020 2020 202a 6e6f 7465 e)::,. *note │ │ │ │ │ -00005020: 2053 6574 5f42 7566 6665 7220 2870 726f Set_Buffer (pro │ │ │ │ │ -00005030: 6365 6475 7265 293a 3a2e 0a0a 1f0a 4669 cedure)::.....Fi │ │ │ │ │ -00005040: 6c65 3a20 6164 6173 6f63 6b65 7473 2e69 le: adasockets.i │ │ │ │ │ -00005050: 6e66 6f2c 2020 4e6f 6465 3a20 4765 745f nfo, Node: Get_ │ │ │ │ │ -00005060: 5265 6365 6976 655f 5175 6575 655f 5369 Receive_Queue_Si │ │ │ │ │ -00005070: 7a65 2028 6675 6e63 7469 6f6e 292c 2020 ze (function), │ │ │ │ │ -00005080: 4e65 7874 3a20 4765 745f 5365 6e64 5f51 Next: Get_Send_Q │ │ │ │ │ -00005090: 7565 7565 5f53 697a 6520 2866 756e 6374 ueue_Size (funct │ │ │ │ │ -000050a0: 696f 6e29 2c20 2050 7265 763a 2047 6574 ion), Prev: Get │ │ │ │ │ -000050b0: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ -000050c0: 292c 2020 5570 3a20 4163 6365 7074 5f53 ), Up: Accept_S │ │ │ │ │ -000050d0: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ -000050e0: 290a 0a47 6574 5f52 6563 6569 7665 5f51 )..Get_Receive_Q │ │ │ │ │ -000050f0: 7565 7565 5f53 697a 6520 2866 756e 6374 ueue_Size (funct │ │ │ │ │ -00005100: 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ion).----------- │ │ │ │ │ -00005110: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -00005120: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ -00005130: 2020 2020 2052 6574 7572 6e20 7468 6520 Return the │ │ │ │ │ -00005140: 7369 7a65 206f 6620 7468 6520 756e 7265 size of the unre │ │ │ │ │ -00005150: 6164 2064 6174 6120 696e 2074 6865 2069 ad data in the i │ │ │ │ │ -00005160: 6e70 7574 2071 7565 7565 0a50 524f 544f nput queue.PROTO │ │ │ │ │ -00005170: 5459 5045 0a20 2020 2020 202d 2d20 536f TYPE. -- So │ │ │ │ │ -00005180: 636b 6574 732e 4765 745f 5265 6365 6976 ckets.Get_Receiv │ │ │ │ │ -00005190: 655f 5175 6575 655f 5369 7a65 3a20 6675 e_Queue_Size: fu │ │ │ │ │ -000051a0: 6e63 7469 6f6e 2047 6574 5f52 6563 6569 nction Get_Recei │ │ │ │ │ -000051b0: 7665 5f51 7565 7565 5f53 697a 650a 2020 ve_Queue_Size. │ │ │ │ │ -000051c0: 2020 2020 2020 2020 2020 2020 2028 534f (SO │ │ │ │ │ -000051d0: 434b 4554 203a 2053 6f63 6b65 745f 4644 CKET : Socket_FD │ │ │ │ │ -000051e0: 2743 6c61 7373 290a 2020 2020 2020 2020 'Class). │ │ │ │ │ -000051f0: 2020 2020 2020 2072 6574 7572 6e20 496e return In │ │ │ │ │ -00005200: 7465 6765 723b 0a0a 5041 5241 4d45 5445 teger;..PARAMETE │ │ │ │ │ -00005210: 5253 0a20 2020 2020 534f 434b 4554 2020 RS. SOCKET │ │ │ │ │ -00005220: 2020 2069 6e20 2020 2020 2020 2020 496e in In │ │ │ │ │ -00005230: 6974 6961 6c69 7a65 6420 616e 6420 636f itialized and co │ │ │ │ │ -00005240: 6e6e 6563 7465 6420 736f 636b 6574 206f nnected socket o │ │ │ │ │ -00005250: 626a 6563 740a 0a52 4554 5552 4e20 5641 bject..RETURN VA │ │ │ │ │ -00005260: 4c55 450a 2020 2020 2054 6865 206e 6f6e LUE. The non │ │ │ │ │ -00005270: 2d6e 6567 6174 6976 6520 7369 7a65 2069 -negative size i │ │ │ │ │ -00005280: 6e20 6279 7465 7320 6f66 2074 6865 2069 n bytes of the i │ │ │ │ │ -00005290: 6e70 7574 2071 7565 7565 0a0a 4445 5343 nput queue..DESC │ │ │ │ │ -000052a0: 5249 5054 494f 4e0a 2020 2020 2054 6869 RIPTION. Thi │ │ │ │ │ -000052b0: 7320 6675 6e63 7469 6f6e 2069 7320 6f6e s function is on │ │ │ │ │ -000052c0: 6c79 2061 7661 696c 6162 6c65 206f 6e20 ly available on │ │ │ │ │ -000052d0: 4c69 6e75 7820 706c 6174 666f 726d 732e Linux platforms. │ │ │ │ │ -000052e0: 2020 4f6e 206f 7468 6572 0a20 2020 2020 On other. │ │ │ │ │ -000052f0: 6f70 6572 6174 696e 6720 7379 7374 656d operating system │ │ │ │ │ -00005300: 732c 2069 7420 7769 6c6c 2072 6574 7572 s, it will retur │ │ │ │ │ -00005310: 6e20 2d32 2074 6f20 696e 6469 6361 7465 n -2 to indicate │ │ │ │ │ -00005320: 2074 6861 7420 7468 6520 6e65 6365 7373 that the necess │ │ │ │ │ -00005330: 6172 790a 2020 2020 206d 6563 6861 6e69 ary. mechani │ │ │ │ │ -00005340: 736d 7320 746f 2072 6574 7269 6576 6520 sms to retrieve │ │ │ │ │ -00005350: 7468 6520 696e 666f 726d 6174 696f 6e20 the information │ │ │ │ │ -00005360: 6172 6520 6e6f 7420 6176 6169 6c61 626c are not availabl │ │ │ │ │ -00005370: 652e 0a0a 5345 4520 414c 534f 0a20 2020 e...SEE ALSO. │ │ │ │ │ -00005380: 2020 2a6e 6f74 6520 5265 6365 6976 6520 *note Receive │ │ │ │ │ -00005390: 2870 726f 6365 6475 7265 293a 3a2e 0a0a (procedure)::... │ │ │ │ │ -000053a0: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ -000053b0: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ -000053c0: 4765 745f 5365 6e64 5f51 7565 7565 5f53 Get_Send_Queue_S │ │ │ │ │ -000053d0: 697a 6520 2866 756e 6374 696f 6e29 2c20 ize (function), │ │ │ │ │ -000053e0: 204e 6578 743a 2047 6574 736f 636b 6f70 Next: Getsockop │ │ │ │ │ -000053f0: 7420 2870 726f 6365 6475 7265 292c 2020 t (procedure), │ │ │ │ │ -00005400: 5072 6576 3a20 4765 745f 5265 6365 6976 Prev: Get_Receiv │ │ │ │ │ -00005410: 655f 5175 6575 655f 5369 7a65 2028 6675 e_Queue_Size (fu │ │ │ │ │ -00005420: 6e63 7469 6f6e 292c 2020 5570 3a20 4163 nction), Up: Ac │ │ │ │ │ -00005430: 6365 7074 5f53 6f63 6b65 7420 2870 726f cept_Socket (pro │ │ │ │ │ -00005440: 6365 6475 7265 290a 0a47 6574 5f53 656e cedure)..Get_Sen │ │ │ │ │ -00005450: 645f 5175 6575 655f 5369 7a65 2028 6675 d_Queue_Size (fu │ │ │ │ │ -00005460: 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d nction).-------- │ │ │ │ │ -00005470: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -00005480: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ -00005490: 2020 2020 2052 6574 7572 6e20 7468 6520 Return the │ │ │ │ │ -000054a0: 7369 7a65 206f 6620 7468 6520 756e 7365 size of the unse │ │ │ │ │ -000054b0: 6e74 2064 6174 6120 696e 2074 6865 206f nt data in the o │ │ │ │ │ -000054c0: 7574 7075 7420 7175 6575 650a 5052 4f54 utput queue.PROT │ │ │ │ │ -000054d0: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ -000054e0: 6f63 6b65 7473 2e47 6574 5f53 656e 645f ockets.Get_Send_ │ │ │ │ │ -000054f0: 5175 6575 655f 5369 7a65 3a20 6675 6e63 Queue_Size: func │ │ │ │ │ -00005500: 7469 6f6e 2047 6574 5f53 656e 645f 5175 tion Get_Send_Qu │ │ │ │ │ -00005510: 6575 655f 5369 7a65 0a20 2020 2020 2020 eue_Size. │ │ │ │ │ -00005520: 2020 2020 2020 2020 2853 4f43 4b45 5420 (SOCKET │ │ │ │ │ -00005530: 3a20 536f 636b 6574 5f46 4427 436c 6173 : Socket_FD'Clas │ │ │ │ │ -00005540: 7329 0a20 2020 2020 2020 2020 2020 2020 s). │ │ │ │ │ -00005550: 2020 7265 7475 726e 2049 6e74 6567 6572 return Integer │ │ │ │ │ -00005560: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ -00005570: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ -00005580: 2020 2020 2020 2020 2049 6e69 7469 616c Initial │ │ │ │ │ -00005590: 697a 6564 2061 6e64 2063 6f6e 6e65 6374 ized and connect │ │ │ │ │ -000055a0: 6564 2073 6f63 6b65 7420 6f62 6a65 6374 ed socket object │ │ │ │ │ -000055b0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ -000055c0: 2020 2020 5468 6520 6e6f 6e2d 6e65 6761 The non-nega │ │ │ │ │ -000055d0: 7469 7665 2073 697a 6520 696e 2062 7974 tive size in byt │ │ │ │ │ -000055e0: 6573 206f 6620 7468 6520 6f75 7470 7574 es of the output │ │ │ │ │ -000055f0: 2071 7565 7565 0a0a 4445 5343 5249 5054 queue..DESCRIPT │ │ │ │ │ -00005600: 494f 4e0a 2020 2020 2054 6869 7320 6675 ION. This fu │ │ │ │ │ -00005610: 6e63 7469 6f6e 2069 7320 6f6e 6c79 2061 nction is only a │ │ │ │ │ -00005620: 7661 696c 6162 6c65 206f 6e20 4c69 6e75 vailable on Linu │ │ │ │ │ -00005630: 7820 706c 6174 666f 726d 732e 2020 4f6e x platforms. On │ │ │ │ │ -00005640: 206f 7468 6572 0a20 2020 2020 6f70 6572 other. oper │ │ │ │ │ -00005650: 6174 696e 6720 7379 7374 656d 732c 2069 ating systems, i │ │ │ │ │ -00005660: 7420 7769 6c6c 2072 6574 7572 6e20 2d32 t will return -2 │ │ │ │ │ -00005670: 2074 6f20 696e 6469 6361 7465 2074 6861 to indicate tha │ │ │ │ │ -00005680: 7420 7468 6520 6e65 6365 7373 6172 790a t the necessary. │ │ │ │ │ -00005690: 2020 2020 206d 6563 6861 6e69 736d 7320 mechanisms │ │ │ │ │ -000056a0: 746f 2072 6574 7269 6576 6520 7468 6520 to retrieve the │ │ │ │ │ -000056b0: 696e 666f 726d 6174 696f 6e20 6172 6520 information are │ │ │ │ │ -000056c0: 6e6f 7420 6176 6169 6c61 626c 652e 0a0a not available... │ │ │ │ │ -000056d0: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ -000056e0: 6f74 6520 5365 6e64 2028 7072 6f63 6564 ote Send (proced │ │ │ │ │ -000056f0: 7572 6529 3a3a 2e0a 0a1f 0a46 696c 653a ure)::.....File: │ │ │ │ │ -00005700: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ -00005710: 2c20 204e 6f64 653a 2047 6574 736f 636b , Node: Getsock │ │ │ │ │ -00005720: 6f70 7420 2870 726f 6365 6475 7265 292c opt (procedure), │ │ │ │ │ -00005730: 2020 4e65 7874 3a20 4c69 7374 656e 2028 Next: Listen ( │ │ │ │ │ -00005740: 7072 6f63 6564 7572 6529 2c20 2050 7265 procedure), Pre │ │ │ │ │ -00005750: 763a 2047 6574 5f53 656e 645f 5175 6575 v: Get_Send_Queu │ │ │ │ │ -00005760: 655f 5369 7a65 2028 6675 6e63 7469 6f6e e_Size (function │ │ │ │ │ -00005770: 292c 2020 5570 3a20 4163 6365 7074 5f53 ), Up: Accept_S │ │ │ │ │ -00005780: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ -00005790: 290a 0a47 6574 736f 636b 6f70 7420 2870 )..Getsockopt (p │ │ │ │ │ -000057a0: 726f 6365 6475 7265 290a 2d2d 2d2d 2d2d rocedure).------ │ │ │ │ │ -000057b0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -000057c0: 0a0a 5055 5250 4f53 450a 2020 2020 2052 ..PURPOSE. R │ │ │ │ │ -000057d0: 6574 7269 6576 6520 6120 736f 636b 6574 etrieve a socket │ │ │ │ │ -000057e0: 206f 7074 696f 6e0a 5052 4f54 4f54 5950 option.PROTOTYP │ │ │ │ │ -000057f0: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ -00005800: 7473 2e47 6574 736f 636b 6f70 743a 2070 ts.Getsockopt: p │ │ │ │ │ -00005810: 726f 6365 6475 7265 2047 6574 736f 636b rocedure Getsock │ │ │ │ │ -00005820: 6f70 7420 2853 4f43 4b45 5420 3a20 536f opt (SOCKET : So │ │ │ │ │ -00005830: 636b 6574 5f46 443b 0a20 2020 2020 2020 cket_FD;. │ │ │ │ │ -00005840: 2020 2020 2020 2020 4c45 5645 4c20 3a20 LEVEL : │ │ │ │ │ -00005850: 536f 636b 6574 5f4c 6576 656c 203a 3d20 Socket_Level := │ │ │ │ │ -00005860: 534f 4c5f 534f 434b 4554 3b0a 2020 2020 SOL_SOCKET;. │ │ │ │ │ -00005870: 2020 2020 2020 2020 2020 204f 5054 4e41 OPTNA │ │ │ │ │ -00005880: 4d45 203a 2053 6f63 6b65 745f 4f70 7469 ME : Socket_Opti │ │ │ │ │ -00005890: 6f6e 3b20 4f50 5456 414c 203a 206f 7574 on; OPTVAL : out │ │ │ │ │ -000058a0: 2049 6e74 6567 6572 293b 0a0a 5041 5241 Integer);..PARA │ │ │ │ │ -000058b0: 4d45 5445 5253 0a20 2020 2020 534f 434b METERS. SOCK │ │ │ │ │ -000058c0: 4554 2020 2020 2069 6e20 2020 2020 2020 ET in │ │ │ │ │ -000058d0: 2020 496e 6974 6961 6c69 7a65 6420 616e Initialized an │ │ │ │ │ -000058e0: 6420 626f 756e 6420 736f 636b 6574 206f d bound socket o │ │ │ │ │ -000058f0: 626a 6563 740a 2020 2020 204c 4556 454c bject. LEVEL │ │ │ │ │ -00005900: 2020 2020 2020 696e 2020 2020 2020 2020 in │ │ │ │ │ -00005910: 2050 726f 746f 636f 6c20 6c65 7665 6c0a Protocol level. │ │ │ │ │ -00005920: 2020 2020 204f 5054 4e41 4d45 2020 2020 OPTNAME │ │ │ │ │ -00005930: 696e 2020 2020 2020 2020 204f 7074 696f in Optio │ │ │ │ │ -00005940: 6e20 6e61 6d65 0a20 2020 2020 4f50 5456 n name. OPTV │ │ │ │ │ -00005950: 414c 2020 2020 206f 7574 2020 2020 2020 AL out │ │ │ │ │ -00005960: 2020 4f70 7469 6f6e 2076 616c 7565 0a0a Option value.. │ │ │ │ │ -00005970: 4445 5343 5249 5054 494f 4e0a 2020 2020 DESCRIPTION. │ │ │ │ │ -00005980: 2054 6869 7320 7072 6f63 6564 7572 6520 This procedure │ │ │ │ │ -00005990: 7265 7472 6965 7665 7320 6f70 7469 6f6e retrieves option │ │ │ │ │ -000059a0: 7320 6170 706c 6963 6162 6c65 2074 6f20 s applicable to │ │ │ │ │ -000059b0: 6120 736f 636b 6574 2e20 2050 6c65 6173 a socket. Pleas │ │ │ │ │ -000059c0: 650a 2020 2020 2073 6565 2079 6f75 7220 e. see your │ │ │ │ │ -000059d0: 6f70 6572 6174 696e 6720 7379 7374 656d operating system │ │ │ │ │ -000059e0: 206d 616e 7561 6c20 666f 7220 7573 6162 manual for usab │ │ │ │ │ -000059f0: 6c65 206c 6576 656c 7320 616e 6420 6f70 le levels and op │ │ │ │ │ -00005a00: 7469 6f6e 732e 0a0a 2020 2020 2054 776f tions... Two │ │ │ │ │ -00005a10: 206c 6576 656c 7320 6172 6520 6465 6669 levels are defi │ │ │ │ │ -00005a20: 6e65 643a 2027 534f 4c5f 534f 434b 4554 ned: 'SOL_SOCKET │ │ │ │ │ -00005a30: 2720 2874 6865 2064 6566 6175 6c74 2920 ' (the default) │ │ │ │ │ -00005a40: 616e 640a 2020 2020 2027 4950 5052 4f54 and. 'IPPROT │ │ │ │ │ -00005a50: 4f5f 4950 272e 2020 5468 6520 6f70 7469 O_IP'. The opti │ │ │ │ │ -00005a60: 6f6e 7320 6172 6520 2753 4f5f 5245 5553 ons are 'SO_REUS │ │ │ │ │ -00005a70: 4541 4444 5227 2c20 2753 4f5f 5245 5553 EADDR', 'SO_REUS │ │ │ │ │ -00005a80: 4550 4f52 5427 2c0a 2020 2020 2027 4950 EPORT',. 'IP │ │ │ │ │ -00005a90: 5f4d 554c 5449 4341 5354 5f54 544c 272c _MULTICAST_TTL', │ │ │ │ │ -00005aa0: 2027 4950 5f41 4444 5f4d 454d 4245 5253 'IP_ADD_MEMBERS │ │ │ │ │ -00005ab0: 4849 5027 2c20 2749 505f 4452 4f50 5f4d HIP', 'IP_DROP_M │ │ │ │ │ -00005ac0: 454d 4245 5253 4849 5027 2c0a 2020 2020 EMBERSHIP',. │ │ │ │ │ -00005ad0: 2027 4950 5f4d 554c 5449 4341 5354 5f4c 'IP_MULTICAST_L │ │ │ │ │ -00005ae0: 4f4f 5027 2c20 2753 4f5f 534e 4442 5546 OOP', 'SO_SNDBUF │ │ │ │ │ -00005af0: 2720 616e 6420 2749 505f 5243 5642 5546 ' and 'IP_RCVBUF │ │ │ │ │ -00005b00: 272e 0a0a 2020 2020 204e 6f74 6520 7468 '... Note th │ │ │ │ │ -00005b10: 6174 2075 6e6c 696b 6520 7468 6569 7220 at unlike their │ │ │ │ │ -00005b20: 4320 6c61 6e67 7561 6765 2063 6f75 6e74 C language count │ │ │ │ │ -00005b30: 6572 7061 7274 2c20 2747 6574 736f 636b erpart, 'Getsock │ │ │ │ │ -00005b40: 6f70 7427 2061 6e64 0a20 2020 2020 2753 opt' and. 'S │ │ │ │ │ -00005b50: 6574 736f 636b 6f70 7427 2064 6f20 6e6f etsockopt' do no │ │ │ │ │ -00005b60: 7420 7265 7175 6972 6520 616e 2065 7874 t require an ext │ │ │ │ │ -00005b70: 7261 2070 6172 616d 6574 6572 2072 6570 ra parameter rep │ │ │ │ │ -00005b80: 7265 7365 6e74 696e 6720 7468 650a 2020 resenting the. │ │ │ │ │ -00005b90: 2020 206c 656e 6774 6820 696e 2062 7974 length in byt │ │ │ │ │ -00005ba0: 6573 206f 6620 7468 6520 6f70 7469 6f6e es of the option │ │ │ │ │ -00005bb0: 2076 616c 7565 2e20 2041 6461 536f 636b value. AdaSock │ │ │ │ │ -00005bc0: 6574 7320 6e6f 7773 2074 6865 2072 6967 ets nows the rig │ │ │ │ │ -00005bd0: 6874 0a20 2020 2020 7369 7a65 2066 6f72 ht. size for │ │ │ │ │ -00005be0: 2065 7665 7279 206f 7074 696f 6e2e 0a0a every option... │ │ │ │ │ -00005bf0: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ -00005c00: 6f74 6520 5365 7473 6f63 6b6f 7074 2028 ote Setsockopt ( │ │ │ │ │ -00005c10: 7072 6f63 6564 7572 6529 3a3a 2e0a 0a1f procedure)::.... │ │ │ │ │ -00005c20: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ -00005c30: 732e 696e 666f 2c20 204e 6f64 653a 204c s.info, Node: L │ │ │ │ │ -00005c40: 6973 7465 6e20 2870 726f 6365 6475 7265 isten (procedure │ │ │ │ │ -00005c50: 292c 2020 4e65 7874 3a20 4e65 775f 4c69 ), Next: New_Li │ │ │ │ │ -00005c60: 6e65 2028 7072 6f63 6564 7572 6529 2c20 ne (procedure), │ │ │ │ │ -00005c70: 2050 7265 763a 2047 6574 736f 636b 6f70 Prev: Getsockop │ │ │ │ │ -00005c80: 7420 2870 726f 6365 6475 7265 292c 2020 t (procedure), │ │ │ │ │ -00005c90: 5570 3a20 4163 6365 7074 5f53 6f63 6b65 Up: Accept_Socke │ │ │ │ │ -00005ca0: 7420 2870 726f 6365 6475 7265 290a 0a4c t (procedure)..L │ │ │ │ │ -00005cb0: 6973 7465 6e20 2870 726f 6365 6475 7265 isten (procedure │ │ │ │ │ -00005cc0: 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ).-------------- │ │ │ │ │ -00005cd0: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ -00005ce0: 2020 2045 7374 6162 6c69 7368 2061 206c Establish a l │ │ │ │ │ -00005cf0: 6973 7465 6e20 7175 6575 650a 5052 4f54 isten queue.PROT │ │ │ │ │ -00005d00: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ -00005d10: 6f63 6b65 7473 2e4c 6973 7465 6e3a 2070 ockets.Listen: p │ │ │ │ │ -00005d20: 726f 6365 6475 7265 204c 6973 7465 6e20 rocedure Listen │ │ │ │ │ -00005d30: 2853 4f43 4b45 5420 3a20 536f 636b 6574 (SOCKET : Socket │ │ │ │ │ -00005d40: 5f46 443b 0a20 2020 2020 2020 2020 2020 _FD;. │ │ │ │ │ -00005d50: 2020 2020 5155 4555 455f 5349 5a45 203a QUEUE_SIZE : │ │ │ │ │ -00005d60: 2050 6f73 6974 6976 6520 3a3d 2035 293b Positive := 5); │ │ │ │ │ -00005d70: 0a0a 5041 5241 4d45 5445 5253 0a20 2020 ..PARAMETERS. │ │ │ │ │ -00005d80: 2020 534f 434b 4554 2020 2020 2069 6e20 SOCKET in │ │ │ │ │ -00005d90: 2020 2020 2020 2020 496e 6974 6961 6c69 Initiali │ │ │ │ │ -00005da0: 7a65 6420 616e 6420 626f 756e 6420 736f zed and bound so │ │ │ │ │ -00005db0: 636b 6574 206f 626a 6563 740a 2020 2020 cket object. │ │ │ │ │ -00005dc0: 2051 5545 5545 5f53 495a 4520 696e 2020 QUEUE_SIZE in │ │ │ │ │ -00005dd0: 2020 2020 2020 2052 6571 7565 7374 6564 Requested │ │ │ │ │ -00005de0: 2073 6c6f 7473 2069 6e20 7468 6520 6c69 slots in the li │ │ │ │ │ -00005df0: 7374 656e 2071 7565 7565 0a0a 4445 5343 sten queue..DESC │ │ │ │ │ -00005e00: 5249 5054 494f 4e0a 2020 2020 2054 6869 RIPTION. Thi │ │ │ │ │ -00005e10: 7320 7072 6f63 6564 7572 6520 6573 7461 s procedure esta │ │ │ │ │ -00005e20: 626c 6973 6865 7320 6120 6c69 7374 656e blishes a listen │ │ │ │ │ -00005e30: 2071 7565 7565 2061 6674 6572 2061 2054 queue after a T │ │ │ │ │ -00005e40: 4350 2073 6f63 6b65 7420 6173 0a20 2020 CP socket as. │ │ │ │ │ -00005e50: 2020 6265 656e 2069 6e69 7469 616c 697a been initializ │ │ │ │ │ -00005e60: 6564 2061 6e64 2062 6f75 6e64 2e20 2045 ed and bound. E │ │ │ │ │ -00005e70: 6163 6820 736c 6f74 2069 6e20 7468 6520 ach slot in the │ │ │ │ │ -00005e80: 7175 6575 6520 6361 6e20 686f 6c64 206f queue can hold o │ │ │ │ │ -00005e90: 6e65 0a20 2020 2020 696e 636f 6d69 6e67 ne. incoming │ │ │ │ │ -00005ea0: 2063 6f6e 6e65 6374 696f 6e20 7468 6174 connection that │ │ │ │ │ -00005eb0: 2068 6173 206e 6f74 2062 6565 6e20 6163 has not been ac │ │ │ │ │ -00005ec0: 6365 7074 6564 2079 6574 2e20 204e 6f74 cepted yet. Not │ │ │ │ │ -00005ed0: 6520 7468 6174 206d 6f73 740a 2020 2020 e that most. │ │ │ │ │ -00005ee0: 206f 7065 7261 7469 6e67 2073 7973 7465 operating syste │ │ │ │ │ -00005ef0: 6d73 2069 676e 6f72 6520 7175 6575 6520 ms ignore queue │ │ │ │ │ -00005f00: 7369 7a65 7320 6c61 7267 6572 2074 6861 sizes larger tha │ │ │ │ │ -00005f10: 6e20 6669 7665 2e0a 0a53 4545 2041 4c53 n five...SEE ALS │ │ │ │ │ -00005f20: 4f0a 2020 2020 202a 6e6f 7465 2041 6363 O. *note Acc │ │ │ │ │ -00005f30: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ -00005f40: 6564 7572 6529 3a3a 2c0a 2020 2020 202a edure)::,. * │ │ │ │ │ -00005f50: 6e6f 7465 2042 696e 6420 2870 726f 6365 note Bind (proce │ │ │ │ │ +00002e90: 0a0a 5345 4520 414c 534f 0a20 2020 2020 ..SEE ALSO. │ │ │ │ │ +00002ea0: 2a6e 6f74 6520 4269 6e64 2028 7072 6f63 *note Bind (proc │ │ │ │ │ +00002eb0: 6564 7572 6529 3a3a 2c0a 2020 2020 202a edure)::,. * │ │ │ │ │ +00002ec0: 6e6f 7465 204c 6973 7465 6e20 2870 726f note Listen (pro │ │ │ │ │ +00002ed0: 6365 6475 7265 293a 3a2c 0a20 2020 2020 cedure)::,. │ │ │ │ │ +00002ee0: 2a6e 6f74 6520 5368 7574 646f 776e 2028 *note Shutdown ( │ │ │ │ │ +00002ef0: 7072 6f63 6564 7572 6529 3a3a 2c0a 2020 procedure)::,. │ │ │ │ │ +00002f00: 2020 202a 6e6f 7465 2053 6f63 6b65 7420 *note Socket │ │ │ │ │ +00002f10: 2870 726f 6365 6475 7265 293a 3a2e 0a0a (procedure)::... │ │ │ │ │ +00002f20: 2a20 4d65 6e75 3a0a 0a2a 2042 696e 6420 * Menu:..* Bind │ │ │ │ │ +00002f30: 2870 726f 6365 6475 7265 293a 3a0a 2a20 (procedure)::.* │ │ │ │ │ +00002f40: 436f 6e6e 6563 7420 2870 726f 6365 6475 Connect (procedu │ │ │ │ │ +00002f50: 7265 293a 3a0a 2a20 4765 7420 2866 756e re)::.* Get (fun │ │ │ │ │ +00002f60: 6374 696f 6e29 3a3a 0a2a 2047 6574 5f43 ction)::.* Get_C │ │ │ │ │ +00002f70: 6861 7220 2866 756e 6374 696f 6e29 3a3a har (function):: │ │ │ │ │ +00002f80: 0a2a 2047 6574 5f4c 696e 6520 2866 756e .* Get_Line (fun │ │ │ │ │ +00002f90: 6374 696f 6e29 3a3a 0a2a 2047 6574 5f4c ction)::.* Get_L │ │ │ │ │ +00002fa0: 696e 6520 2870 726f 6365 6475 7265 293a ine (procedure): │ │ │ │ │ +00002fb0: 3a0a 2a20 4765 745f 5265 6365 6976 655f :.* Get_Receive_ │ │ │ │ │ +00002fc0: 5175 6575 655f 5369 7a65 2028 6675 6e63 Queue_Size (func │ │ │ │ │ +00002fd0: 7469 6f6e 293a 3a0a 2a20 4765 745f 5365 tion)::.* Get_Se │ │ │ │ │ +00002fe0: 6e64 5f51 7565 7565 5f53 697a 6520 2866 nd_Queue_Size (f │ │ │ │ │ +00002ff0: 756e 6374 696f 6e29 3a3a 0a2a 2047 6574 unction)::.* Get │ │ │ │ │ +00003000: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +00003010: 7265 293a 3a0a 2a20 4c69 7374 656e 2028 re)::.* Listen ( │ │ │ │ │ +00003020: 7072 6f63 6564 7572 6529 3a3a 0a2a 204e procedure)::.* N │ │ │ │ │ +00003030: 6577 5f4c 696e 6520 2870 726f 6365 6475 ew_Line (procedu │ │ │ │ │ +00003040: 7265 293a 3a0a 2a20 5075 7420 2870 726f re)::.* Put (pro │ │ │ │ │ +00003050: 6365 6475 7265 293a 3a0a 2a20 5075 745f cedure)::.* Put_ │ │ │ │ │ +00003060: 4c69 6e65 2028 7072 6f63 6564 7572 6529 Line (procedure) │ │ │ │ │ +00003070: 3a3a 0a2a 2052 6563 6569 7665 2028 6675 ::.* Receive (fu │ │ │ │ │ +00003080: 6e63 7469 6f6e 293a 3a0a 2a20 5265 6365 nction)::.* Rece │ │ │ │ │ +00003090: 6976 6520 2870 726f 6365 6475 7265 293a ive (procedure): │ │ │ │ │ +000030a0: 3a0a 2a20 5265 6365 6976 655f 536f 6d65 :.* Receive_Some │ │ │ │ │ +000030b0: 2028 7072 6f63 6564 7572 6529 3a3a 0a2a (procedure)::.* │ │ │ │ │ +000030c0: 2053 656e 6420 2870 726f 6365 6475 7265 Send (procedure │ │ │ │ │ +000030d0: 293a 3a0a 2a20 5365 745f 4275 6666 6572 )::.* Set_Buffer │ │ │ │ │ +000030e0: 2028 7072 6f63 6564 7572 6529 3a3a 0a2a (procedure)::.* │ │ │ │ │ +000030f0: 2053 6574 736f 636b 6f70 7420 2870 726f Setsockopt (pro │ │ │ │ │ +00003100: 6365 6475 7265 293a 3a0a 2a20 5368 7574 cedure)::.* Shut │ │ │ │ │ +00003110: 646f 776e 2028 7072 6f63 6564 7572 6529 down (procedure) │ │ │ │ │ +00003120: 3a3a 0a2a 2053 6f63 6b65 7420 2870 726f ::.* Socket (pro │ │ │ │ │ +00003130: 6365 6475 7265 293a 3a0a 2a20 556e 7365 cedure)::.* Unse │ │ │ │ │ +00003140: 745f 4275 6666 6572 2028 7072 6f63 6564 t_Buffer (proced │ │ │ │ │ +00003150: 7572 6529 3a3a 0a0a 1f0a 4669 6c65 3a20 ure)::....File: │ │ │ │ │ +00003160: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ +00003170: 2020 4e6f 6465 3a20 4269 6e64 2028 7072 Node: Bind (pr │ │ │ │ │ +00003180: 6f63 6564 7572 6529 2c20 204e 6578 743a ocedure), Next: │ │ │ │ │ +00003190: 2043 6f6e 6e65 6374 2028 7072 6f63 6564 Connect (proced │ │ │ │ │ +000031a0: 7572 6529 2c20 2050 7265 763a 2041 6363 ure), Prev: Acc │ │ │ │ │ +000031b0: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +000031c0: 6564 7572 6529 2c20 2055 703a 2041 6363 edure), Up: Acc │ │ │ │ │ +000031d0: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +000031e0: 6564 7572 6529 0a0a 4269 6e64 2028 7072 edure)..Bind (pr │ │ │ │ │ +000031f0: 6f63 6564 7572 6529 0a2d 2d2d 2d2d 2d2d ocedure).------- │ │ │ │ │ +00003200: 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f ---------..PURPO │ │ │ │ │ +00003210: 5345 0a20 2020 2020 4173 736f 6369 6174 SE. Associat │ │ │ │ │ +00003220: 6520 6120 6c6f 6361 6c20 706f 7274 2074 e a local port t │ │ │ │ │ +00003230: 6f20 6120 736f 636b 6574 0a50 524f 544f o a socket.PROTO │ │ │ │ │ +00003240: 5459 5045 0a20 2020 2020 202d 2d20 536f TYPE. -- So │ │ │ │ │ +00003250: 636b 6574 732e 4269 6e64 3a20 7072 6f63 ckets.Bind: proc │ │ │ │ │ +00003260: 6564 7572 6520 4269 6e64 2028 534f 434b edure Bind (SOCK │ │ │ │ │ +00003270: 4554 203a 2053 6f63 6b65 745f 4644 3b0a ET : Socket_FD;. │ │ │ │ │ +00003280: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ │ +00003290: 4f52 5420 3a20 4e61 7475 7261 6c3b 2048 ORT : Natural; H │ │ │ │ │ +000032a0: 4f53 5420 3a20 5374 7269 6e67 203a 3d20 OST : String := │ │ │ │ │ +000032b0: 2222 293b 0a0a 5041 5241 4d45 5445 5253 "");..PARAMETERS │ │ │ │ │ +000032c0: 0a20 2020 2020 534f 434b 4554 2020 2020 . SOCKET │ │ │ │ │ +000032d0: 2069 6e20 2020 2020 2020 2020 496e 6974 in Init │ │ │ │ │ +000032e0: 6961 6c69 7a65 6420 736f 636b 6574 206f ialized socket o │ │ │ │ │ +000032f0: 626a 6563 740a 2020 2020 2050 4f52 5420 bject. PORT │ │ │ │ │ +00003300: 2020 2020 2020 696e 2020 2020 2020 2020 in │ │ │ │ │ +00003310: 204c 6f63 616c 2070 6f72 7420 746f 2062 Local port to b │ │ │ │ │ +00003320: 696e 6420 746f 0a20 2020 2020 484f 5354 ind to. HOST │ │ │ │ │ +00003330: 2020 2020 2020 2069 6e20 2020 2020 2020 in │ │ │ │ │ +00003340: 2020 4c6f 6361 6c20 696e 7465 7266 6163 Local interfac │ │ │ │ │ +00003350: 6520 746f 2062 696e 6420 746f 0a0a 4445 e to bind to..DE │ │ │ │ │ +00003360: 5343 5249 5054 494f 4e0a 2020 2020 2054 SCRIPTION. T │ │ │ │ │ +00003370: 6869 7320 7072 6f63 6564 7572 6520 7265 his procedure re │ │ │ │ │ +00003380: 7175 6573 7473 2061 206c 6f63 616c 2070 quests a local p │ │ │ │ │ +00003390: 6f72 7420 6672 6f6d 2074 6865 206f 7065 ort from the ope │ │ │ │ │ +000033a0: 7261 7469 6e67 2073 7973 7465 6d2e 2020 rating system. │ │ │ │ │ +000033b0: 4966 0a20 2020 2020 3020 6973 2067 6976 If. 0 is giv │ │ │ │ │ +000033c0: 656e 2069 6e20 504f 5254 2c20 7468 6520 en in PORT, the │ │ │ │ │ +000033d0: 7379 7374 656d 2077 696c 6c20 6173 7369 system will assi │ │ │ │ │ +000033e0: 676e 2061 2066 7265 6520 706f 7274 2077 gn a free port w │ │ │ │ │ +000033f0: 686f 7365 206e 756d 6265 720a 2020 2020 hose number. │ │ │ │ │ +00003400: 2063 616e 206c 6174 6572 2062 6520 7265 can later be re │ │ │ │ │ +00003410: 7472 6965 7665 6420 7573 696e 6720 2a6e trieved using *n │ │ │ │ │ +00003420: 6f74 6520 4765 745f 536f 636b 5f50 6f72 ote Get_Sock_Por │ │ │ │ │ +00003430: 7420 2866 756e 6374 696f 6e29 3a3a 2e0a t (function)::.. │ │ │ │ │ +00003440: 2020 2020 2041 6c73 6f2c 206d 6f73 7420 Also, most │ │ │ │ │ +00003450: 6f70 6572 6174 696e 6720 7379 7374 656d operating system │ │ │ │ │ +00003460: 7320 7265 7175 6972 6520 7370 6563 6961 s require specia │ │ │ │ │ +00003470: 6c20 7072 6976 696c 6567 6573 2069 6620 l privileges if │ │ │ │ │ +00003480: 796f 7520 7761 6e74 0a20 2020 2020 746f you want. to │ │ │ │ │ +00003490: 2062 696e 6420 746f 2070 6f72 7473 2062 bind to ports b │ │ │ │ │ +000034a0: 656c 6f77 2031 3032 342e 0a0a 2020 2020 elow 1024... │ │ │ │ │ +000034b0: 2049 6620 484f 5354 2069 7320 6e6f 7420 If HOST is not │ │ │ │ │ +000034c0: 7468 6520 656d 7074 7920 7374 7269 6e67 the empty string │ │ │ │ │ +000034d0: 2c20 6974 206d 7573 7420 636f 6e74 6169 , it must contai │ │ │ │ │ +000034e0: 6e20 7468 6520 4950 2061 6464 7265 7373 n the IP address │ │ │ │ │ +000034f0: 206f 660a 2020 2020 2061 206c 6f63 616c of. a local │ │ │ │ │ +00003500: 2069 6e74 6572 6661 6365 2074 6f20 6269 interface to bi │ │ │ │ │ +00003510: 6e64 2074 6f2c 206f 7220 6120 6e61 6d65 nd to, or a name │ │ │ │ │ +00003520: 2077 6869 6368 2072 6573 6f6c 7665 7320 which resolves │ │ │ │ │ +00003530: 696e 746f 2073 7563 6820 616e 0a20 2020 into such an. │ │ │ │ │ +00003540: 2020 6164 6472 6573 732e 2020 4966 2061 address. If a │ │ │ │ │ +00003550: 6e20 656d 7074 7920 7374 7269 6e67 2069 n empty string i │ │ │ │ │ +00003560: 7320 6769 7665 6e20 2874 6865 2064 6566 s given (the def │ │ │ │ │ +00003570: 6175 6c74 292c 2074 6865 2073 6f63 6b65 ault), the socke │ │ │ │ │ +00003580: 740a 2020 2020 2077 696c 6c20 6265 2062 t. will be b │ │ │ │ │ +00003590: 6f75 6e64 2074 6f20 616c 6c20 7468 6520 ound to all the │ │ │ │ │ +000035a0: 6176 6169 6c61 626c 6520 696e 7465 7266 available interf │ │ │ │ │ +000035b0: 6163 6573 2e0a 0a45 5843 4550 5449 4f4e aces...EXCEPTION │ │ │ │ │ +000035c0: 530a 2020 2020 2027 536f 636b 6574 5f45 S. 'Socket_E │ │ │ │ │ +000035d0: 7272 6f72 2720 2020 2020 5265 7175 6573 rror' Reques │ │ │ │ │ +000035e0: 7465 6420 706f 7274 206f 7220 696e 7465 ted port or inte │ │ │ │ │ +000035f0: 7266 6163 6520 6e6f 7420 6176 6169 6c61 rface not availa │ │ │ │ │ +00003600: 626c 650a 0a53 4545 2041 4c53 4f0a 2020 ble..SEE ALSO. │ │ │ │ │ +00003610: 2020 202a 6e6f 7465 204c 6973 7465 6e20 *note Listen │ │ │ │ │ +00003620: 2870 726f 6365 6475 7265 293a 3a2c 0a20 (procedure)::,. │ │ │ │ │ +00003630: 2020 2020 2a6e 6f74 6520 536f 636b 6574 *note Socket │ │ │ │ │ +00003640: 2028 7072 6f63 6564 7572 6529 3a3a 2e0a (procedure)::.. │ │ │ │ │ +00003650: 0a1f 0a46 696c 653a 2061 6461 736f 636b ...File: adasock │ │ │ │ │ +00003660: 6574 732e 696e 666f 2c20 204e 6f64 653a ets.info, Node: │ │ │ │ │ +00003670: 2043 6f6e 6e65 6374 2028 7072 6f63 6564 Connect (proced │ │ │ │ │ +00003680: 7572 6529 2c20 204e 6578 743a 2047 6574 ure), Next: Get │ │ │ │ │ +00003690: 2028 6675 6e63 7469 6f6e 292c 2020 5072 (function), Pr │ │ │ │ │ +000036a0: 6576 3a20 4269 6e64 2028 7072 6f63 6564 ev: Bind (proced │ │ │ │ │ +000036b0: 7572 6529 2c20 2055 703a 2041 6363 6570 ure), Up: Accep │ │ │ │ │ +000036c0: 745f 536f 636b 6574 2028 7072 6f63 6564 t_Socket (proced │ │ │ │ │ +000036d0: 7572 6529 0a0a 436f 6e6e 6563 7420 2870 ure)..Connect (p │ │ │ │ │ +000036e0: 726f 6365 6475 7265 290a 2d2d 2d2d 2d2d rocedure).------ │ │ │ │ │ +000036f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ +00003700: 5552 504f 5345 0a20 2020 2020 436f 6e6e URPOSE. Conn │ │ │ │ │ +00003710: 6563 7420 6120 736f 636b 6574 206f 6e20 ect a socket on │ │ │ │ │ +00003720: 6120 6769 7665 6e20 686f 7374 2f70 6f72 a given host/por │ │ │ │ │ +00003730: 740a 5052 4f54 4f54 5950 450a 2020 2020 t.PROTOTYPE. │ │ │ │ │ +00003740: 2020 2d2d 2053 6f63 6b65 7473 2e43 6f6e -- Sockets.Con │ │ │ │ │ +00003750: 6e65 6374 3a20 7072 6f63 6564 7572 6520 nect: procedure │ │ │ │ │ +00003760: 436f 6e6e 6563 7420 2853 4f43 4b45 5420 Connect (SOCKET │ │ │ │ │ +00003770: 3a20 536f 636b 6574 5f46 443b 0a20 2020 : Socket_FD;. │ │ │ │ │ +00003780: 2020 2020 2020 2020 2020 2020 484f 5354 HOST │ │ │ │ │ +00003790: 203a 2053 7472 696e 673b 2050 4f52 5420 : String; PORT │ │ │ │ │ +000037a0: 3a20 506f 7369 7469 7665 293b 0a0a 5041 : Positive);..PA │ │ │ │ │ +000037b0: 5241 4d45 5445 5253 0a20 2020 2020 534f RAMETERS. SO │ │ │ │ │ +000037c0: 434b 4554 2020 2020 2069 6e20 2020 2020 CKET in │ │ │ │ │ +000037d0: 2020 2020 496e 6974 6961 6c69 7a65 6420 Initialized │ │ │ │ │ +000037e0: 736f 636b 6574 206f 626a 6563 740a 2020 socket object. │ │ │ │ │ +000037f0: 2020 2048 4f53 5420 2020 2020 2020 696e HOST in │ │ │ │ │ +00003800: 2020 2020 2020 2020 2048 6f73 7420 746f Host to │ │ │ │ │ +00003810: 2063 6f6e 6e65 6374 2074 6f0a 2020 2020 connect to. │ │ │ │ │ +00003820: 2050 4f52 5420 2020 2020 2020 696e 2020 PORT in │ │ │ │ │ +00003830: 2020 2020 2020 2050 6f72 7420 746f 2063 Port to c │ │ │ │ │ +00003840: 6f6e 6e65 6374 2074 6f0a 0a44 4553 4352 onnect to..DESCR │ │ │ │ │ +00003850: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ +00003860: 2070 726f 6365 6475 7265 2063 6f6e 6e65 procedure conne │ │ │ │ │ +00003870: 6374 7320 616e 2069 6e69 7469 616c 697a cts an initializ │ │ │ │ │ +00003880: 6564 2073 6f63 6b65 7420 746f 2061 2067 ed socket to a g │ │ │ │ │ +00003890: 6976 656e 2068 6f73 7420 6f6e 2061 0a20 iven host on a. │ │ │ │ │ +000038a0: 2020 2020 6769 7665 6e20 706f 7274 2e20 given port. │ │ │ │ │ +000038b0: 2049 6e20 7468 6520 6361 7365 206f 6620 In the case of │ │ │ │ │ +000038c0: 6120 5443 5020 736f 636b 6574 2c20 6120 a TCP socket, a │ │ │ │ │ +000038d0: 7265 616c 2063 6f6e 6e65 6374 696f 6e20 real connection │ │ │ │ │ +000038e0: 6973 0a20 2020 2020 6174 7465 6d70 7465 is. attempte │ │ │ │ │ +000038f0: 642e 2020 496e 2074 6865 2063 6173 6520 d. In the case │ │ │ │ │ +00003900: 6f66 2061 2055 4450 2073 6f63 6b65 742c of a UDP socket, │ │ │ │ │ +00003910: 206e 6f20 636f 6e6e 6563 7469 6f6e 2074 no connection t │ │ │ │ │ +00003920: 616b 6573 2070 6c61 6365 0a20 2020 2020 akes place. │ │ │ │ │ +00003930: 6275 7420 7468 6520 656e 6470 6f69 6e74 but the endpoint │ │ │ │ │ +00003940: 2063 6f6f 7264 696e 6174 6573 2061 7265 coordinates are │ │ │ │ │ +00003950: 2072 6563 6f72 6465 642e 0a0a 4558 4345 recorded...EXCE │ │ │ │ │ +00003960: 5054 494f 4e53 0a20 2020 2020 2743 6f6e PTIONS. 'Con │ │ │ │ │ +00003970: 6e65 6374 696f 6e5f 5265 6675 7365 6427 nection_Refused' │ │ │ │ │ +00003980: 5468 6520 636f 6e6e 6563 7469 6f6e 2068 The connection h │ │ │ │ │ +00003990: 6173 2062 6565 6e20 7265 6675 7365 6420 as been refused │ │ │ │ │ +000039a0: 6279 2074 6865 0a20 2020 2020 2020 2020 by the. │ │ │ │ │ +000039b0: 2020 2020 2020 2020 2020 2020 2020 2073 s │ │ │ │ │ +000039c0: 6572 7665 720a 2020 2020 2027 536f 636b erver. 'Sock │ │ │ │ │ +000039d0: 6574 5f45 7272 6f72 2720 2020 2020 416e et_Error' An │ │ │ │ │ +000039e0: 6f74 6865 7220 6572 726f 7220 6f63 6375 other error occu │ │ │ │ │ +000039f0: 7272 6564 2064 7572 696e 6720 7468 650a rred during the. │ │ │ │ │ +00003a00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00003a10: 2020 2020 2020 2020 636f 6e6e 6563 7469 connecti │ │ │ │ │ +00003a20: 6f6e 0a0a 4558 414d 504c 450a 2020 2020 on..EXAMPLE. │ │ │ │ │ +00003a30: 2020 2020 2020 6465 636c 6172 650a 2020 declare. │ │ │ │ │ +00003a40: 2020 2020 2020 2020 2020 2053 6f63 6b20 Sock │ │ │ │ │ +00003a50: 3a20 536f 636b 6574 5f46 443b 0a20 2020 : Socket_FD;. │ │ │ │ │ +00003a60: 2020 2020 2020 2062 6567 696e 0a20 2020 begin. │ │ │ │ │ +00003a70: 2020 2020 2020 2020 2020 2d2d 2043 7265 -- Cre │ │ │ │ │ +00003a80: 6174 6520 6120 5443 5020 736f 636b 6574 ate a TCP socket │ │ │ │ │ +00003a90: 0a20 2020 2020 2020 2020 2020 2020 536f . So │ │ │ │ │ +00003aa0: 636b 6574 2028 536f 636b 2c20 5046 5f49 cket (Sock, PF_I │ │ │ │ │ +00003ab0: 4e45 542c 2053 4f43 4b5f 5354 5245 414d NET, SOCK_STREAM │ │ │ │ │ +00003ac0: 293b 0a20 2020 2020 2020 2020 2020 2020 );. │ │ │ │ │ +00003ad0: 2d2d 2043 6f6e 6e65 6374 2069 7420 746f -- Connect it to │ │ │ │ │ +00003ae0: 2072 6663 3131 3439 2e6e 6574 2773 206d rfc1149.net's m │ │ │ │ │ +00003af0: 6169 6c20 7365 7276 6572 0a20 2020 2020 ail server. │ │ │ │ │ +00003b00: 2020 2020 2020 2020 436f 6e6e 6563 7420 Connect │ │ │ │ │ +00003b10: 2853 6f63 6b2c 2022 6d61 696c 2e72 6663 (Sock, "mail.rfc │ │ │ │ │ +00003b20: 3131 3439 2e6e 6574 222c 2032 3529 3b0a 1149.net", 25);. │ │ │ │ │ +00003b30: 2020 2020 2020 2020 2020 2020 202d 2d20 -- │ │ │ │ │ +00003b40: 446f 2061 206d 6169 6c20 7472 616e 7361 Do a mail transa │ │ │ │ │ +00003b50: 6374 696f 6e20 7468 656e 2063 6c6f 7365 ction then close │ │ │ │ │ +00003b60: 2074 6865 2073 6f63 6b65 740a 2020 2020 the socket. │ │ │ │ │ +00003b70: 2020 2020 2020 2020 205b 2e2e 2e5d 0a20 [...]. │ │ │ │ │ +00003b80: 2020 2020 2020 2020 2065 6e64 3b0a 0a53 end;..S │ │ │ │ │ +00003b90: 4545 2041 4c53 4f0a 2020 2020 202a 6e6f EE ALSO. *no │ │ │ │ │ +00003ba0: 7465 2053 6f63 6b65 7420 2870 726f 6365 te Socket (proce │ │ │ │ │ +00003bb0: 6475 7265 293a 3a2e 0a0a 1f0a 4669 6c65 dure)::.....File │ │ │ │ │ +00003bc0: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ +00003bd0: 6f2c 2020 4e6f 6465 3a20 4765 7420 2866 o, Node: Get (f │ │ │ │ │ +00003be0: 756e 6374 696f 6e29 2c20 204e 6578 743a unction), Next: │ │ │ │ │ +00003bf0: 2047 6574 5f43 6861 7220 2866 756e 6374 Get_Char (funct │ │ │ │ │ +00003c00: 696f 6e29 2c20 2050 7265 763a 2043 6f6e ion), Prev: Con │ │ │ │ │ +00003c10: 6e65 6374 2028 7072 6f63 6564 7572 6529 nect (procedure) │ │ │ │ │ +00003c20: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ +00003c30: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +00003c40: 0a0a 4765 7420 2866 756e 6374 696f 6e29 ..Get (function) │ │ │ │ │ +00003c50: 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a .--------------. │ │ │ │ │ +00003c60: 0a50 5552 504f 5345 0a20 2020 2020 4765 .PURPOSE. Ge │ │ │ │ │ +00003c70: 7420 6120 7374 7269 6e67 2066 726f 6d20 t a string from │ │ │ │ │ +00003c80: 6120 7265 6d6f 7465 2068 6f73 740a 5052 a remote host.PR │ │ │ │ │ +00003c90: 4f54 4f54 5950 450a 2020 2020 2020 2d2d OTOTYPE. -- │ │ │ │ │ +00003ca0: 2053 6f63 6b65 7473 2e47 6574 3a20 6675 Sockets.Get: fu │ │ │ │ │ +00003cb0: 6e63 7469 6f6e 2047 6574 2028 534f 434b nction Get (SOCK │ │ │ │ │ +00003cc0: 4554 203a 2053 6f63 6b65 745f 4644 2743 ET : Socket_FD'C │ │ │ │ │ +00003cd0: 6c61 7373 290a 2020 2020 2020 2020 2020 lass). │ │ │ │ │ +00003ce0: 2020 2020 2072 6574 7572 6e20 5374 7269 return Stri │ │ │ │ │ +00003cf0: 6e67 3b0a 0a50 4152 414d 4554 4552 530a ng;..PARAMETERS. │ │ │ │ │ +00003d00: 2020 2020 2053 4f43 4b45 5420 2020 2020 SOCKET │ │ │ │ │ +00003d10: 696e 2020 2020 2020 2020 2049 6e69 7469 in Initi │ │ │ │ │ +00003d20: 616c 697a 6564 2061 6e64 2063 6f6e 6e65 alized and conne │ │ │ │ │ +00003d30: 6374 6564 2073 6f63 6b65 7420 6f62 6a65 cted socket obje │ │ │ │ │ +00003d40: 6374 0a0a 5245 5455 524e 2056 414c 5545 ct..RETURN VALUE │ │ │ │ │ +00003d50: 0a20 2020 2020 536f 6d65 2063 6861 7261 . Some chara │ │ │ │ │ +00003d60: 6374 6572 7320 7468 6174 2068 6176 6520 cters that have │ │ │ │ │ +00003d70: 6265 656e 2072 6563 6569 7665 640a 0a44 been received..D │ │ │ │ │ +00003d80: 4553 4352 4950 5449 4f4e 0a20 2020 2020 ESCRIPTION. │ │ │ │ │ +00003d90: 5468 6973 2066 756e 6374 696f 6e20 7265 This function re │ │ │ │ │ +00003da0: 6365 6976 6573 2073 6f6d 6520 6368 6172 ceives some char │ │ │ │ │ +00003db0: 6163 7465 7273 2066 726f 6d20 6120 7265 acters from a re │ │ │ │ │ +00003dc0: 6d6f 7465 2068 6f73 742e 2020 4173 2073 mote host. As s │ │ │ │ │ +00003dd0: 6f6f 6e0a 2020 2020 2074 6861 7420 6174 oon. that at │ │ │ │ │ +00003de0: 206c 6561 7374 206f 6e65 2063 6861 7261 least one chara │ │ │ │ │ +00003df0: 6374 6572 2069 7320 6176 6169 6c61 626c cter is availabl │ │ │ │ │ +00003e00: 652c 2074 6865 2063 7572 7265 6e74 2072 e, the current r │ │ │ │ │ +00003e10: 6563 6570 7469 6f6e 0a20 2020 2020 6275 eception. bu │ │ │ │ │ +00003e20: 6666 6572 2069 7320 7265 7475 726e 6564 ffer is returned │ │ │ │ │ +00003e30: 2e0a 0a20 2020 2020 5468 6572 6520 6973 ... There is │ │ │ │ │ +00003e40: 2075 7375 616c 6c79 206c 6974 746c 6520 usually little │ │ │ │ │ +00003e50: 6761 696e 2069 6e20 7573 696e 6720 7468 gain in using th │ │ │ │ │ +00003e60: 6973 2066 756e 6374 696f 6e20 7768 6f73 is function whos │ │ │ │ │ +00003e70: 6520 6265 6861 7669 6f75 720a 2020 2020 e behaviour. │ │ │ │ │ +00003e80: 2069 7320 636f 6d70 6172 6162 6c65 2074 is comparable t │ │ │ │ │ +00003e90: 6f20 7468 6520 6f6e 6520 6f66 202a 6e6f o the one of *no │ │ │ │ │ +00003ea0: 7465 2052 6563 6569 7665 2028 6675 6e63 te Receive (func │ │ │ │ │ +00003eb0: 7469 6f6e 293a 3a2e 2020 4f74 6865 720a tion)::. Other. │ │ │ │ │ +00003ec0: 2020 2020 2066 756e 6374 696f 6e73 2073 functions s │ │ │ │ │ +00003ed0: 7563 6820 6173 202a 6e6f 7465 2047 6574 uch as *note Get │ │ │ │ │ +00003ee0: 5f43 6861 7220 2866 756e 6374 696f 6e29 _Char (function) │ │ │ │ │ +00003ef0: 3a3a 2c20 6f72 202a 6e6f 7465 2047 6574 ::, or *note Get │ │ │ │ │ +00003f00: 5f4c 696e 650a 2020 2020 2028 6675 6e63 _Line. (func │ │ │ │ │ +00003f10: 7469 6f6e 293a 3a2c 2061 6c6c 6f77 206d tion)::, allow m │ │ │ │ │ +00003f20: 6f72 6520 7374 7275 6374 7572 6564 2070 ore structured p │ │ │ │ │ +00003f30: 726f 6772 616d 6d69 6e67 2e0a 0a20 2020 rogramming... │ │ │ │ │ +00003f40: 2020 486f 7765 7665 722c 2074 6869 7320 However, this │ │ │ │ │ +00003f50: 6675 6e63 7469 6f6e 206d 6179 2062 6520 function may be │ │ │ │ │ +00003f60: 7573 6564 2074 6f20 6176 6f69 6420 6c6f used to avoid lo │ │ │ │ │ +00003f70: 6f73 696e 6720 6368 6172 6163 7465 7273 osing characters │ │ │ │ │ +00003f80: 2077 6865 6e0a 2020 2020 2063 616c 6c69 when. calli │ │ │ │ │ +00003f90: 6e67 202a 6e6f 7465 2055 6e73 6574 5f42 ng *note Unset_B │ │ │ │ │ +00003fa0: 7566 6665 7220 2870 726f 6365 6475 7265 uffer (procedure │ │ │ │ │ +00003fb0: 293a 3a2c 2069 662c 2066 6f72 2073 6f6d )::, if, for som │ │ │ │ │ +00003fc0: 6520 7265 6173 6f6e 2c20 7468 650a 2020 e reason, the. │ │ │ │ │ +00003fd0: 2020 2072 656d 6f74 6520 686f 7374 206d remote host m │ │ │ │ │ +00003fe0: 6179 2068 6176 6520 7365 6e74 2073 6f6d ay have sent som │ │ │ │ │ +00003ff0: 652e 0a0a 4558 4345 5054 494f 4e53 0a20 e...EXCEPTIONS. │ │ │ │ │ +00004000: 2020 2020 2743 6f6e 6e65 6374 696f 6e5f 'Connection_ │ │ │ │ │ +00004010: 436c 6f73 6564 2750 6565 7220 6861 7320 Closed'Peer has │ │ │ │ │ +00004020: 636c 6f73 6564 2074 6865 2063 6f6e 6e65 closed the conne │ │ │ │ │ +00004030: 6374 696f 6e20 6265 666f 7265 0a20 2020 ction before. │ │ │ │ │ +00004040: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00004050: 2020 2020 2073 656e 6469 6e67 2061 6e79 sending any │ │ │ │ │ +00004060: 2064 6174 610a 0a1f 0a46 696c 653a 2061 data....File: a │ │ │ │ │ +00004070: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ +00004080: 204e 6f64 653a 2047 6574 5f43 6861 7220 Node: Get_Char │ │ │ │ │ +00004090: 2866 756e 6374 696f 6e29 2c20 204e 6578 (function), Nex │ │ │ │ │ +000040a0: 743a 2047 6574 5f4c 696e 6520 2866 756e t: Get_Line (fun │ │ │ │ │ +000040b0: 6374 696f 6e29 2c20 2050 7265 763a 2047 ction), Prev: G │ │ │ │ │ +000040c0: 6574 2028 6675 6e63 7469 6f6e 292c 2020 et (function), │ │ │ │ │ +000040d0: 5570 3a20 4163 6365 7074 5f53 6f63 6b65 Up: Accept_Socke │ │ │ │ │ +000040e0: 7420 2870 726f 6365 6475 7265 290a 0a47 t (procedure)..G │ │ │ │ │ +000040f0: 6574 5f43 6861 7220 2866 756e 6374 696f et_Char (functio │ │ │ │ │ +00004100: 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d n).------------- │ │ │ │ │ +00004110: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ +00004120: 2020 2020 2047 6574 2061 2063 6861 7261 Get a chara │ │ │ │ │ +00004130: 6374 6572 2066 726f 6d20 6120 7265 6d6f cter from a remo │ │ │ │ │ +00004140: 7465 2068 6f73 740a 5052 4f54 4f54 5950 te host.PROTOTYP │ │ │ │ │ +00004150: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ +00004160: 7473 2e47 6574 5f43 6861 723a 2066 756e ts.Get_Char: fun │ │ │ │ │ +00004170: 6374 696f 6e20 4765 745f 4368 6172 2028 ction Get_Char ( │ │ │ │ │ +00004180: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ +00004190: 4644 2743 6c61 7373 290a 2020 2020 2020 FD'Class). │ │ │ │ │ +000041a0: 2020 2020 2020 2020 2072 6574 7572 6e20 return │ │ │ │ │ +000041b0: 4368 6172 6163 7465 723b 0a0a 5041 5241 Character;..PARA │ │ │ │ │ +000041c0: 4d45 5445 5253 0a20 2020 2020 534f 434b METERS. SOCK │ │ │ │ │ +000041d0: 4554 2020 2020 2069 6e20 2020 2020 2020 ET in │ │ │ │ │ +000041e0: 2020 496e 6974 6961 6c69 7a65 6420 616e Initialized an │ │ │ │ │ +000041f0: 6420 636f 6e6e 6563 7465 6420 736f 636b d connected sock │ │ │ │ │ +00004200: 6574 206f 626a 6563 740a 0a52 4554 5552 et object..RETUR │ │ │ │ │ +00004210: 4e20 5641 4c55 450a 2020 2020 204f 6e65 N VALUE. One │ │ │ │ │ +00004220: 2063 6861 7261 6374 6572 2073 656e 7420 character sent │ │ │ │ │ +00004230: 6279 2074 6865 2072 656d 6f74 6520 686f by the remote ho │ │ │ │ │ +00004240: 7374 0a0a 4445 5343 5249 5054 494f 4e0a st..DESCRIPTION. │ │ │ │ │ +00004250: 2020 2020 2054 6869 7320 6675 6e63 7469 This functi │ │ │ │ │ +00004260: 6f6e 2072 6563 6569 7665 7320 6578 6163 on receives exac │ │ │ │ │ +00004270: 746c 7920 6f6e 6520 6368 6172 6163 7465 tly one characte │ │ │ │ │ +00004280: 7220 6672 6f6d 2074 6865 2072 656d 6f74 r from the remot │ │ │ │ │ +00004290: 6520 686f 7374 2e0a 0a45 5843 4550 5449 e host...EXCEPTI │ │ │ │ │ +000042a0: 4f4e 530a 2020 2020 2027 436f 6e6e 6563 ONS. 'Connec │ │ │ │ │ +000042b0: 7469 6f6e 5f43 6c6f 7365 6427 5065 6572 tion_Closed'Peer │ │ │ │ │ +000042c0: 2068 6173 2063 6c6f 7365 6420 7468 6520 has closed the │ │ │ │ │ +000042d0: 636f 6e6e 6563 7469 6f6e 2062 6566 6f72 connection befor │ │ │ │ │ +000042e0: 650a 2020 2020 2020 2020 2020 2020 2020 e. │ │ │ │ │ +000042f0: 2020 2020 2020 2020 2020 7365 6e64 696e sendin │ │ │ │ │ +00004300: 6720 7468 6520 6368 6172 6163 7465 720a g the character. │ │ │ │ │ +00004310: 0a53 4545 2041 4c53 4f0a 2020 2020 202a .SEE ALSO. * │ │ │ │ │ +00004320: 6e6f 7465 2047 6574 2028 6675 6e63 7469 note Get (functi │ │ │ │ │ +00004330: 6f6e 293a 3a2c 0a20 2020 2020 2a6e 6f74 on)::,. *not │ │ │ │ │ +00004340: 6520 4765 745f 4c69 6e65 2028 6675 6e63 e Get_Line (func │ │ │ │ │ +00004350: 7469 6f6e 293a 3a2c 0a20 2020 2020 2a6e tion)::,. *n │ │ │ │ │ +00004360: 6f74 6520 4765 745f 4c69 6e65 2028 7072 ote Get_Line (pr │ │ │ │ │ +00004370: 6f63 6564 7572 6529 3a3a 2c0a 2020 2020 ocedure)::,. │ │ │ │ │ +00004380: 202a 6e6f 7465 2052 6563 6569 7665 2028 *note Receive ( │ │ │ │ │ +00004390: 7072 6f63 6564 7572 6529 3a3a 2c0a 2020 procedure)::,. │ │ │ │ │ +000043a0: 2020 202a 6e6f 7465 2053 6574 5f42 7566 *note Set_Buf │ │ │ │ │ +000043b0: 6665 7220 2870 726f 6365 6475 7265 293a fer (procedure): │ │ │ │ │ +000043c0: 3a2e 0a0a 1f0a 4669 6c65 3a20 6164 6173 :.....File: adas │ │ │ │ │ +000043d0: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ +000043e0: 6465 3a20 4765 745f 4c69 6e65 2028 6675 de: Get_Line (fu │ │ │ │ │ +000043f0: 6e63 7469 6f6e 292c 2020 4e65 7874 3a20 nction), Next: │ │ │ │ │ +00004400: 4765 745f 4c69 6e65 2028 7072 6f63 6564 Get_Line (proced │ │ │ │ │ +00004410: 7572 6529 2c20 2050 7265 763a 2047 6574 ure), Prev: Get │ │ │ │ │ +00004420: 5f43 6861 7220 2866 756e 6374 696f 6e29 _Char (function) │ │ │ │ │ +00004430: 2c20 2055 703a 2041 6363 6570 745f 536f , Up: Accept_So │ │ │ │ │ +00004440: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +00004450: 0a0a 4765 745f 4c69 6e65 2028 6675 6e63 ..Get_Line (func │ │ │ │ │ +00004460: 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d 2d2d tion).---------- │ │ │ │ │ +00004470: 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f ---------..PURPO │ │ │ │ │ +00004480: 5345 0a20 2020 2020 4765 7420 6120 7768 SE. Get a wh │ │ │ │ │ +00004490: 6f6c 6520 6c69 6e65 2066 726f 6d20 6120 ole line from a │ │ │ │ │ +000044a0: 7265 6d6f 7465 2068 6f73 740a 5052 4f54 remote host.PROT │ │ │ │ │ +000044b0: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ +000044c0: 6f63 6b65 7473 2e47 6574 5f4c 696e 653a ockets.Get_Line: │ │ │ │ │ +000044d0: 2066 756e 6374 696f 6e20 4765 745f 4c69 function Get_Li │ │ │ │ │ +000044e0: 6e65 2028 534f 434b 4554 203a 2053 6f63 ne (SOCKET : Soc │ │ │ │ │ +000044f0: 6b65 745f 4644 2743 6c61 7373 3b0a 2020 ket_FD'Class;. │ │ │ │ │ +00004500: 2020 2020 2020 2020 2020 2020 204d 4158 MAX │ │ │ │ │ +00004510: 5f4c 454e 4754 4820 3a20 506f 7369 7469 _LENGTH : Positi │ │ │ │ │ +00004520: 7665 203a 3d20 3230 3438 290a 2020 2020 ve := 2048). │ │ │ │ │ +00004530: 2020 2020 2020 2020 2020 2072 6574 7572 retur │ │ │ │ │ +00004540: 6e20 5374 7269 6e67 3b0a 0a50 4152 414d n String;..PARAM │ │ │ │ │ +00004550: 4554 4552 530a 2020 2020 2053 4f43 4b45 ETERS. SOCKE │ │ │ │ │ +00004560: 5420 2020 2020 696e 2020 2020 2020 2020 T in │ │ │ │ │ +00004570: 2049 6e69 7469 616c 697a 6564 2061 6e64 Initialized and │ │ │ │ │ +00004580: 2063 6f6e 6e65 6374 6564 2073 6f63 6b65 connected socke │ │ │ │ │ +00004590: 7420 6f62 6a65 6374 0a20 2020 2020 4d41 t object. MA │ │ │ │ │ +000045a0: 585f 4c45 4e47 5448 2069 6e20 2020 2020 X_LENGTH in │ │ │ │ │ +000045b0: 2020 2020 4d61 7869 6d75 6d20 7265 7475 Maximum retu │ │ │ │ │ +000045c0: 726e 6564 206c 696e 6520 6c65 6e67 7468 rned line length │ │ │ │ │ +000045d0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ +000045e0: 2020 2020 4120 6c69 6e65 2077 6974 686f A line witho │ │ │ │ │ +000045f0: 7574 2074 6865 2043 5220 616e 6420 4c46 ut the CR and LF │ │ │ │ │ +00004600: 2073 6570 6172 6174 6f72 730a 0a44 4553 separators..DES │ │ │ │ │ +00004610: 4352 4950 5449 4f4e 0a20 2020 2020 5468 CRIPTION. Th │ │ │ │ │ +00004620: 6973 2066 756e 6374 696f 6e20 7265 6365 is function rece │ │ │ │ │ +00004630: 6976 6573 206f 6e65 206c 696e 6520 6672 ives one line fr │ │ │ │ │ +00004640: 6f6d 2074 6865 2072 656d 6f74 6520 686f om the remote ho │ │ │ │ │ +00004650: 7374 2e20 2041 206c 696e 650a 2020 2020 st. A line. │ │ │ │ │ +00004660: 2063 6f6e 7369 7374 7320 696e 746f 207a consists into z │ │ │ │ │ +00004670: 6572 6f20 6f72 206d 6f72 6520 6368 6172 ero or more char │ │ │ │ │ +00004680: 6163 7465 7273 2066 6f6c 6c6f 7765 6420 acters followed │ │ │ │ │ +00004690: 6279 2061 6e20 6f70 7469 6f6e 616c 2043 by an optional C │ │ │ │ │ +000046a0: 520a 2020 2020 2061 6e64 2062 7920 6120 R. and by a │ │ │ │ │ +000046b0: 4c46 2e20 5468 6f73 6520 7465 726d 696e LF. Those termin │ │ │ │ │ +000046c0: 6174 6f72 7320 6172 6520 7374 7269 7070 ators are stripp │ │ │ │ │ +000046d0: 6564 2062 6566 6f72 6520 7468 6520 6c69 ed before the li │ │ │ │ │ +000046e0: 6e65 2069 730a 2020 2020 2072 6574 7572 ne is. retur │ │ │ │ │ +000046f0: 6e65 642e 0a0a 2020 2020 2054 6869 7320 ned... This │ │ │ │ │ +00004700: 6675 6e63 7469 6f6e 2062 6c6f 636b 7320 function blocks │ │ │ │ │ +00004710: 756e 7469 6c20 6f6e 6520 6675 6c6c 206c until one full l │ │ │ │ │ +00004720: 696e 6520 6861 7320 6265 656e 2072 6563 ine has been rec │ │ │ │ │ +00004730: 6569 7665 642e 2020 5468 650a 2020 2020 eived. The. │ │ │ │ │ +00004740: 206c 696e 6520 6c65 6e67 7468 2069 7320 line length is │ │ │ │ │ +00004750: 6c69 6d69 7465 6420 7769 7468 2074 6865 limited with the │ │ │ │ │ +00004760: 2076 616c 7565 206f 6620 7468 6520 4d61 value of the Ma │ │ │ │ │ +00004770: 785f 4c65 6e67 7468 2061 7267 756d 656e x_Length argumen │ │ │ │ │ +00004780: 742c 0a20 2020 2020 746f 2061 766f 6964 t,. to avoid │ │ │ │ │ +00004790: 2065 7868 6175 7374 696f 6e20 6f66 2074 exhaustion of t │ │ │ │ │ +000047a0: 6865 2073 6563 6f6e 6461 7279 2073 7461 he secondary sta │ │ │ │ │ +000047b0: 636b 2e0a 0a45 5843 4550 5449 4f4e 530a ck...EXCEPTIONS. │ │ │ │ │ +000047c0: 2020 2020 2027 436f 6e6e 6563 7469 6f6e 'Connection │ │ │ │ │ +000047d0: 5f43 6c6f 7365 6427 5065 6572 2068 6173 _Closed'Peer has │ │ │ │ │ +000047e0: 2063 6c6f 7365 6420 7468 6520 636f 6e6e closed the conn │ │ │ │ │ +000047f0: 6563 7469 6f6e 2062 6566 6f72 650a 2020 ection before. │ │ │ │ │ +00004800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00004810: 2020 2020 2020 7365 6e64 696e 6720 6120 sending a │ │ │ │ │ +00004820: 7768 6f6c 6520 6c69 6e65 0a0a 5345 4520 whole line..SEE │ │ │ │ │ +00004830: 414c 534f 0a20 2020 2020 2a6e 6f74 6520 ALSO. *note │ │ │ │ │ +00004840: 4765 7420 2866 756e 6374 696f 6e29 3a3a Get (function):: │ │ │ │ │ +00004850: 2c0a 2020 2020 202a 6e6f 7465 2047 6574 ,. *note Get │ │ │ │ │ +00004860: 5f43 6861 7220 2866 756e 6374 696f 6e29 _Char (function) │ │ │ │ │ +00004870: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2047 ::,. *note G │ │ │ │ │ +00004880: 6574 5f4c 696e 6520 2870 726f 6365 6475 et_Line (procedu │ │ │ │ │ +00004890: 7265 293a 3a2c 0a20 2020 2020 2a6e 6f74 re)::,. *not │ │ │ │ │ +000048a0: 6520 5265 6365 6976 6520 2870 726f 6365 e Receive (proce │ │ │ │ │ +000048b0: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ +000048c0: 6f74 6520 5365 745f 4275 6666 6572 2028 ote Set_Buffer ( │ │ │ │ │ +000048d0: 7072 6f63 6564 7572 6529 3a3a 2e0a 0a1f procedure)::.... │ │ │ │ │ +000048e0: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ +000048f0: 732e 696e 666f 2c20 204e 6f64 653a 2047 s.info, Node: G │ │ │ │ │ +00004900: 6574 5f4c 696e 6520 2870 726f 6365 6475 et_Line (procedu │ │ │ │ │ +00004910: 7265 292c 2020 4e65 7874 3a20 4765 745f re), Next: Get_ │ │ │ │ │ +00004920: 5265 6365 6976 655f 5175 6575 655f 5369 Receive_Queue_Si │ │ │ │ │ +00004930: 7a65 2028 6675 6e63 7469 6f6e 292c 2020 ze (function), │ │ │ │ │ +00004940: 5072 6576 3a20 4765 745f 4c69 6e65 2028 Prev: Get_Line ( │ │ │ │ │ +00004950: 6675 6e63 7469 6f6e 292c 2020 5570 3a20 function), Up: │ │ │ │ │ +00004960: 4163 6365 7074 5f53 6f63 6b65 7420 2870 Accept_Socket (p │ │ │ │ │ +00004970: 726f 6365 6475 7265 290a 0a47 6574 5f4c rocedure)..Get_L │ │ │ │ │ +00004980: 696e 6520 2870 726f 6365 6475 7265 290a ine (procedure). │ │ │ │ │ +00004990: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +000049a0: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ +000049b0: 2020 2047 6574 2061 2077 686f 6c65 206c Get a whole l │ │ │ │ │ +000049c0: 696e 6520 6672 6f6d 2061 2072 656d 6f74 ine from a remot │ │ │ │ │ +000049d0: 6520 686f 7374 0a50 524f 544f 5459 5045 e host.PROTOTYPE │ │ │ │ │ +000049e0: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +000049f0: 732e 4765 745f 4c69 6e65 3a20 7072 6f63 s.Get_Line: proc │ │ │ │ │ +00004a00: 6564 7572 6520 4765 745f 4c69 6e65 2028 edure Get_Line ( │ │ │ │ │ +00004a10: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ +00004a20: 4644 2743 6c61 7373 3b0a 2020 2020 2020 FD'Class;. │ │ │ │ │ +00004a30: 2020 2020 2020 2020 2053 5452 203a 2069 STR : i │ │ │ │ │ +00004a40: 6e20 6f75 7420 5374 7269 6e67 3b20 4c41 n out String; LA │ │ │ │ │ +00004a50: 5354 203a 206f 7574 204e 6174 7572 616c ST : out Natural │ │ │ │ │ +00004a60: 293b 0a0a 5041 5241 4d45 5445 5253 0a20 );..PARAMETERS. │ │ │ │ │ +00004a70: 2020 2020 534f 434b 4554 2020 2020 2069 SOCKET i │ │ │ │ │ +00004a80: 6e20 2020 2020 2020 2020 496e 6974 6961 n Initia │ │ │ │ │ +00004a90: 6c69 7a65 6420 616e 6420 636f 6e6e 6563 lized and connec │ │ │ │ │ +00004aa0: 7465 6420 736f 636b 6574 206f 626a 6563 ted socket objec │ │ │ │ │ +00004ab0: 740a 2020 2020 2053 5452 2020 2020 2020 t. STR │ │ │ │ │ +00004ac0: 2020 696e 206f 7574 2020 2020 2053 7472 in out Str │ │ │ │ │ +00004ad0: 696e 6720 746f 2066 696c 6c0a 2020 2020 ing to fill. │ │ │ │ │ +00004ae0: 204c 4153 5420 2020 2020 2020 6f75 7420 LAST out │ │ │ │ │ +00004af0: 2020 2020 2020 204c 6173 7420 696e 6465 Last inde │ │ │ │ │ +00004b00: 7820 7573 6564 2069 6e20 7468 6520 7374 x used in the st │ │ │ │ │ +00004b10: 7269 6e67 0a0a 4445 5343 5249 5054 494f ring..DESCRIPTIO │ │ │ │ │ +00004b20: 4e0a 2020 2020 2054 6869 7320 7072 6f63 N. This proc │ │ │ │ │ +00004b30: 6564 7572 6520 7265 6365 6976 6573 206f edure receives o │ │ │ │ │ +00004b40: 6e65 206c 696e 6520 6672 6f6d 2074 6865 ne line from the │ │ │ │ │ +00004b50: 2072 656d 6f74 6520 686f 7374 2e20 2041 remote host. A │ │ │ │ │ +00004b60: 206c 696e 650a 2020 2020 2063 6f6e 7369 line. consi │ │ │ │ │ +00004b70: 7374 7320 696e 746f 207a 6572 6f20 6f72 sts into zero or │ │ │ │ │ +00004b80: 206d 6f72 6520 6368 6172 6163 7465 7273 more characters │ │ │ │ │ +00004b90: 2066 6f6c 6c6f 7765 6420 6279 2061 6e20 followed by an │ │ │ │ │ +00004ba0: 6f70 7469 6f6e 616c 2043 520a 2020 2020 optional CR. │ │ │ │ │ +00004bb0: 2061 6e64 2062 7920 6120 4c46 2e20 5468 and by a LF. Th │ │ │ │ │ +00004bc0: 6f73 6520 7465 726d 696e 6174 6f72 7320 ose terminators │ │ │ │ │ +00004bd0: 6172 6520 7374 7269 7070 6564 2062 6566 are stripped bef │ │ │ │ │ +00004be0: 6f72 6520 7468 6520 6c69 6e65 2069 730a ore the line is. │ │ │ │ │ +00004bf0: 2020 2020 2072 6574 7572 6e65 642e 0a0a returned... │ │ │ │ │ +00004c00: 2020 2020 2054 6869 7320 7072 6f63 6564 This proced │ │ │ │ │ +00004c10: 7572 6520 626c 6f63 6b73 2075 6e74 696c ure blocks until │ │ │ │ │ +00004c20: 206f 6e65 2066 756c 6c20 6c69 6e65 2068 one full line h │ │ │ │ │ +00004c30: 6173 2062 6565 6e20 7265 6365 6976 6564 as been received │ │ │ │ │ +00004c40: 2e0a 0a45 5843 4550 5449 4f4e 530a 2020 ...EXCEPTIONS. │ │ │ │ │ +00004c50: 2020 2027 436f 6e6e 6563 7469 6f6e 5f43 'Connection_C │ │ │ │ │ +00004c60: 6c6f 7365 6427 5065 6572 2068 6173 2063 losed'Peer has c │ │ │ │ │ +00004c70: 6c6f 7365 6420 7468 6520 636f 6e6e 6563 losed the connec │ │ │ │ │ +00004c80: 7469 6f6e 2062 6566 6f72 650a 2020 2020 tion before. │ │ │ │ │ +00004c90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00004ca0: 2020 2020 7365 6e64 696e 6720 6120 7768 sending a wh │ │ │ │ │ +00004cb0: 6f6c 6520 6c69 6e65 0a0a 5345 4520 414c ole line..SEE AL │ │ │ │ │ +00004cc0: 534f 0a20 2020 2020 2a6e 6f74 6520 4765 SO. *note Ge │ │ │ │ │ +00004cd0: 7420 2866 756e 6374 696f 6e29 3a3a 2c0a t (function)::,. │ │ │ │ │ +00004ce0: 2020 2020 202a 6e6f 7465 2047 6574 5f43 *note Get_C │ │ │ │ │ +00004cf0: 6861 7220 2866 756e 6374 696f 6e29 3a3a har (function):: │ │ │ │ │ +00004d00: 2c0a 2020 2020 202a 6e6f 7465 2047 6574 ,. *note Get │ │ │ │ │ +00004d10: 5f4c 696e 6520 2866 756e 6374 696f 6e29 _Line (function) │ │ │ │ │ +00004d20: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2052 ::,. *note R │ │ │ │ │ +00004d30: 6563 6569 7665 2028 7072 6f63 6564 7572 eceive (procedur │ │ │ │ │ +00004d40: 6529 3a3a 2c0a 2020 2020 202a 6e6f 7465 e)::,. *note │ │ │ │ │ +00004d50: 2053 6574 5f42 7566 6665 7220 2870 726f Set_Buffer (pro │ │ │ │ │ +00004d60: 6365 6475 7265 293a 3a2e 0a0a 1f0a 4669 cedure)::.....Fi │ │ │ │ │ +00004d70: 6c65 3a20 6164 6173 6f63 6b65 7473 2e69 le: adasockets.i │ │ │ │ │ +00004d80: 6e66 6f2c 2020 4e6f 6465 3a20 4765 745f nfo, Node: Get_ │ │ │ │ │ +00004d90: 5265 6365 6976 655f 5175 6575 655f 5369 Receive_Queue_Si │ │ │ │ │ +00004da0: 7a65 2028 6675 6e63 7469 6f6e 292c 2020 ze (function), │ │ │ │ │ +00004db0: 4e65 7874 3a20 4765 745f 5365 6e64 5f51 Next: Get_Send_Q │ │ │ │ │ +00004dc0: 7565 7565 5f53 697a 6520 2866 756e 6374 ueue_Size (funct │ │ │ │ │ +00004dd0: 696f 6e29 2c20 2050 7265 763a 2047 6574 ion), Prev: Get │ │ │ │ │ +00004de0: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ +00004df0: 292c 2020 5570 3a20 4163 6365 7074 5f53 ), Up: Accept_S │ │ │ │ │ +00004e00: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +00004e10: 290a 0a47 6574 5f52 6563 6569 7665 5f51 )..Get_Receive_Q │ │ │ │ │ +00004e20: 7565 7565 5f53 697a 6520 2866 756e 6374 ueue_Size (funct │ │ │ │ │ +00004e30: 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ion).----------- │ │ │ │ │ +00004e40: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00004e50: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ +00004e60: 2020 2020 2052 6574 7572 6e20 7468 6520 Return the │ │ │ │ │ +00004e70: 7369 7a65 206f 6620 7468 6520 756e 7265 size of the unre │ │ │ │ │ +00004e80: 6164 2064 6174 6120 696e 2074 6865 2069 ad data in the i │ │ │ │ │ +00004e90: 6e70 7574 2071 7565 7565 0a50 524f 544f nput queue.PROTO │ │ │ │ │ +00004ea0: 5459 5045 0a20 2020 2020 202d 2d20 536f TYPE. -- So │ │ │ │ │ +00004eb0: 636b 6574 732e 4765 745f 5265 6365 6976 ckets.Get_Receiv │ │ │ │ │ +00004ec0: 655f 5175 6575 655f 5369 7a65 3a20 6675 e_Queue_Size: fu │ │ │ │ │ +00004ed0: 6e63 7469 6f6e 2047 6574 5f52 6563 6569 nction Get_Recei │ │ │ │ │ +00004ee0: 7665 5f51 7565 7565 5f53 697a 650a 2020 ve_Queue_Size. │ │ │ │ │ +00004ef0: 2020 2020 2020 2020 2020 2020 2028 534f (SO │ │ │ │ │ +00004f00: 434b 4554 203a 2053 6f63 6b65 745f 4644 CKET : Socket_FD │ │ │ │ │ +00004f10: 2743 6c61 7373 290a 2020 2020 2020 2020 'Class). │ │ │ │ │ +00004f20: 2020 2020 2020 2072 6574 7572 6e20 496e return In │ │ │ │ │ +00004f30: 7465 6765 723b 0a0a 5041 5241 4d45 5445 teger;..PARAMETE │ │ │ │ │ +00004f40: 5253 0a20 2020 2020 534f 434b 4554 2020 RS. SOCKET │ │ │ │ │ +00004f50: 2020 2069 6e20 2020 2020 2020 2020 496e in In │ │ │ │ │ +00004f60: 6974 6961 6c69 7a65 6420 616e 6420 636f itialized and co │ │ │ │ │ +00004f70: 6e6e 6563 7465 6420 736f 636b 6574 206f nnected socket o │ │ │ │ │ +00004f80: 626a 6563 740a 0a52 4554 5552 4e20 5641 bject..RETURN VA │ │ │ │ │ +00004f90: 4c55 450a 2020 2020 2054 6865 206e 6f6e LUE. The non │ │ │ │ │ +00004fa0: 2d6e 6567 6174 6976 6520 7369 7a65 2069 -negative size i │ │ │ │ │ +00004fb0: 6e20 6279 7465 7320 6f66 2074 6865 2069 n bytes of the i │ │ │ │ │ +00004fc0: 6e70 7574 2071 7565 7565 0a0a 4445 5343 nput queue..DESC │ │ │ │ │ +00004fd0: 5249 5054 494f 4e0a 2020 2020 2054 6869 RIPTION. Thi │ │ │ │ │ +00004fe0: 7320 6675 6e63 7469 6f6e 2069 7320 6f6e s function is on │ │ │ │ │ +00004ff0: 6c79 2061 7661 696c 6162 6c65 206f 6e20 ly available on │ │ │ │ │ +00005000: 4c69 6e75 7820 706c 6174 666f 726d 732e Linux platforms. │ │ │ │ │ +00005010: 2020 4f6e 206f 7468 6572 0a20 2020 2020 On other. │ │ │ │ │ +00005020: 6f70 6572 6174 696e 6720 7379 7374 656d operating system │ │ │ │ │ +00005030: 732c 2069 7420 7769 6c6c 2072 6574 7572 s, it will retur │ │ │ │ │ +00005040: 6e20 2d32 2074 6f20 696e 6469 6361 7465 n -2 to indicate │ │ │ │ │ +00005050: 2074 6861 7420 7468 6520 6e65 6365 7373 that the necess │ │ │ │ │ +00005060: 6172 790a 2020 2020 206d 6563 6861 6e69 ary. mechani │ │ │ │ │ +00005070: 736d 7320 746f 2072 6574 7269 6576 6520 sms to retrieve │ │ │ │ │ +00005080: 7468 6520 696e 666f 726d 6174 696f 6e20 the information │ │ │ │ │ +00005090: 6172 6520 6e6f 7420 6176 6169 6c61 626c are not availabl │ │ │ │ │ +000050a0: 652e 0a0a 5345 4520 414c 534f 0a20 2020 e...SEE ALSO. │ │ │ │ │ +000050b0: 2020 2a6e 6f74 6520 5265 6365 6976 6520 *note Receive │ │ │ │ │ +000050c0: 2870 726f 6365 6475 7265 293a 3a2e 0a0a (procedure)::... │ │ │ │ │ +000050d0: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ +000050e0: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ +000050f0: 4765 745f 5365 6e64 5f51 7565 7565 5f53 Get_Send_Queue_S │ │ │ │ │ +00005100: 697a 6520 2866 756e 6374 696f 6e29 2c20 ize (function), │ │ │ │ │ +00005110: 204e 6578 743a 2047 6574 736f 636b 6f70 Next: Getsockop │ │ │ │ │ +00005120: 7420 2870 726f 6365 6475 7265 292c 2020 t (procedure), │ │ │ │ │ +00005130: 5072 6576 3a20 4765 745f 5265 6365 6976 Prev: Get_Receiv │ │ │ │ │ +00005140: 655f 5175 6575 655f 5369 7a65 2028 6675 e_Queue_Size (fu │ │ │ │ │ +00005150: 6e63 7469 6f6e 292c 2020 5570 3a20 4163 nction), Up: Ac │ │ │ │ │ +00005160: 6365 7074 5f53 6f63 6b65 7420 2870 726f cept_Socket (pro │ │ │ │ │ +00005170: 6365 6475 7265 290a 0a47 6574 5f53 656e cedure)..Get_Sen │ │ │ │ │ +00005180: 645f 5175 6575 655f 5369 7a65 2028 6675 d_Queue_Size (fu │ │ │ │ │ +00005190: 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d nction).-------- │ │ │ │ │ +000051a0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +000051b0: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ +000051c0: 2020 2020 2052 6574 7572 6e20 7468 6520 Return the │ │ │ │ │ +000051d0: 7369 7a65 206f 6620 7468 6520 756e 7365 size of the unse │ │ │ │ │ +000051e0: 6e74 2064 6174 6120 696e 2074 6865 206f nt data in the o │ │ │ │ │ +000051f0: 7574 7075 7420 7175 6575 650a 5052 4f54 utput queue.PROT │ │ │ │ │ +00005200: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ +00005210: 6f63 6b65 7473 2e47 6574 5f53 656e 645f ockets.Get_Send_ │ │ │ │ │ +00005220: 5175 6575 655f 5369 7a65 3a20 6675 6e63 Queue_Size: func │ │ │ │ │ +00005230: 7469 6f6e 2047 6574 5f53 656e 645f 5175 tion Get_Send_Qu │ │ │ │ │ +00005240: 6575 655f 5369 7a65 0a20 2020 2020 2020 eue_Size. │ │ │ │ │ +00005250: 2020 2020 2020 2020 2853 4f43 4b45 5420 (SOCKET │ │ │ │ │ +00005260: 3a20 536f 636b 6574 5f46 4427 436c 6173 : Socket_FD'Clas │ │ │ │ │ +00005270: 7329 0a20 2020 2020 2020 2020 2020 2020 s). │ │ │ │ │ +00005280: 2020 7265 7475 726e 2049 6e74 6567 6572 return Integer │ │ │ │ │ +00005290: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +000052a0: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ +000052b0: 2020 2020 2020 2020 2049 6e69 7469 616c Initial │ │ │ │ │ +000052c0: 697a 6564 2061 6e64 2063 6f6e 6e65 6374 ized and connect │ │ │ │ │ +000052d0: 6564 2073 6f63 6b65 7420 6f62 6a65 6374 ed socket object │ │ │ │ │ +000052e0: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ +000052f0: 2020 2020 5468 6520 6e6f 6e2d 6e65 6761 The non-nega │ │ │ │ │ +00005300: 7469 7665 2073 697a 6520 696e 2062 7974 tive size in byt │ │ │ │ │ +00005310: 6573 206f 6620 7468 6520 6f75 7470 7574 es of the output │ │ │ │ │ +00005320: 2071 7565 7565 0a0a 4445 5343 5249 5054 queue..DESCRIPT │ │ │ │ │ +00005330: 494f 4e0a 2020 2020 2054 6869 7320 6675 ION. This fu │ │ │ │ │ +00005340: 6e63 7469 6f6e 2069 7320 6f6e 6c79 2061 nction is only a │ │ │ │ │ +00005350: 7661 696c 6162 6c65 206f 6e20 4c69 6e75 vailable on Linu │ │ │ │ │ +00005360: 7820 706c 6174 666f 726d 732e 2020 4f6e x platforms. On │ │ │ │ │ +00005370: 206f 7468 6572 0a20 2020 2020 6f70 6572 other. oper │ │ │ │ │ +00005380: 6174 696e 6720 7379 7374 656d 732c 2069 ating systems, i │ │ │ │ │ +00005390: 7420 7769 6c6c 2072 6574 7572 6e20 2d32 t will return -2 │ │ │ │ │ +000053a0: 2074 6f20 696e 6469 6361 7465 2074 6861 to indicate tha │ │ │ │ │ +000053b0: 7420 7468 6520 6e65 6365 7373 6172 790a t the necessary. │ │ │ │ │ +000053c0: 2020 2020 206d 6563 6861 6e69 736d 7320 mechanisms │ │ │ │ │ +000053d0: 746f 2072 6574 7269 6576 6520 7468 6520 to retrieve the │ │ │ │ │ +000053e0: 696e 666f 726d 6174 696f 6e20 6172 6520 information are │ │ │ │ │ +000053f0: 6e6f 7420 6176 6169 6c61 626c 652e 0a0a not available... │ │ │ │ │ +00005400: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ +00005410: 6f74 6520 5365 6e64 2028 7072 6f63 6564 ote Send (proced │ │ │ │ │ +00005420: 7572 6529 3a3a 2e0a 0a1f 0a46 696c 653a ure)::.....File: │ │ │ │ │ +00005430: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ +00005440: 2c20 204e 6f64 653a 2047 6574 736f 636b , Node: Getsock │ │ │ │ │ +00005450: 6f70 7420 2870 726f 6365 6475 7265 292c opt (procedure), │ │ │ │ │ +00005460: 2020 4e65 7874 3a20 4c69 7374 656e 2028 Next: Listen ( │ │ │ │ │ +00005470: 7072 6f63 6564 7572 6529 2c20 2050 7265 procedure), Pre │ │ │ │ │ +00005480: 763a 2047 6574 5f53 656e 645f 5175 6575 v: Get_Send_Queu │ │ │ │ │ +00005490: 655f 5369 7a65 2028 6675 6e63 7469 6f6e e_Size (function │ │ │ │ │ +000054a0: 292c 2020 5570 3a20 4163 6365 7074 5f53 ), Up: Accept_S │ │ │ │ │ +000054b0: 6f63 6b65 7420 2870 726f 6365 6475 7265 ocket (procedure │ │ │ │ │ +000054c0: 290a 0a47 6574 736f 636b 6f70 7420 2870 )..Getsockopt (p │ │ │ │ │ +000054d0: 726f 6365 6475 7265 290a 2d2d 2d2d 2d2d rocedure).------ │ │ │ │ │ +000054e0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +000054f0: 0a0a 5055 5250 4f53 450a 2020 2020 2052 ..PURPOSE. R │ │ │ │ │ +00005500: 6574 7269 6576 6520 6120 736f 636b 6574 etrieve a socket │ │ │ │ │ +00005510: 206f 7074 696f 6e0a 5052 4f54 4f54 5950 option.PROTOTYP │ │ │ │ │ +00005520: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ +00005530: 7473 2e47 6574 736f 636b 6f70 743a 2070 ts.Getsockopt: p │ │ │ │ │ +00005540: 726f 6365 6475 7265 2047 6574 736f 636b rocedure Getsock │ │ │ │ │ +00005550: 6f70 7420 2853 4f43 4b45 5420 3a20 536f opt (SOCKET : So │ │ │ │ │ +00005560: 636b 6574 5f46 443b 0a20 2020 2020 2020 cket_FD;. │ │ │ │ │ +00005570: 2020 2020 2020 2020 4c45 5645 4c20 3a20 LEVEL : │ │ │ │ │ +00005580: 536f 636b 6574 5f4c 6576 656c 203a 3d20 Socket_Level := │ │ │ │ │ +00005590: 534f 4c5f 534f 434b 4554 3b0a 2020 2020 SOL_SOCKET;. │ │ │ │ │ +000055a0: 2020 2020 2020 2020 2020 204f 5054 4e41 OPTNA │ │ │ │ │ +000055b0: 4d45 203a 2053 6f63 6b65 745f 4f70 7469 ME : Socket_Opti │ │ │ │ │ +000055c0: 6f6e 3b20 4f50 5456 414c 203a 206f 7574 on; OPTVAL : out │ │ │ │ │ +000055d0: 2049 6e74 6567 6572 293b 0a0a 5041 5241 Integer);..PARA │ │ │ │ │ +000055e0: 4d45 5445 5253 0a20 2020 2020 534f 434b METERS. SOCK │ │ │ │ │ +000055f0: 4554 2020 2020 2069 6e20 2020 2020 2020 ET in │ │ │ │ │ +00005600: 2020 496e 6974 6961 6c69 7a65 6420 616e Initialized an │ │ │ │ │ +00005610: 6420 626f 756e 6420 736f 636b 6574 206f d bound socket o │ │ │ │ │ +00005620: 626a 6563 740a 2020 2020 204c 4556 454c bject. LEVEL │ │ │ │ │ +00005630: 2020 2020 2020 696e 2020 2020 2020 2020 in │ │ │ │ │ +00005640: 2050 726f 746f 636f 6c20 6c65 7665 6c0a Protocol level. │ │ │ │ │ +00005650: 2020 2020 204f 5054 4e41 4d45 2020 2020 OPTNAME │ │ │ │ │ +00005660: 696e 2020 2020 2020 2020 204f 7074 696f in Optio │ │ │ │ │ +00005670: 6e20 6e61 6d65 0a20 2020 2020 4f50 5456 n name. OPTV │ │ │ │ │ +00005680: 414c 2020 2020 206f 7574 2020 2020 2020 AL out │ │ │ │ │ +00005690: 2020 4f70 7469 6f6e 2076 616c 7565 0a0a Option value.. │ │ │ │ │ +000056a0: 4445 5343 5249 5054 494f 4e0a 2020 2020 DESCRIPTION. │ │ │ │ │ +000056b0: 2054 6869 7320 7072 6f63 6564 7572 6520 This procedure │ │ │ │ │ +000056c0: 7265 7472 6965 7665 7320 6f70 7469 6f6e retrieves option │ │ │ │ │ +000056d0: 7320 6170 706c 6963 6162 6c65 2074 6f20 s applicable to │ │ │ │ │ +000056e0: 6120 736f 636b 6574 2e20 2050 6c65 6173 a socket. Pleas │ │ │ │ │ +000056f0: 650a 2020 2020 2073 6565 2079 6f75 7220 e. see your │ │ │ │ │ +00005700: 6f70 6572 6174 696e 6720 7379 7374 656d operating system │ │ │ │ │ +00005710: 206d 616e 7561 6c20 666f 7220 7573 6162 manual for usab │ │ │ │ │ +00005720: 6c65 206c 6576 656c 7320 616e 6420 6f70 le levels and op │ │ │ │ │ +00005730: 7469 6f6e 732e 0a0a 2020 2020 2054 776f tions... Two │ │ │ │ │ +00005740: 206c 6576 656c 7320 6172 6520 6465 6669 levels are defi │ │ │ │ │ +00005750: 6e65 643a 2027 534f 4c5f 534f 434b 4554 ned: 'SOL_SOCKET │ │ │ │ │ +00005760: 2720 2874 6865 2064 6566 6175 6c74 2920 ' (the default) │ │ │ │ │ +00005770: 616e 640a 2020 2020 2027 4950 5052 4f54 and. 'IPPROT │ │ │ │ │ +00005780: 4f5f 4950 272e 2020 5468 6520 6f70 7469 O_IP'. The opti │ │ │ │ │ +00005790: 6f6e 7320 6172 6520 2753 4f5f 5245 5553 ons are 'SO_REUS │ │ │ │ │ +000057a0: 4541 4444 5227 2c20 2753 4f5f 5245 5553 EADDR', 'SO_REUS │ │ │ │ │ +000057b0: 4550 4f52 5427 2c0a 2020 2020 2027 4950 EPORT',. 'IP │ │ │ │ │ +000057c0: 5f4d 554c 5449 4341 5354 5f54 544c 272c _MULTICAST_TTL', │ │ │ │ │ +000057d0: 2027 4950 5f41 4444 5f4d 454d 4245 5253 'IP_ADD_MEMBERS │ │ │ │ │ +000057e0: 4849 5027 2c20 2749 505f 4452 4f50 5f4d HIP', 'IP_DROP_M │ │ │ │ │ +000057f0: 454d 4245 5253 4849 5027 2c0a 2020 2020 EMBERSHIP',. │ │ │ │ │ +00005800: 2027 4950 5f4d 554c 5449 4341 5354 5f4c 'IP_MULTICAST_L │ │ │ │ │ +00005810: 4f4f 5027 2c20 2753 4f5f 534e 4442 5546 OOP', 'SO_SNDBUF │ │ │ │ │ +00005820: 2720 616e 6420 2749 505f 5243 5642 5546 ' and 'IP_RCVBUF │ │ │ │ │ +00005830: 272e 0a0a 2020 2020 204e 6f74 6520 7468 '... Note th │ │ │ │ │ +00005840: 6174 2075 6e6c 696b 6520 7468 6569 7220 at unlike their │ │ │ │ │ +00005850: 4320 6c61 6e67 7561 6765 2063 6f75 6e74 C language count │ │ │ │ │ +00005860: 6572 7061 7274 2c20 2747 6574 736f 636b erpart, 'Getsock │ │ │ │ │ +00005870: 6f70 7427 2061 6e64 0a20 2020 2020 2753 opt' and. 'S │ │ │ │ │ +00005880: 6574 736f 636b 6f70 7427 2064 6f20 6e6f etsockopt' do no │ │ │ │ │ +00005890: 7420 7265 7175 6972 6520 616e 2065 7874 t require an ext │ │ │ │ │ +000058a0: 7261 2070 6172 616d 6574 6572 2072 6570 ra parameter rep │ │ │ │ │ +000058b0: 7265 7365 6e74 696e 6720 7468 650a 2020 resenting the. │ │ │ │ │ +000058c0: 2020 206c 656e 6774 6820 696e 2062 7974 length in byt │ │ │ │ │ +000058d0: 6573 206f 6620 7468 6520 6f70 7469 6f6e es of the option │ │ │ │ │ +000058e0: 2076 616c 7565 2e20 2041 6461 536f 636b value. AdaSock │ │ │ │ │ +000058f0: 6574 7320 6e6f 7773 2074 6865 2072 6967 ets nows the rig │ │ │ │ │ +00005900: 6874 0a20 2020 2020 7369 7a65 2066 6f72 ht. size for │ │ │ │ │ +00005910: 2065 7665 7279 206f 7074 696f 6e2e 0a0a every option... │ │ │ │ │ +00005920: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ +00005930: 6f74 6520 5365 7473 6f63 6b6f 7074 2028 ote Setsockopt ( │ │ │ │ │ +00005940: 7072 6f63 6564 7572 6529 3a3a 2e0a 0a1f procedure)::.... │ │ │ │ │ +00005950: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ +00005960: 732e 696e 666f 2c20 204e 6f64 653a 204c s.info, Node: L │ │ │ │ │ +00005970: 6973 7465 6e20 2870 726f 6365 6475 7265 isten (procedure │ │ │ │ │ +00005980: 292c 2020 4e65 7874 3a20 4e65 775f 4c69 ), Next: New_Li │ │ │ │ │ +00005990: 6e65 2028 7072 6f63 6564 7572 6529 2c20 ne (procedure), │ │ │ │ │ +000059a0: 2050 7265 763a 2047 6574 736f 636b 6f70 Prev: Getsockop │ │ │ │ │ +000059b0: 7420 2870 726f 6365 6475 7265 292c 2020 t (procedure), │ │ │ │ │ +000059c0: 5570 3a20 4163 6365 7074 5f53 6f63 6b65 Up: Accept_Socke │ │ │ │ │ +000059d0: 7420 2870 726f 6365 6475 7265 290a 0a4c t (procedure)..L │ │ │ │ │ +000059e0: 6973 7465 6e20 2870 726f 6365 6475 7265 isten (procedure │ │ │ │ │ +000059f0: 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ).-------------- │ │ │ │ │ +00005a00: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ +00005a10: 2020 2045 7374 6162 6c69 7368 2061 206c Establish a l │ │ │ │ │ +00005a20: 6973 7465 6e20 7175 6575 650a 5052 4f54 isten queue.PROT │ │ │ │ │ +00005a30: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ +00005a40: 6f63 6b65 7473 2e4c 6973 7465 6e3a 2070 ockets.Listen: p │ │ │ │ │ +00005a50: 726f 6365 6475 7265 204c 6973 7465 6e20 rocedure Listen │ │ │ │ │ +00005a60: 2853 4f43 4b45 5420 3a20 536f 636b 6574 (SOCKET : Socket │ │ │ │ │ +00005a70: 5f46 443b 0a20 2020 2020 2020 2020 2020 _FD;. │ │ │ │ │ +00005a80: 2020 2020 5155 4555 455f 5349 5a45 203a QUEUE_SIZE : │ │ │ │ │ +00005a90: 2050 6f73 6974 6976 6520 3a3d 2035 293b Positive := 5); │ │ │ │ │ +00005aa0: 0a0a 5041 5241 4d45 5445 5253 0a20 2020 ..PARAMETERS. │ │ │ │ │ +00005ab0: 2020 534f 434b 4554 2020 2020 2069 6e20 SOCKET in │ │ │ │ │ +00005ac0: 2020 2020 2020 2020 496e 6974 6961 6c69 Initiali │ │ │ │ │ +00005ad0: 7a65 6420 616e 6420 626f 756e 6420 736f zed and bound so │ │ │ │ │ +00005ae0: 636b 6574 206f 626a 6563 740a 2020 2020 cket object. │ │ │ │ │ +00005af0: 2051 5545 5545 5f53 495a 4520 696e 2020 QUEUE_SIZE in │ │ │ │ │ +00005b00: 2020 2020 2020 2052 6571 7565 7374 6564 Requested │ │ │ │ │ +00005b10: 2073 6c6f 7473 2069 6e20 7468 6520 6c69 slots in the li │ │ │ │ │ +00005b20: 7374 656e 2071 7565 7565 0a0a 4445 5343 sten queue..DESC │ │ │ │ │ +00005b30: 5249 5054 494f 4e0a 2020 2020 2054 6869 RIPTION. Thi │ │ │ │ │ +00005b40: 7320 7072 6f63 6564 7572 6520 6573 7461 s procedure esta │ │ │ │ │ +00005b50: 626c 6973 6865 7320 6120 6c69 7374 656e blishes a listen │ │ │ │ │ +00005b60: 2071 7565 7565 2061 6674 6572 2061 2054 queue after a T │ │ │ │ │ +00005b70: 4350 2073 6f63 6b65 7420 6173 0a20 2020 CP socket as. │ │ │ │ │ +00005b80: 2020 6265 656e 2069 6e69 7469 616c 697a been initializ │ │ │ │ │ +00005b90: 6564 2061 6e64 2062 6f75 6e64 2e20 2045 ed and bound. E │ │ │ │ │ +00005ba0: 6163 6820 736c 6f74 2069 6e20 7468 6520 ach slot in the │ │ │ │ │ +00005bb0: 7175 6575 6520 6361 6e20 686f 6c64 206f queue can hold o │ │ │ │ │ +00005bc0: 6e65 0a20 2020 2020 696e 636f 6d69 6e67 ne. incoming │ │ │ │ │ +00005bd0: 2063 6f6e 6e65 6374 696f 6e20 7468 6174 connection that │ │ │ │ │ +00005be0: 2068 6173 206e 6f74 2062 6565 6e20 6163 has not been ac │ │ │ │ │ +00005bf0: 6365 7074 6564 2079 6574 2e20 204e 6f74 cepted yet. Not │ │ │ │ │ +00005c00: 6520 7468 6174 206d 6f73 740a 2020 2020 e that most. │ │ │ │ │ +00005c10: 206f 7065 7261 7469 6e67 2073 7973 7465 operating syste │ │ │ │ │ +00005c20: 6d73 2069 676e 6f72 6520 7175 6575 6520 ms ignore queue │ │ │ │ │ +00005c30: 7369 7a65 7320 6c61 7267 6572 2074 6861 sizes larger tha │ │ │ │ │ +00005c40: 6e20 6669 7665 2e0a 0a53 4545 2041 4c53 n five...SEE ALS │ │ │ │ │ +00005c50: 4f0a 2020 2020 202a 6e6f 7465 2041 6363 O. *note Acc │ │ │ │ │ +00005c60: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +00005c70: 6564 7572 6529 3a3a 2c0a 2020 2020 202a edure)::,. * │ │ │ │ │ +00005c80: 6e6f 7465 2042 696e 6420 2870 726f 6365 note Bind (proce │ │ │ │ │ +00005c90: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ +00005ca0: 6f74 6520 536f 636b 6574 2028 7072 6f63 ote Socket (proc │ │ │ │ │ +00005cb0: 6564 7572 6529 3a3a 2e0a 0a1f 0a46 696c edure)::.....Fil │ │ │ │ │ +00005cc0: 653a 2061 6461 736f 636b 6574 732e 696e e: adasockets.in │ │ │ │ │ +00005cd0: 666f 2c20 204e 6f64 653a 204e 6577 5f4c fo, Node: New_L │ │ │ │ │ +00005ce0: 696e 6520 2870 726f 6365 6475 7265 292c ine (procedure), │ │ │ │ │ +00005cf0: 2020 4e65 7874 3a20 5075 7420 2870 726f Next: Put (pro │ │ │ │ │ +00005d00: 6365 6475 7265 292c 2020 5072 6576 3a20 cedure), Prev: │ │ │ │ │ +00005d10: 4c69 7374 656e 2028 7072 6f63 6564 7572 Listen (procedur │ │ │ │ │ +00005d20: 6529 2c20 2055 703a 2041 6363 6570 745f e), Up: Accept_ │ │ │ │ │ +00005d30: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +00005d40: 6529 0a0a 4e65 775f 4c69 6e65 2028 7072 e)..New_Line (pr │ │ │ │ │ +00005d50: 6f63 6564 7572 6529 0a2d 2d2d 2d2d 2d2d ocedure).------- │ │ │ │ │ +00005d60: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ +00005d70: 5552 504f 5345 0a20 2020 2020 5365 6e64 URPOSE. Send │ │ │ │ │ +00005d80: 2061 2043 522f 4c46 2074 6f20 6120 7265 a CR/LF to a re │ │ │ │ │ +00005d90: 6d6f 7465 2068 6f73 740a 5052 4f54 4f54 mote host.PROTOT │ │ │ │ │ +00005da0: 5950 450a 2020 2020 2020 2d2d 2053 6f63 YPE. -- Soc │ │ │ │ │ +00005db0: 6b65 7473 2e4e 6577 5f4c 696e 653a 2070 kets.New_Line: p │ │ │ │ │ +00005dc0: 726f 6365 6475 7265 204e 6577 5f4c 696e rocedure New_Lin │ │ │ │ │ +00005dd0: 6520 2853 4f43 4b45 5420 3a20 536f 636b e (SOCKET : Sock │ │ │ │ │ +00005de0: 6574 5f46 4427 436c 6173 733b 0a20 2020 et_FD'Class;. │ │ │ │ │ +00005df0: 2020 2020 2020 2020 2020 2020 434f 554e COUN │ │ │ │ │ +00005e00: 5420 3a20 4e61 7475 7261 6c20 3a3d 2031 T : Natural := 1 │ │ │ │ │ +00005e10: 293b 0a0a 5041 5241 4d45 5445 5253 0a20 );..PARAMETERS. │ │ │ │ │ +00005e20: 2020 2020 534f 434b 4554 2020 2020 2069 SOCKET i │ │ │ │ │ +00005e30: 6e20 2020 2020 2020 2020 496e 6974 6961 n Initia │ │ │ │ │ +00005e40: 6c69 7a65 6420 616e 6420 636f 6e6e 6563 lized and connec │ │ │ │ │ +00005e50: 7465 6420 736f 636b 6574 206f 626a 6563 ted socket objec │ │ │ │ │ +00005e60: 740a 2020 2020 2043 4f55 4e54 2020 2020 t. COUNT │ │ │ │ │ +00005e70: 2020 696e 2020 2020 2020 2020 204e 756d in Num │ │ │ │ │ +00005e80: 6265 7220 6f66 2043 522f 4c46 2073 6571 ber of CR/LF seq │ │ │ │ │ +00005e90: 7565 6e63 6573 2074 6f20 7365 6e64 0a0a uences to send.. │ │ │ │ │ +00005ea0: 4445 5343 5249 5054 494f 4e0a 2020 2020 DESCRIPTION. │ │ │ │ │ +00005eb0: 2054 6869 7320 7072 6f63 6564 7572 6520 This procedure │ │ │ │ │ +00005ec0: 7365 6e64 7320 6f6e 6520 6f72 206d 6f72 sends one or mor │ │ │ │ │ +00005ed0: 6520 4352 2f4c 4620 636f 6d62 696e 6174 e CR/LF combinat │ │ │ │ │ +00005ee0: 696f 6e73 2074 6f20 7468 6520 7065 6572 ions to the peer │ │ │ │ │ +00005ef0: 2e0a 0a45 5843 4550 5449 4f4e 530a 2020 ...EXCEPTIONS. │ │ │ │ │ +00005f00: 2020 2027 436f 6e6e 6563 7469 6f6e 5f43 'Connection_C │ │ │ │ │ +00005f10: 6c6f 7365 6427 5065 6572 2068 6173 2070 losed'Peer has p │ │ │ │ │ +00005f20: 7265 6d61 7475 7265 6c79 2063 6c6f 7365 rematurely close │ │ │ │ │ +00005f30: 6420 7468 6520 636f 6e6e 6563 7469 6f6e d the connection │ │ │ │ │ +00005f40: 0a0a 5345 4520 414c 534f 0a20 2020 2020 ..SEE ALSO. │ │ │ │ │ +00005f50: 2a6e 6f74 6520 5075 7420 2870 726f 6365 *note Put (proce │ │ │ │ │ 00005f60: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ -00005f70: 6f74 6520 536f 636b 6574 2028 7072 6f63 ote Socket (proc │ │ │ │ │ -00005f80: 6564 7572 6529 3a3a 2e0a 0a1f 0a46 696c edure)::.....Fil │ │ │ │ │ -00005f90: 653a 2061 6461 736f 636b 6574 732e 696e e: adasockets.in │ │ │ │ │ -00005fa0: 666f 2c20 204e 6f64 653a 204e 6577 5f4c fo, Node: New_L │ │ │ │ │ -00005fb0: 696e 6520 2870 726f 6365 6475 7265 292c ine (procedure), │ │ │ │ │ -00005fc0: 2020 4e65 7874 3a20 5075 7420 2870 726f Next: Put (pro │ │ │ │ │ -00005fd0: 6365 6475 7265 292c 2020 5072 6576 3a20 cedure), Prev: │ │ │ │ │ -00005fe0: 4c69 7374 656e 2028 7072 6f63 6564 7572 Listen (procedur │ │ │ │ │ -00005ff0: 6529 2c20 2055 703a 2041 6363 6570 745f e), Up: Accept_ │ │ │ │ │ -00006000: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ -00006010: 6529 0a0a 4e65 775f 4c69 6e65 2028 7072 e)..New_Line (pr │ │ │ │ │ -00006020: 6f63 6564 7572 6529 0a2d 2d2d 2d2d 2d2d ocedure).------- │ │ │ │ │ -00006030: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ -00006040: 5552 504f 5345 0a20 2020 2020 5365 6e64 URPOSE. Send │ │ │ │ │ -00006050: 2061 2043 522f 4c46 2074 6f20 6120 7265 a CR/LF to a re │ │ │ │ │ -00006060: 6d6f 7465 2068 6f73 740a 5052 4f54 4f54 mote host.PROTOT │ │ │ │ │ -00006070: 5950 450a 2020 2020 2020 2d2d 2053 6f63 YPE. -- Soc │ │ │ │ │ -00006080: 6b65 7473 2e4e 6577 5f4c 696e 653a 2070 kets.New_Line: p │ │ │ │ │ -00006090: 726f 6365 6475 7265 204e 6577 5f4c 696e rocedure New_Lin │ │ │ │ │ -000060a0: 6520 2853 4f43 4b45 5420 3a20 536f 636b e (SOCKET : Sock │ │ │ │ │ -000060b0: 6574 5f46 4427 436c 6173 733b 0a20 2020 et_FD'Class;. │ │ │ │ │ -000060c0: 2020 2020 2020 2020 2020 2020 434f 554e COUN │ │ │ │ │ -000060d0: 5420 3a20 4e61 7475 7261 6c20 3a3d 2031 T : Natural := 1 │ │ │ │ │ -000060e0: 293b 0a0a 5041 5241 4d45 5445 5253 0a20 );..PARAMETERS. │ │ │ │ │ -000060f0: 2020 2020 534f 434b 4554 2020 2020 2069 SOCKET i │ │ │ │ │ -00006100: 6e20 2020 2020 2020 2020 496e 6974 6961 n Initia │ │ │ │ │ -00006110: 6c69 7a65 6420 616e 6420 636f 6e6e 6563 lized and connec │ │ │ │ │ -00006120: 7465 6420 736f 636b 6574 206f 626a 6563 ted socket objec │ │ │ │ │ -00006130: 740a 2020 2020 2043 4f55 4e54 2020 2020 t. COUNT │ │ │ │ │ -00006140: 2020 696e 2020 2020 2020 2020 204e 756d in Num │ │ │ │ │ -00006150: 6265 7220 6f66 2043 522f 4c46 2073 6571 ber of CR/LF seq │ │ │ │ │ -00006160: 7565 6e63 6573 2074 6f20 7365 6e64 0a0a uences to send.. │ │ │ │ │ -00006170: 4445 5343 5249 5054 494f 4e0a 2020 2020 DESCRIPTION. │ │ │ │ │ -00006180: 2054 6869 7320 7072 6f63 6564 7572 6520 This procedure │ │ │ │ │ -00006190: 7365 6e64 7320 6f6e 6520 6f72 206d 6f72 sends one or mor │ │ │ │ │ -000061a0: 6520 4352 2f4c 4620 636f 6d62 696e 6174 e CR/LF combinat │ │ │ │ │ -000061b0: 696f 6e73 2074 6f20 7468 6520 7065 6572 ions to the peer │ │ │ │ │ -000061c0: 2e0a 0a45 5843 4550 5449 4f4e 530a 2020 ...EXCEPTIONS. │ │ │ │ │ -000061d0: 2020 2027 436f 6e6e 6563 7469 6f6e 5f43 'Connection_C │ │ │ │ │ -000061e0: 6c6f 7365 6427 5065 6572 2068 6173 2070 losed'Peer has p │ │ │ │ │ -000061f0: 7265 6d61 7475 7265 6c79 2063 6c6f 7365 rematurely close │ │ │ │ │ -00006200: 6420 7468 6520 636f 6e6e 6563 7469 6f6e d the connection │ │ │ │ │ -00006210: 0a0a 5345 4520 414c 534f 0a20 2020 2020 ..SEE ALSO. │ │ │ │ │ -00006220: 2a6e 6f74 6520 5075 7420 2870 726f 6365 *note Put (proce │ │ │ │ │ -00006230: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ -00006240: 6f74 6520 5075 745f 4c69 6e65 2028 7072 ote Put_Line (pr │ │ │ │ │ -00006250: 6f63 6564 7572 6529 3a3a 2e0a 0a1f 0a46 ocedure)::.....F │ │ │ │ │ -00006260: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ -00006270: 696e 666f 2c20 204e 6f64 653a 2050 7574 info, Node: Put │ │ │ │ │ -00006280: 2028 7072 6f63 6564 7572 6529 2c20 204e (procedure), N │ │ │ │ │ -00006290: 6578 743a 2050 7574 5f4c 696e 6520 2870 ext: Put_Line (p │ │ │ │ │ -000062a0: 726f 6365 6475 7265 292c 2020 5072 6576 rocedure), Prev │ │ │ │ │ -000062b0: 3a20 4e65 775f 4c69 6e65 2028 7072 6f63 : New_Line (proc │ │ │ │ │ -000062c0: 6564 7572 6529 2c20 2055 703a 2041 6363 edure), Up: Acc │ │ │ │ │ -000062d0: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ -000062e0: 6564 7572 6529 0a0a 5075 7420 2870 726f edure)..Put (pro │ │ │ │ │ -000062f0: 6365 6475 7265 290a 2d2d 2d2d 2d2d 2d2d cedure).-------- │ │ │ │ │ -00006300: 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f 5345 -------..PURPOSE │ │ │ │ │ -00006310: 0a20 2020 2020 5365 6e64 2061 2073 7472 . Send a str │ │ │ │ │ -00006320: 696e 6720 746f 2061 2072 656d 6f74 6520 ing to a remote │ │ │ │ │ -00006330: 686f 7374 0a50 524f 544f 5459 5045 0a20 host.PROTOTYPE. │ │ │ │ │ -00006340: 2020 2020 202d 2d20 536f 636b 6574 732e -- Sockets. │ │ │ │ │ -00006350: 5075 743a 2070 726f 6365 6475 7265 2050 Put: procedure P │ │ │ │ │ -00006360: 7574 2028 534f 434b 4554 203a 2053 6f63 ut (SOCKET : Soc │ │ │ │ │ -00006370: 6b65 745f 4644 2743 6c61 7373 3b0a 2020 ket_FD'Class;. │ │ │ │ │ -00006380: 2020 2020 2020 2020 2020 2020 2053 5452 STR │ │ │ │ │ -00006390: 203a 2053 7472 696e 6729 3b0a 0a50 4152 : String);..PAR │ │ │ │ │ -000063a0: 414d 4554 4552 530a 2020 2020 2053 4f43 AMETERS. SOC │ │ │ │ │ -000063b0: 4b45 5420 2020 2020 696e 2020 2020 2020 KET in │ │ │ │ │ -000063c0: 2020 2049 6e69 7469 616c 697a 6564 2061 Initialized a │ │ │ │ │ -000063d0: 6e64 2063 6f6e 6e65 6374 6564 2073 6f63 nd connected soc │ │ │ │ │ -000063e0: 6b65 7420 6f62 6a65 6374 0a20 2020 2020 ket object. │ │ │ │ │ -000063f0: 5354 5220 2020 2020 2020 2069 6e20 2020 STR in │ │ │ │ │ -00006400: 2020 2020 2020 5374 7269 6e67 2074 6f20 String to │ │ │ │ │ -00006410: 7365 6e64 0a0a 4445 5343 5249 5054 494f send..DESCRIPTIO │ │ │ │ │ -00006420: 4e0a 2020 2020 2054 6869 7320 7072 6f63 N. This proc │ │ │ │ │ -00006430: 6564 7572 6520 7365 6e64 7320 7468 6520 edure sends the │ │ │ │ │ -00006440: 636f 6e74 656e 7420 6f66 2053 5452 206f content of STR o │ │ │ │ │ -00006450: 7665 7220 616e 206f 7574 676f 696e 6720 ver an outgoing │ │ │ │ │ -00006460: 6f72 0a20 2020 2020 696e 636f 6d69 6e67 or. incoming │ │ │ │ │ -00006470: 2073 6f63 6b65 742e 0a0a 4558 4345 5054 socket...EXCEPT │ │ │ │ │ -00006480: 494f 4e53 0a20 2020 2020 2743 6f6e 6e65 IONS. 'Conne │ │ │ │ │ -00006490: 6374 696f 6e5f 436c 6f73 6564 2750 6565 ction_Closed'Pee │ │ │ │ │ -000064a0: 7220 6861 7320 7072 656d 6174 7572 656c r has prematurel │ │ │ │ │ -000064b0: 7920 636c 6f73 6564 2074 6865 2063 6f6e y closed the con │ │ │ │ │ -000064c0: 6e65 6374 696f 6e0a 0a53 4545 2041 4c53 nection..SEE ALS │ │ │ │ │ -000064d0: 4f0a 2020 2020 202a 6e6f 7465 204e 6577 O. *note New │ │ │ │ │ -000064e0: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ -000064f0: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ -00006500: 5075 745f 4c69 6e65 2028 7072 6f63 6564 Put_Line (proced │ │ │ │ │ -00006510: 7572 6529 3a3a 2c0a 2020 2020 202a 6e6f ure)::,. *no │ │ │ │ │ -00006520: 7465 2053 656e 6420 2870 726f 6365 6475 te Send (procedu │ │ │ │ │ -00006530: 7265 293a 3a2e 0a0a 1f0a 4669 6c65 3a20 re)::.....File: │ │ │ │ │ -00006540: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ -00006550: 2020 4e6f 6465 3a20 5075 745f 4c69 6e65 Node: Put_Line │ │ │ │ │ -00006560: 2028 7072 6f63 6564 7572 6529 2c20 204e (procedure), N │ │ │ │ │ -00006570: 6578 743a 2052 6563 6569 7665 2028 6675 ext: Receive (fu │ │ │ │ │ -00006580: 6e63 7469 6f6e 292c 2020 5072 6576 3a20 nction), Prev: │ │ │ │ │ -00006590: 5075 7420 2870 726f 6365 6475 7265 292c Put (procedure), │ │ │ │ │ -000065a0: 2020 5570 3a20 4163 6365 7074 5f53 6f63 Up: Accept_Soc │ │ │ │ │ -000065b0: 6b65 7420 2870 726f 6365 6475 7265 290a ket (procedure). │ │ │ │ │ -000065c0: 0a50 7574 5f4c 696e 6520 2870 726f 6365 .Put_Line (proce │ │ │ │ │ -000065d0: 6475 7265 290a 2d2d 2d2d 2d2d 2d2d 2d2d dure).---------- │ │ │ │ │ -000065e0: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ -000065f0: 4f53 450a 2020 2020 2053 656e 6420 6120 OSE. Send a │ │ │ │ │ -00006600: 4352 2f4c 4620 7465 726d 696e 6174 6564 CR/LF terminated │ │ │ │ │ -00006610: 2073 7472 696e 6720 746f 2061 2072 656d string to a rem │ │ │ │ │ -00006620: 6f74 6520 686f 7374 0a50 524f 544f 5459 ote host.PROTOTY │ │ │ │ │ -00006630: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ -00006640: 6574 732e 5075 745f 4c69 6e65 3a20 7072 ets.Put_Line: pr │ │ │ │ │ -00006650: 6f63 6564 7572 6520 5075 745f 4c69 6e65 ocedure Put_Line │ │ │ │ │ -00006660: 2028 534f 434b 4554 203a 2053 6f63 6b65 (SOCKET : Socke │ │ │ │ │ -00006670: 745f 4644 2743 6c61 7373 3b0a 2020 2020 t_FD'Class;. │ │ │ │ │ -00006680: 2020 2020 2020 2020 2020 2053 5452 203a STR : │ │ │ │ │ -00006690: 2053 7472 696e 6729 3b0a 0a50 4152 414d String);..PARAM │ │ │ │ │ -000066a0: 4554 4552 530a 2020 2020 2053 4f43 4b45 ETERS. SOCKE │ │ │ │ │ -000066b0: 5420 2020 2020 696e 2020 2020 2020 2020 T in │ │ │ │ │ -000066c0: 2049 6e69 7469 616c 697a 6564 2061 6e64 Initialized and │ │ │ │ │ -000066d0: 2063 6f6e 6e65 6374 6564 2073 6f63 6b65 connected socke │ │ │ │ │ -000066e0: 7420 6f62 6a65 6374 0a20 2020 2020 5354 t object. ST │ │ │ │ │ -000066f0: 5220 2020 2020 2020 2069 6e20 2020 2020 R in │ │ │ │ │ -00006700: 2020 2020 5374 7269 6e67 2074 6f20 7365 String to se │ │ │ │ │ -00006710: 6e64 0a0a 4445 5343 5249 5054 494f 4e0a nd..DESCRIPTION. │ │ │ │ │ -00006720: 2020 2020 2054 6869 7320 7072 6f63 6564 This proced │ │ │ │ │ -00006730: 7572 6520 7365 6e64 7320 7468 6520 636f ure sends the co │ │ │ │ │ -00006740: 6e74 656e 7420 6f66 2053 5452 2070 6c75 ntent of STR plu │ │ │ │ │ -00006750: 7320 6120 4352 2f4c 4620 636f 6d62 696e s a CR/LF combin │ │ │ │ │ -00006760: 6174 696f 6e0a 2020 2020 206f 7665 7220 ation. over │ │ │ │ │ -00006770: 616e 206f 7574 676f 696e 6720 6f72 2069 an outgoing or i │ │ │ │ │ -00006780: 6e63 6f6d 696e 6720 736f 636b 6574 2e0a ncoming socket.. │ │ │ │ │ -00006790: 0a45 5843 4550 5449 4f4e 530a 2020 2020 .EXCEPTIONS. │ │ │ │ │ -000067a0: 2027 436f 6e6e 6563 7469 6f6e 5f43 6c6f 'Connection_Clo │ │ │ │ │ -000067b0: 7365 6427 5065 6572 2068 6173 2070 7265 sed'Peer has pre │ │ │ │ │ -000067c0: 6d61 7475 7265 6c79 2063 6c6f 7365 6420 maturely closed │ │ │ │ │ -000067d0: 7468 6520 636f 6e6e 6563 7469 6f6e 0a0a the connection.. │ │ │ │ │ -000067e0: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ -000067f0: 6f74 6520 4e65 775f 4c69 6e65 2028 7072 ote New_Line (pr │ │ │ │ │ -00006800: 6f63 6564 7572 6529 3a3a 2c0a 2020 2020 ocedure)::,. │ │ │ │ │ -00006810: 202a 6e6f 7465 2050 7574 2028 7072 6f63 *note Put (proc │ │ │ │ │ -00006820: 6564 7572 6529 3a3a 2c0a 2020 2020 202a edure)::,. * │ │ │ │ │ -00006830: 6e6f 7465 2053 656e 6420 2870 726f 6365 note Send (proce │ │ │ │ │ -00006840: 6475 7265 293a 3a2e 0a0a 1f0a 4669 6c65 dure)::.....File │ │ │ │ │ -00006850: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ -00006860: 6f2c 2020 4e6f 6465 3a20 5265 6365 6976 o, Node: Receiv │ │ │ │ │ -00006870: 6520 2866 756e 6374 696f 6e29 2c20 204e e (function), N │ │ │ │ │ -00006880: 6578 743a 2052 6563 6569 7665 2028 7072 ext: Receive (pr │ │ │ │ │ -00006890: 6f63 6564 7572 6529 2c20 2050 7265 763a ocedure), Prev: │ │ │ │ │ -000068a0: 2050 7574 5f4c 696e 6520 2870 726f 6365 Put_Line (proce │ │ │ │ │ -000068b0: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ -000068c0: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ -000068d0: 6475 7265 290a 0a52 6563 6569 7665 2028 dure)..Receive ( │ │ │ │ │ -000068e0: 6675 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d function).------ │ │ │ │ │ -000068f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 ------------..PU │ │ │ │ │ -00006900: 5250 4f53 450a 2020 2020 2052 6563 6569 RPOSE. Recei │ │ │ │ │ -00006910: 7665 2072 6177 2064 6174 6120 6f76 6572 ve raw data over │ │ │ │ │ -00006920: 2061 2073 6f63 6b65 740a 5052 4f54 4f54 a socket.PROTOT │ │ │ │ │ -00006930: 5950 450a 2020 2020 2020 2d2d 2053 6f63 YPE. -- Soc │ │ │ │ │ -00006940: 6b65 7473 2e52 6563 6569 7665 3a20 6675 kets.Receive: fu │ │ │ │ │ -00006950: 6e63 7469 6f6e 2052 6563 6569 7665 2028 nction Receive ( │ │ │ │ │ -00006960: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ -00006970: 4644 3b0a 2020 2020 2020 2020 2020 2020 FD;. │ │ │ │ │ -00006980: 2020 204d 4158 203a 2041 6461 2e53 7472 MAX : Ada.Str │ │ │ │ │ -00006990: 6561 6d73 2e53 7472 6561 6d5f 456c 656d eams.Stream_Elem │ │ │ │ │ -000069a0: 656e 745f 436f 756e 7420 3a3d 2034 3039 ent_Count := 409 │ │ │ │ │ -000069b0: 3629 0a20 2020 2020 2020 2020 2020 2020 6). │ │ │ │ │ -000069c0: 2020 7265 7475 726e 2041 6461 2e53 7472 return Ada.Str │ │ │ │ │ -000069d0: 6561 6d73 2e53 7472 6561 6d5f 456c 656d eams.Stream_Elem │ │ │ │ │ -000069e0: 656e 745f 4172 7261 793b 0a0a 5041 5241 ent_Array;..PARA │ │ │ │ │ -000069f0: 4d45 5445 5253 0a20 2020 2020 534f 434b METERS. SOCK │ │ │ │ │ -00006a00: 4554 2020 2020 2069 6e20 2020 2020 2020 ET in │ │ │ │ │ -00006a10: 2020 496e 6974 6961 6c69 7a65 6420 616e Initialized an │ │ │ │ │ -00006a20: 6420 626f 756e 6420 6f72 2063 6f6e 6e65 d bound or conne │ │ │ │ │ -00006a30: 6374 6564 0a20 2020 2020 2020 2020 2020 cted. │ │ │ │ │ -00006a40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00006a50: 736f 636b 6574 206f 626a 6563 740a 2020 socket object. │ │ │ │ │ -00006a60: 2020 204d 4158 2020 2020 2020 2020 696e MAX in │ │ │ │ │ -00006a70: 2020 2020 2020 2020 204d 6178 696d 756d Maximum │ │ │ │ │ -00006a80: 2064 6174 6120 6c65 6e67 7468 0a0a 5245 data length..RE │ │ │ │ │ -00006a90: 5455 524e 2056 414c 5545 0a20 2020 2020 TURN VALUE. │ │ │ │ │ -00006aa0: 5265 6365 6976 6564 2072 6177 2064 6174 Received raw dat │ │ │ │ │ -00006ab0: 610a 0a44 4553 4352 4950 5449 4f4e 0a20 a..DESCRIPTION. │ │ │ │ │ -00006ac0: 2020 2020 5468 6973 2070 726f 6365 6475 This procedu │ │ │ │ │ -00006ad0: 7265 2072 6563 6569 7665 7320 6461 7461 re receives data │ │ │ │ │ -00006ae0: 2066 726f 6d20 6120 626f 756e 6420 5544 from a bound UD │ │ │ │ │ -00006af0: 5020 736f 636b 6574 206f 7220 6120 636f P socket or a co │ │ │ │ │ -00006b00: 6e6e 6563 7465 640a 2020 2020 2054 4350 nnected. TCP │ │ │ │ │ -00006b10: 2073 6f63 6b65 742e 2020 4f6e 6c79 206f socket. Only o │ │ │ │ │ -00006b20: 6e65 2073 7973 7465 6d20 6361 6c6c 2077 ne system call w │ │ │ │ │ -00006b30: 696c 6c20 6265 2070 6572 666f 726d 6564 ill be performed │ │ │ │ │ -00006b40: 3b20 7468 6973 2066 756e 6374 696f 6e0a ; this function. │ │ │ │ │ -00006b50: 2020 2020 2077 696c 6c20 7265 7475 726e will return │ │ │ │ │ -00006b60: 2077 6861 7465 7665 7220 6461 7461 2068 whatever data h │ │ │ │ │ -00006b70: 6173 2061 7272 6976 6564 2e20 204e 6f74 as arrived. Not │ │ │ │ │ -00006b80: 6520 7468 6174 2069 6e20 474e 4154 2074 e that in GNAT t │ │ │ │ │ -00006b90: 6865 0a20 2020 2020 7365 636f 6e64 6172 he. secondar │ │ │ │ │ -00006ba0: 7920 7374 6163 6b20 6d61 7920 6265 2075 y stack may be u │ │ │ │ │ -00006bb0: 7365 6420 746f 2073 746f 7265 2074 6865 sed to store the │ │ │ │ │ -00006bc0: 2064 6174 6120 616e 6420 6d61 7920 7265 data and may re │ │ │ │ │ -00006bd0: 7375 6c74 2069 6e0a 2020 2020 2073 7461 sult in. sta │ │ │ │ │ -00006be0: 636b 2073 746f 7261 6765 2065 7868 6175 ck storage exhau │ │ │ │ │ -00006bf0: 7374 696f 6e2e 0a0a 4558 4345 5054 494f stion...EXCEPTIO │ │ │ │ │ -00006c00: 4e53 0a20 2020 2020 2743 6f6e 6e65 6374 NS. 'Connect │ │ │ │ │ -00006c10: 696f 6e5f 436c 6f73 6564 2750 6565 7220 ion_Closed'Peer │ │ │ │ │ -00006c20: 6861 7320 636c 6f73 6564 2074 6865 2063 has closed the c │ │ │ │ │ -00006c30: 6f6e 6e65 6374 696f 6e20 6265 666f 7265 onnection before │ │ │ │ │ -00006c40: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -00006c50: 2020 2020 2020 2020 2073 656e 6469 6e67 sending │ │ │ │ │ -00006c60: 2061 6e79 2064 6174 610a 0a53 4545 2041 any data..SEE A │ │ │ │ │ -00006c70: 4c53 4f0a 2020 2020 202a 6e6f 7465 2052 LSO. *note R │ │ │ │ │ -00006c80: 6563 6569 7665 2028 7072 6f63 6564 7572 eceive (procedur │ │ │ │ │ -00006c90: 6529 3a3a 2c0a 2020 2020 202a 6e6f 7465 e)::,. *note │ │ │ │ │ -00006ca0: 2052 6563 6569 7665 5f53 6f6d 6520 2870 Receive_Some (p │ │ │ │ │ -00006cb0: 726f 6365 6475 7265 293a 3a2c 0a20 2020 rocedure)::,. │ │ │ │ │ -00006cc0: 2020 2a6e 6f74 6520 4765 745f 4c69 6e65 *note Get_Line │ │ │ │ │ -00006cd0: 2028 6675 6e63 7469 6f6e 293a 3a2c 0a20 (function)::,. │ │ │ │ │ -00006ce0: 2020 2020 2a6e 6f74 6520 4765 745f 4c69 *note Get_Li │ │ │ │ │ -00006cf0: 6e65 2028 7072 6f63 6564 7572 6529 3a3a ne (procedure):: │ │ │ │ │ -00006d00: 2e0a 0a1f 0a46 696c 653a 2061 6461 736f .....File: adaso │ │ │ │ │ -00006d10: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ -00006d20: 653a 2052 6563 6569 7665 2028 7072 6f63 e: Receive (proc │ │ │ │ │ -00006d30: 6564 7572 6529 2c20 204e 6578 743a 2052 edure), Next: R │ │ │ │ │ -00006d40: 6563 6569 7665 5f53 6f6d 6520 2870 726f eceive_Some (pro │ │ │ │ │ -00006d50: 6365 6475 7265 292c 2020 5072 6576 3a20 cedure), Prev: │ │ │ │ │ -00006d60: 5265 6365 6976 6520 2866 756e 6374 696f Receive (functio │ │ │ │ │ -00006d70: 6e29 2c20 2055 703a 2041 6363 6570 745f n), Up: Accept_ │ │ │ │ │ -00006d80: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ -00006d90: 6529 0a0a 5265 6365 6976 6520 2870 726f e)..Receive (pro │ │ │ │ │ -00006da0: 6365 6475 7265 290a 2d2d 2d2d 2d2d 2d2d cedure).-------- │ │ │ │ │ -00006db0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 -----------..PUR │ │ │ │ │ -00006dc0: 504f 5345 0a20 2020 2020 5265 6365 6976 POSE. Receiv │ │ │ │ │ -00006dd0: 6520 7261 7720 6461 7461 206f 7665 7220 e raw data over │ │ │ │ │ -00006de0: 6120 736f 636b 6574 0a50 524f 544f 5459 a socket.PROTOTY │ │ │ │ │ -00006df0: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ -00006e00: 6574 732e 5265 6365 6976 653a 2070 726f ets.Receive: pro │ │ │ │ │ -00006e10: 6365 6475 7265 2052 6563 6569 7665 2028 cedure Receive ( │ │ │ │ │ -00006e20: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ -00006e30: 4644 2743 6c61 7373 3b0a 2020 2020 2020 FD'Class;. │ │ │ │ │ -00006e40: 2020 2020 2020 2020 2044 4154 4120 3a20 DATA : │ │ │ │ │ -00006e50: 6f75 7420 4164 612e 5374 7265 616d 732e out Ada.Streams. │ │ │ │ │ -00006e60: 5374 7265 616d 5f45 6c65 6d65 6e74 5f41 Stream_Element_A │ │ │ │ │ -00006e70: 7272 6179 293b 0a0a 5041 5241 4d45 5445 rray);..PARAMETE │ │ │ │ │ -00006e80: 5253 0a20 2020 2020 534f 434b 4554 2020 RS. SOCKET │ │ │ │ │ -00006e90: 2020 2069 6e20 2020 2020 2020 2020 496e in In │ │ │ │ │ -00006ea0: 6974 6961 6c69 7a65 6420 616e 6420 626f itialized and bo │ │ │ │ │ -00006eb0: 756e 6420 6f72 2063 6f6e 6e65 6374 6564 und or connected │ │ │ │ │ -00006ec0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -00006ed0: 2020 2020 2020 2020 2020 2020 736f 636b sock │ │ │ │ │ -00006ee0: 6574 206f 626a 6563 740a 2020 2020 2044 et object. D │ │ │ │ │ -00006ef0: 4154 4120 2020 2020 2020 6f75 7420 2020 ATA out │ │ │ │ │ -00006f00: 2020 2020 2049 6e63 6f6d 696e 6720 6461 Incoming da │ │ │ │ │ -00006f10: 7461 2062 7566 6665 720a 0a44 4553 4352 ta buffer..DESCR │ │ │ │ │ -00006f20: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ -00006f30: 2070 726f 6365 6475 7265 2072 6563 6569 procedure recei │ │ │ │ │ -00006f40: 7665 7320 6461 7461 2066 726f 6d20 6120 ves data from a │ │ │ │ │ -00006f50: 626f 756e 6420 5544 5020 736f 636b 6574 bound UDP socket │ │ │ │ │ -00006f60: 206f 7220 6120 636f 6e6e 6563 7465 640a or a connected. │ │ │ │ │ -00006f70: 2020 2020 2054 4350 2073 6f63 6b65 742e TCP socket. │ │ │ │ │ -00006f80: 2020 4974 2077 696c 6c20 626c 6f63 6b20 It will block │ │ │ │ │ -00006f90: 756e 7469 6c20 7468 6520 4441 5441 2072 until the DATA r │ │ │ │ │ -00006fa0: 6563 6570 7469 6f6e 2062 7566 6665 7220 eception buffer │ │ │ │ │ -00006fb0: 6861 7320 6265 656e 0a20 2020 2020 746f has been. to │ │ │ │ │ -00006fc0: 7461 6c6c 7920 6669 6c6c 6564 2e0a 0a45 tally filled...E │ │ │ │ │ -00006fd0: 5843 4550 5449 4f4e 530a 2020 2020 2027 XCEPTIONS. ' │ │ │ │ │ -00006fe0: 436f 6e6e 6563 7469 6f6e 5f43 6c6f 7365 Connection_Close │ │ │ │ │ -00006ff0: 6427 5065 6572 2068 6173 2063 6c6f 7365 d'Peer has close │ │ │ │ │ -00007000: 6420 7468 6520 636f 6e6e 6563 7469 6f6e d the connection │ │ │ │ │ -00007010: 2062 6566 6f72 650a 2020 2020 2020 2020 before. │ │ │ │ │ -00007020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00007030: 2744 6174 6127 4c65 6e67 7468 2720 6279 'Data'Length' by │ │ │ │ │ -00007040: 7465 730a 2020 2020 2020 2020 2020 2020 tes. │ │ │ │ │ -00007050: 2020 2020 2020 2020 2020 2020 7765 7265 were │ │ │ │ │ -00007060: 2072 6563 6569 7665 640a 0a53 4545 2041 received..SEE A │ │ │ │ │ -00007070: 4c53 4f0a 2020 2020 202a 6e6f 7465 2047 LSO. *note G │ │ │ │ │ -00007080: 6574 5f4c 696e 6520 2866 756e 6374 696f et_Line (functio │ │ │ │ │ -00007090: 6e29 3a3a 2c0a 2020 2020 202a 6e6f 7465 n)::,. *note │ │ │ │ │ -000070a0: 2047 6574 5f4c 696e 6520 2870 726f 6365 Get_Line (proce │ │ │ │ │ -000070b0: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ -000070c0: 6f74 6520 5265 6365 6976 6520 2866 756e ote Receive (fun │ │ │ │ │ -000070d0: 6374 696f 6e29 3a3a 2c0a 2020 2020 202a ction)::,. * │ │ │ │ │ -000070e0: 6e6f 7465 2052 6563 6569 7665 5f53 6f6d note Receive_Som │ │ │ │ │ -000070f0: 6520 2870 726f 6365 6475 7265 293a 3a2e e (procedure)::. │ │ │ │ │ -00007100: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ -00007110: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ -00007120: 3a20 5265 6365 6976 655f 536f 6d65 2028 : Receive_Some ( │ │ │ │ │ -00007130: 7072 6f63 6564 7572 6529 2c20 204e 6578 procedure), Nex │ │ │ │ │ -00007140: 743a 2053 656e 6420 2870 726f 6365 6475 t: Send (procedu │ │ │ │ │ -00007150: 7265 292c 2020 5072 6576 3a20 5265 6365 re), Prev: Rece │ │ │ │ │ -00007160: 6976 6520 2870 726f 6365 6475 7265 292c ive (procedure), │ │ │ │ │ -00007170: 2020 5570 3a20 4163 6365 7074 5f53 6f63 Up: Accept_Soc │ │ │ │ │ -00007180: 6b65 7420 2870 726f 6365 6475 7265 290a ket (procedure). │ │ │ │ │ -00007190: 0a52 6563 6569 7665 5f53 6f6d 6520 2870 .Receive_Some (p │ │ │ │ │ -000071a0: 726f 6365 6475 7265 290a 2d2d 2d2d 2d2d rocedure).------ │ │ │ │ │ -000071b0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -000071c0: 2d2d 0a0a 5055 5250 4f53 450a 2020 2020 --..PURPOSE. │ │ │ │ │ -000071d0: 2052 6563 6569 7665 2072 6177 2064 6174 Receive raw dat │ │ │ │ │ -000071e0: 6120 6f76 6572 2061 2073 6f63 6b65 740a a over a socket. │ │ │ │ │ -000071f0: 5052 4f54 4f54 5950 450a 2020 2020 2020 PROTOTYPE. │ │ │ │ │ -00007200: 2d2d 2053 6f63 6b65 7473 2e52 6563 6569 -- Sockets.Recei │ │ │ │ │ -00007210: 7665 5f53 6f6d 653a 2070 726f 6365 6475 ve_Some: procedu │ │ │ │ │ -00007220: 7265 2052 6563 6569 7665 5f53 6f6d 650a re Receive_Some. │ │ │ │ │ -00007230: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ -00007240: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ -00007250: 4644 2743 6c61 7373 3b0a 2020 2020 2020 FD'Class;. │ │ │ │ │ -00007260: 2020 2020 2020 2020 2044 4154 4120 3a20 DATA : │ │ │ │ │ -00007270: 6f75 7420 4164 612e 5374 7265 616d 732e out Ada.Streams. │ │ │ │ │ -00007280: 5374 7265 616d 5f45 6c65 6d65 6e74 5f41 Stream_Element_A │ │ │ │ │ -00007290: 7272 6179 3b0a 2020 2020 2020 2020 2020 rray;. │ │ │ │ │ -000072a0: 2020 2020 204c 4153 5420 3a20 6f75 7420 LAST : out │ │ │ │ │ -000072b0: 4164 612e 5374 7265 616d 732e 5374 7265 Ada.Streams.Stre │ │ │ │ │ -000072c0: 616d 5f45 6c65 6d65 6e74 5f4f 6666 7365 am_Element_Offse │ │ │ │ │ -000072d0: 7429 3b0a 0a50 4152 414d 4554 4552 530a t);..PARAMETERS. │ │ │ │ │ -000072e0: 2020 2020 2053 4f43 4b45 5420 2020 2020 SOCKET │ │ │ │ │ -000072f0: 696e 2020 2020 2020 2020 2049 6e69 7469 in Initi │ │ │ │ │ -00007300: 616c 697a 6564 2061 6e64 2062 6f75 6e64 alized and bound │ │ │ │ │ -00007310: 206f 7220 636f 6e6e 6563 7465 640a 2020 or connected. │ │ │ │ │ -00007320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00007330: 2020 2020 2020 2020 2073 6f63 6b65 7420 socket │ │ │ │ │ -00007340: 6f62 6a65 6374 0a20 2020 2020 4441 5441 object. DATA │ │ │ │ │ -00007350: 2020 2020 2020 206f 7574 2020 2020 2020 out │ │ │ │ │ -00007360: 2020 496e 636f 6d69 6e67 2064 6174 6120 Incoming data │ │ │ │ │ -00007370: 6275 6666 6572 0a20 2020 2020 4c41 5354 buffer. LAST │ │ │ │ │ -00007380: 2020 2020 2020 206f 7574 2020 2020 2020 out │ │ │ │ │ -00007390: 2020 496e 6465 7820 6f66 206c 6173 7420 Index of last │ │ │ │ │ -000073a0: 656c 656d 656e 7420 706c 6163 6564 2069 element placed i │ │ │ │ │ -000073b0: 6e74 6f20 4441 5441 0a0a 4445 5343 5249 nto DATA..DESCRI │ │ │ │ │ -000073c0: 5054 494f 4e0a 2020 2020 2054 6869 7320 PTION. This │ │ │ │ │ -000073d0: 7072 6f63 6564 7572 6520 7265 6365 6976 procedure receiv │ │ │ │ │ -000073e0: 6573 2064 6174 6120 6672 6f6d 2061 2062 es data from a b │ │ │ │ │ -000073f0: 6f75 6e64 2055 4450 2073 6f63 6b65 7420 ound UDP socket │ │ │ │ │ -00007400: 6f72 2061 2063 6f6e 6e65 6374 6564 0a20 or a connected. │ │ │ │ │ -00007410: 2020 2020 5443 5020 736f 636b 6574 2e20 TCP socket. │ │ │ │ │ -00007420: 2041 7320 736f 6f6e 2061 7320 6174 206c As soon as at l │ │ │ │ │ -00007430: 6561 7374 206f 6e65 2062 7974 6520 6861 east one byte ha │ │ │ │ │ -00007440: 7320 6265 656e 2072 6561 642c 2069 7420 s been read, it │ │ │ │ │ -00007450: 7265 7475 726e 730a 2020 2020 2077 6974 returns. wit │ │ │ │ │ -00007460: 6820 4c41 5354 2073 6574 2074 6f20 7468 h LAST set to th │ │ │ │ │ -00007470: 6520 696e 6465 7820 6f66 2074 6865 206c e index of the l │ │ │ │ │ -00007480: 6174 6573 7420 7772 6974 7465 6e20 656c atest written el │ │ │ │ │ -00007490: 656d 656e 7420 6f66 2044 4154 412e 0a0a ement of DATA... │ │ │ │ │ -000074a0: 4558 4345 5054 494f 4e53 0a20 2020 2020 EXCEPTIONS. │ │ │ │ │ -000074b0: 2743 6f6e 6e65 6374 696f 6e5f 436c 6f73 'Connection_Clos │ │ │ │ │ -000074c0: 6564 2750 6565 7220 6861 7320 636c 6f73 ed'Peer has clos │ │ │ │ │ -000074d0: 6564 2074 6865 2063 6f6e 6e65 6374 696f ed the connectio │ │ │ │ │ -000074e0: 6e20 6265 666f 7265 0a20 2020 2020 2020 n before. │ │ │ │ │ -000074f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00007500: 2073 656e 6469 6e67 2061 6e79 2064 6174 sending any dat │ │ │ │ │ -00007510: 610a 0a53 4545 2041 4c53 4f0a 2020 2020 a..SEE ALSO. │ │ │ │ │ -00007520: 202a 6e6f 7465 2047 6574 5f4c 696e 6520 *note Get_Line │ │ │ │ │ -00007530: 2866 756e 6374 696f 6e29 3a3a 2c0a 2020 (function)::,. │ │ │ │ │ -00007540: 2020 202a 6e6f 7465 2047 6574 5f4c 696e *note Get_Lin │ │ │ │ │ -00007550: 6520 2870 726f 6365 6475 7265 293a 3a2c e (procedure)::, │ │ │ │ │ -00007560: 0a20 2020 2020 2a6e 6f74 6520 5265 6365 . *note Rece │ │ │ │ │ -00007570: 6976 6520 2866 756e 6374 696f 6e29 3a3a ive (function):: │ │ │ │ │ -00007580: 2c0a 2020 2020 202a 6e6f 7465 2052 6563 ,. *note Rec │ │ │ │ │ -00007590: 6569 7665 2028 7072 6f63 6564 7572 6529 eive (procedure) │ │ │ │ │ -000075a0: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ -000075b0: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ -000075c0: 6f64 653a 2053 656e 6420 2870 726f 6365 ode: Send (proce │ │ │ │ │ -000075d0: 6475 7265 292c 2020 4e65 7874 3a20 5365 dure), Next: Se │ │ │ │ │ -000075e0: 745f 4275 6666 6572 2028 7072 6f63 6564 t_Buffer (proced │ │ │ │ │ -000075f0: 7572 6529 2c20 2050 7265 763a 2052 6563 ure), Prev: Rec │ │ │ │ │ -00007600: 6569 7665 5f53 6f6d 6520 2870 726f 6365 eive_Some (proce │ │ │ │ │ -00007610: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ -00007620: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ -00007630: 6475 7265 290a 0a53 656e 6420 2870 726f dure)..Send (pro │ │ │ │ │ -00007640: 6365 6475 7265 290a 2d2d 2d2d 2d2d 2d2d cedure).-------- │ │ │ │ │ -00007650: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ -00007660: 450a 2020 2020 2053 656e 6420 7261 7720 E. Send raw │ │ │ │ │ -00007670: 6461 7461 206f 7665 7220 6120 736f 636b data over a sock │ │ │ │ │ -00007680: 6574 0a50 524f 544f 5459 5045 0a20 2020 et.PROTOTYPE. │ │ │ │ │ -00007690: 2020 202d 2d20 536f 636b 6574 732e 5365 -- Sockets.Se │ │ │ │ │ -000076a0: 6e64 3a20 7072 6f63 6564 7572 6520 5365 nd: procedure Se │ │ │ │ │ -000076b0: 6e64 2028 534f 434b 4554 203a 2053 6f63 nd (SOCKET : Soc │ │ │ │ │ -000076c0: 6b65 745f 4644 3b0a 2020 2020 2020 2020 ket_FD;. │ │ │ │ │ -000076d0: 2020 2020 2020 2044 4154 4120 3a20 6f75 DATA : ou │ │ │ │ │ -000076e0: 7420 4164 612e 5374 7265 616d 732e 5374 t Ada.Streams.St │ │ │ │ │ -000076f0: 7265 616d 5f45 6c65 6d65 6e74 5f41 7272 ream_Element_Arr │ │ │ │ │ -00007700: 6179 293b 0a0a 5041 5241 4d45 5445 5253 ay);..PARAMETERS │ │ │ │ │ -00007710: 0a20 2020 2020 534f 434b 4554 2020 2020 . SOCKET │ │ │ │ │ -00007720: 2069 6e20 2020 2020 2020 2020 496e 6974 in Init │ │ │ │ │ -00007730: 6961 6c69 7a65 6420 616e 6420 636f 6e6e ialized and conn │ │ │ │ │ -00007740: 6563 7465 6420 736f 636b 6574 206f 626a ected socket obj │ │ │ │ │ -00007750: 6563 740a 2020 2020 2044 4154 4120 2020 ect. DATA │ │ │ │ │ -00007760: 2020 2020 6f75 7420 2020 2020 2020 2044 out D │ │ │ │ │ -00007770: 6174 6120 746f 2062 6520 7365 6e74 0a0a ata to be sent.. │ │ │ │ │ -00007780: 4445 5343 5249 5054 494f 4e0a 2020 2020 DESCRIPTION. │ │ │ │ │ -00007790: 2054 6869 7320 7072 6f63 6564 7572 6520 This procedure │ │ │ │ │ -000077a0: 7365 6e64 7320 6461 7461 206f 7665 7220 sends data over │ │ │ │ │ -000077b0: 6120 636f 6e6e 6563 7465 6420 6f75 7467 a connected outg │ │ │ │ │ -000077c0: 6f69 6e67 2073 6f63 6b65 7420 6f72 206f oing socket or o │ │ │ │ │ -000077d0: 7665 720a 2020 2020 2061 6e20 696e 636f ver. an inco │ │ │ │ │ -000077e0: 6d69 6e67 2073 6f63 6b65 742e 0a0a 4558 ming socket...EX │ │ │ │ │ -000077f0: 4345 5054 494f 4e53 0a20 2020 2020 2743 CEPTIONS. 'C │ │ │ │ │ -00007800: 6f6e 6e65 6374 696f 6e5f 436c 6f73 6564 onnection_Closed │ │ │ │ │ -00007810: 2750 6565 7220 6861 7320 7072 656d 6174 'Peer has premat │ │ │ │ │ -00007820: 7572 656c 7920 636c 6f73 6564 2074 6865 urely closed the │ │ │ │ │ -00007830: 2063 6f6e 6e65 6374 696f 6e0a 0a53 4545 connection..SEE │ │ │ │ │ -00007840: 2041 4c53 4f0a 2020 2020 202a 6e6f 7465 ALSO. *note │ │ │ │ │ -00007850: 2050 7574 2028 7072 6f63 6564 7572 6529 Put (procedure) │ │ │ │ │ -00007860: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2050 ::,. *note P │ │ │ │ │ -00007870: 7574 5f4c 696e 6520 2870 726f 6365 6475 ut_Line (procedu │ │ │ │ │ -00007880: 7265 293a 3a2e 0a0a 1f0a 4669 6c65 3a20 re)::.....File: │ │ │ │ │ -00007890: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ -000078a0: 2020 4e6f 6465 3a20 5365 745f 4275 6666 Node: Set_Buff │ │ │ │ │ -000078b0: 6572 2028 7072 6f63 6564 7572 6529 2c20 er (procedure), │ │ │ │ │ -000078c0: 204e 6578 743a 2053 6574 736f 636b 6f70 Next: Setsockop │ │ │ │ │ -000078d0: 7420 2870 726f 6365 6475 7265 292c 2020 t (procedure), │ │ │ │ │ -000078e0: 5072 6576 3a20 5365 6e64 2028 7072 6f63 Prev: Send (proc │ │ │ │ │ -000078f0: 6564 7572 6529 2c20 2055 703a 2041 6363 edure), Up: Acc │ │ │ │ │ -00007900: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ -00007910: 6564 7572 6529 0a0a 5365 745f 4275 6666 edure)..Set_Buff │ │ │ │ │ -00007920: 6572 2028 7072 6f63 6564 7572 6529 0a2d er (procedure).- │ │ │ │ │ -00007930: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -00007940: 2d2d 2d2d 2d0a 0a50 5552 504f 5345 0a20 -----..PURPOSE. │ │ │ │ │ -00007950: 2020 2020 496e 7374 616c 6c20 6120 6c69 Install a li │ │ │ │ │ -00007960: 6e65 2d6f 7269 656e 7465 6420 6275 6666 ne-oriented buff │ │ │ │ │ -00007970: 6572 206f 6620 7468 6520 736f 636b 6574 er of the socket │ │ │ │ │ -00007980: 206f 626a 6563 740a 5052 4f54 4f54 5950 object.PROTOTYP │ │ │ │ │ -00007990: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ -000079a0: 7473 2e53 6574 5f42 7566 6665 723a 2070 ts.Set_Buffer: p │ │ │ │ │ -000079b0: 726f 6365 6475 7265 2053 6574 5f42 7566 rocedure Set_Buf │ │ │ │ │ -000079c0: 6665 720a 2020 2020 2020 2020 2020 2020 fer. │ │ │ │ │ -000079d0: 2020 2028 534f 434b 4554 203a 2053 6f63 (SOCKET : Soc │ │ │ │ │ -000079e0: 6b65 745f 4644 2743 6c61 7373 3b20 4c45 ket_FD'Class; LE │ │ │ │ │ -000079f0: 4e47 5448 203a 2050 6f73 6974 6976 6520 NGTH : Positive │ │ │ │ │ -00007a00: 3a3d 2031 3530 3029 3b0a 0a50 4152 414d := 1500);..PARAM │ │ │ │ │ -00007a10: 4554 4552 530a 2020 2020 2053 4f43 4b45 ETERS. SOCKE │ │ │ │ │ -00007a20: 5420 2020 2020 696e 2020 2020 2020 2020 T in │ │ │ │ │ -00007a30: 2049 6e69 7469 616c 697a 6564 2061 6e64 Initialized and │ │ │ │ │ -00007a40: 2063 6f6e 6e65 6374 6564 2073 6f63 6b65 connected socke │ │ │ │ │ -00007a50: 7420 6f62 6a65 6374 0a20 2020 2020 4c45 t object. LE │ │ │ │ │ -00007a60: 4e47 5448 2020 2020 2069 6e20 2020 2020 NGTH in │ │ │ │ │ -00007a70: 2020 2020 5369 7a65 2069 6e20 6279 7465 Size in byte │ │ │ │ │ -00007a80: 7320 6f66 2074 6865 206e 6577 6c79 2069 s of the newly i │ │ │ │ │ -00007a90: 6e73 7461 6c6c 6564 0a20 2020 2020 2020 nstalled. │ │ │ │ │ -00007aa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00007ab0: 2020 2020 6275 6666 6572 0a0a 4445 5343 buffer..DESC │ │ │ │ │ -00007ac0: 5249 5054 494f 4e0a 2020 2020 2054 6869 RIPTION. Thi │ │ │ │ │ -00007ad0: 7320 7072 6f63 6564 7572 6520 7075 7473 s procedure puts │ │ │ │ │ -00007ae0: 2074 6865 2073 6f63 6b65 7420 6f62 6a65 the socket obje │ │ │ │ │ -00007af0: 6374 2069 6e20 6275 6666 6572 6564 206d ct in buffered m │ │ │ │ │ -00007b00: 6f64 652e 2020 4966 2074 6865 0a20 2020 ode. If the. │ │ │ │ │ -00007b10: 2020 736f 636b 6574 2077 6173 2061 6c72 socket was alr │ │ │ │ │ -00007b20: 6561 6479 2062 7566 6665 7265 642c 2074 eady buffered, t │ │ │ │ │ -00007b30: 6865 2063 6f6e 7465 6e74 206f 6620 7468 he content of th │ │ │ │ │ -00007b40: 6520 7072 6576 696f 7573 2062 7566 6665 e previous buffe │ │ │ │ │ -00007b50: 720a 2020 2020 2077 696c 6c20 6265 206c r. will be l │ │ │ │ │ -00007b60: 6f73 742e 2020 5468 6520 6275 6666 6572 ost. The buffer │ │ │ │ │ -00007b70: 6564 206d 6f64 6520 6f6e 6c79 2061 6666 ed mode only aff │ │ │ │ │ -00007b80: 6563 7473 2063 6861 7261 6374 6572 2d20 ects character- │ │ │ │ │ -00007b90: 616e 640a 2020 2020 206c 696e 652d 6f72 and. line-or │ │ │ │ │ -00007ba0: 6965 6e74 6564 2072 6561 6420 6f70 6572 iented read oper │ │ │ │ │ -00007bb0: 6174 696f 6e20 7375 6368 2061 7320 2a6e ation such as *n │ │ │ │ │ -00007bc0: 6f74 6520 4765 7420 2866 756e 6374 696f ote Get (functio │ │ │ │ │ -00007bd0: 6e29 3a3a 2c20 2a6e 6f74 650a 2020 2020 n)::, *note. │ │ │ │ │ -00007be0: 2047 6574 5f43 6861 7220 2866 756e 6374 Get_Char (funct │ │ │ │ │ -00007bf0: 696f 6e29 3a3a 2c20 616e 6420 2a6e 6f74 ion)::, and *not │ │ │ │ │ -00007c00: 6520 4765 745f 4c69 6e65 2028 6675 6e63 e Get_Line (func │ │ │ │ │ -00007c10: 7469 6f6e 293a 3a2e 2020 4f74 6865 720a tion)::. Other. │ │ │ │ │ -00007c20: 2020 2020 2072 6563 6570 7469 6f6e 2073 reception s │ │ │ │ │ -00007c30: 7562 7072 6f67 7261 6d73 2077 696c 6c20 ubprograms will │ │ │ │ │ -00007c40: 6e6f 7420 6675 6e63 7469 6f6e 2070 726f not function pro │ │ │ │ │ -00007c50: 7065 726c 7920 6966 2062 7566 6665 7265 perly if buffere │ │ │ │ │ -00007c60: 6420 6d6f 6465 0a20 2020 2020 6973 2075 d mode. is u │ │ │ │ │ -00007c70: 7365 6420 6174 2074 6865 2073 616d 6520 sed at the same │ │ │ │ │ -00007c80: 7469 6d65 2e0a 0a20 2020 2020 5468 6520 time... The │ │ │ │ │ -00007c90: 7369 7a65 206f 6620 7468 6520 6275 6666 size of the buff │ │ │ │ │ -00007ca0: 6572 2068 6173 2074 6f20 6265 2067 7265 er has to be gre │ │ │ │ │ -00007cb0: 6174 6572 2074 6861 6e20 7468 6520 6269 ater than the bi │ │ │ │ │ -00007cc0: 6767 6573 7420 706f 7373 6962 6c65 0a20 ggest possible. │ │ │ │ │ -00007cd0: 2020 2020 7061 636b 6574 2073 656e 7420 packet sent │ │ │ │ │ -00007ce0: 6279 2074 6865 2072 656d 6f74 6520 686f by the remote ho │ │ │ │ │ -00007cf0: 7374 2c20 6f74 6865 7277 6973 6520 6461 st, otherwise da │ │ │ │ │ -00007d00: 7461 206c 6f73 7320 6d61 7920 6f63 6375 ta loss may occu │ │ │ │ │ -00007d10: 722e 0a0a 5345 4520 414c 534f 0a20 2020 r...SEE ALSO. │ │ │ │ │ -00007d20: 2020 2a6e 6f74 6520 556e 7365 745f 4275 *note Unset_Bu │ │ │ │ │ -00007d30: 6666 6572 2028 7072 6f63 6564 7572 6529 ffer (procedure) │ │ │ │ │ -00007d40: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ -00007d50: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ -00007d60: 6f64 653a 2053 6574 736f 636b 6f70 7420 ode: Setsockopt │ │ │ │ │ -00007d70: 2870 726f 6365 6475 7265 292c 2020 4e65 (procedure), Ne │ │ │ │ │ -00007d80: 7874 3a20 5368 7574 646f 776e 2028 7072 xt: Shutdown (pr │ │ │ │ │ -00007d90: 6f63 6564 7572 6529 2c20 2050 7265 763a ocedure), Prev: │ │ │ │ │ -00007da0: 2053 6574 5f42 7566 6665 7220 2870 726f Set_Buffer (pro │ │ │ │ │ -00007db0: 6365 6475 7265 292c 2020 5570 3a20 4163 cedure), Up: Ac │ │ │ │ │ -00007dc0: 6365 7074 5f53 6f63 6b65 7420 2870 726f cept_Socket (pro │ │ │ │ │ -00007dd0: 6365 6475 7265 290a 0a53 6574 736f 636b cedure)..Setsock │ │ │ │ │ -00007de0: 6f70 7420 2870 726f 6365 6475 7265 290a opt (procedure). │ │ │ │ │ -00007df0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -00007e00: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ -00007e10: 2020 2020 2053 6574 2061 2073 6f63 6b65 Set a socke │ │ │ │ │ -00007e20: 7420 6f70 7469 6f6e 0a50 524f 544f 5459 t option.PROTOTY │ │ │ │ │ -00007e30: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ -00007e40: 6574 732e 5365 7473 6f63 6b6f 7074 3a20 ets.Setsockopt: │ │ │ │ │ -00007e50: 7072 6f63 6564 7572 6520 5365 7473 6f63 procedure Setsoc │ │ │ │ │ -00007e60: 6b6f 7074 2028 534f 434b 4554 203a 2053 kopt (SOCKET : S │ │ │ │ │ -00007e70: 6f63 6b65 745f 4644 3b0a 2020 2020 2020 ocket_FD;. │ │ │ │ │ -00007e80: 2020 2020 2020 2020 204c 4556 454c 203a LEVEL : │ │ │ │ │ -00007e90: 2053 6f63 6b65 745f 4c65 7665 6c20 3a3d Socket_Level := │ │ │ │ │ -00007ea0: 2053 4f4c 5f53 4f43 4b45 543b 0a20 2020 SOL_SOCKET;. │ │ │ │ │ -00007eb0: 2020 2020 2020 2020 2020 2020 4f50 544e OPTN │ │ │ │ │ -00007ec0: 414d 4520 3a20 536f 636b 6574 5f4f 7074 AME : Socket_Opt │ │ │ │ │ -00007ed0: 696f 6e3b 204f 5054 5641 4c20 3a20 496e ion; OPTVAL : In │ │ │ │ │ -00007ee0: 7465 6765 7229 3b0a 0a50 4152 414d 4554 teger);..PARAMET │ │ │ │ │ -00007ef0: 4552 530a 2020 2020 2053 4f43 4b45 5420 ERS. SOCKET │ │ │ │ │ -00007f00: 2020 2020 696e 2020 2020 2020 2020 2049 in I │ │ │ │ │ -00007f10: 6e69 7469 616c 697a 6564 2061 6e64 2062 nitialized and b │ │ │ │ │ -00007f20: 6f75 6e64 2073 6f63 6b65 7420 6f62 6a65 ound socket obje │ │ │ │ │ -00007f30: 6374 0a20 2020 2020 4c45 5645 4c20 2020 ct. LEVEL │ │ │ │ │ -00007f40: 2020 2069 6e20 2020 2020 2020 2020 5072 in Pr │ │ │ │ │ -00007f50: 6f74 6f63 6f6c 206c 6576 656c 0a20 2020 otocol level. │ │ │ │ │ -00007f60: 2020 4f50 544e 414d 4520 2020 2069 6e20 OPTNAME in │ │ │ │ │ -00007f70: 2020 2020 2020 2020 4f70 7469 6f6e 206e Option n │ │ │ │ │ -00007f80: 616d 650a 2020 2020 204f 5054 5641 4c20 ame. OPTVAL │ │ │ │ │ -00007f90: 2020 2020 696e 2020 2020 2020 2020 204f in O │ │ │ │ │ -00007fa0: 7074 696f 6e20 7661 6c75 650a 0a44 4553 ption value..DES │ │ │ │ │ -00007fb0: 4352 4950 5449 4f4e 0a20 2020 2020 5468 CRIPTION. Th │ │ │ │ │ -00007fc0: 6973 2070 726f 6365 6475 7265 2073 6574 is procedure set │ │ │ │ │ -00007fd0: 7320 6f70 7469 6f6e 7320 6170 706c 6963 s options applic │ │ │ │ │ -00007fe0: 6162 6c65 2074 6f20 6120 736f 636b 6574 able to a socket │ │ │ │ │ -00007ff0: 2e20 2050 6c65 6173 6520 7365 650a 2020 . Please see. │ │ │ │ │ -00008000: 2020 2079 6f75 7220 6f70 6572 6174 696e your operatin │ │ │ │ │ -00008010: 6720 7379 7374 656d 206d 616e 7561 6c20 g system manual │ │ │ │ │ -00008020: 666f 7220 7573 6162 6c65 206c 6576 656c for usable level │ │ │ │ │ -00008030: 7320 616e 6420 6f70 7469 6f6e 732e 0a0a s and options... │ │ │ │ │ -00008040: 2020 2020 2054 776f 206c 6576 656c 7320 Two levels │ │ │ │ │ -00008050: 6172 6520 6465 6669 6e65 643a 2027 534f are defined: 'SO │ │ │ │ │ -00008060: 4c5f 534f 434b 4554 2720 2874 6865 2064 L_SOCKET' (the d │ │ │ │ │ -00008070: 6566 6175 6c74 2920 616e 640a 2020 2020 efault) and. │ │ │ │ │ -00008080: 2027 4950 5052 4f54 4f5f 4950 272e 2020 'IPPROTO_IP'. │ │ │ │ │ -00008090: 5468 6520 6f70 7469 6f6e 7320 6172 6520 The options are │ │ │ │ │ -000080a0: 2753 4f5f 5245 5553 4541 4444 5227 2c20 'SO_REUSEADDR', │ │ │ │ │ -000080b0: 2753 4f5f 5245 5553 4550 4f52 5427 2c0a 'SO_REUSEPORT',. │ │ │ │ │ -000080c0: 2020 2020 2027 4950 5f4d 554c 5449 4341 'IP_MULTICA │ │ │ │ │ -000080d0: 5354 5f54 544c 272c 2027 4950 5f41 4444 ST_TTL', 'IP_ADD │ │ │ │ │ -000080e0: 5f4d 454d 4245 5253 4849 5027 2c20 2749 _MEMBERSHIP', 'I │ │ │ │ │ -000080f0: 505f 4452 4f50 5f4d 454d 4245 5253 4849 P_DROP_MEMBERSHI │ │ │ │ │ -00008100: 5027 2c0a 2020 2020 2027 4950 5f4d 554c P',. 'IP_MUL │ │ │ │ │ -00008110: 5449 4341 5354 5f4c 4f4f 5027 2c20 2753 TICAST_LOOP', 'S │ │ │ │ │ -00008120: 4f5f 534e 4442 5546 2720 616e 6420 2749 O_SNDBUF' and 'I │ │ │ │ │ -00008130: 505f 5243 5642 5546 272e 0a0a 2020 2020 P_RCVBUF'... │ │ │ │ │ -00008140: 204e 6f74 6520 7468 6174 2075 6e6c 696b Note that unlik │ │ │ │ │ -00008150: 6520 7468 6569 7220 4320 6c61 6e67 7561 e their C langua │ │ │ │ │ -00008160: 6765 2063 6f75 6e74 6572 7061 7274 2c20 ge counterpart, │ │ │ │ │ -00008170: 2747 6574 736f 636b 6f70 7427 2061 6e64 'Getsockopt' and │ │ │ │ │ -00008180: 0a20 2020 2020 2753 6574 736f 636b 6f70 . 'Setsockop │ │ │ │ │ -00008190: 7427 2064 6f20 6e6f 7420 7265 7175 6972 t' do not requir │ │ │ │ │ -000081a0: 6520 616e 2065 7874 7261 2070 6172 616d e an extra param │ │ │ │ │ -000081b0: 6574 6572 2072 6570 7265 7365 6e74 696e eter representin │ │ │ │ │ -000081c0: 6720 7468 650a 2020 2020 206c 656e 6774 g the. lengt │ │ │ │ │ -000081d0: 6820 696e 2062 7974 6573 206f 6620 7468 h in bytes of th │ │ │ │ │ -000081e0: 6520 6f70 7469 6f6e 2076 616c 7565 2e20 e option value. │ │ │ │ │ -000081f0: 2041 6461 536f 636b 6574 7320 6e6f 7773 AdaSockets nows │ │ │ │ │ -00008200: 2074 6865 2072 6967 6874 0a20 2020 2020 the right. │ │ │ │ │ -00008210: 7369 7a65 2066 6f72 2065 7665 7279 206f size for every o │ │ │ │ │ -00008220: 7074 696f 6e2e 0a0a 5345 4520 414c 534f ption...SEE ALSO │ │ │ │ │ -00008230: 0a20 2020 2020 2a6e 6f74 6520 4765 7473 . *note Gets │ │ │ │ │ -00008240: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ -00008250: 6529 3a3a 2e0a 0a1f 0a46 696c 653a 2061 e)::.....File: a │ │ │ │ │ -00008260: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ -00008270: 204e 6f64 653a 2053 6875 7464 6f77 6e20 Node: Shutdown │ │ │ │ │ -00008280: 2870 726f 6365 6475 7265 292c 2020 4e65 (procedure), Ne │ │ │ │ │ -00008290: 7874 3a20 536f 636b 6574 2028 7072 6f63 xt: Socket (proc │ │ │ │ │ -000082a0: 6564 7572 6529 2c20 2050 7265 763a 2053 edure), Prev: S │ │ │ │ │ -000082b0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ -000082c0: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ -000082d0: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ -000082e0: 6475 7265 290a 0a53 6875 7464 6f77 6e20 dure)..Shutdown │ │ │ │ │ -000082f0: 2870 726f 6365 6475 7265 290a 2d2d 2d2d (procedure).---- │ │ │ │ │ -00008300: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -00008310: 0a0a 5055 5250 4f53 450a 2020 2020 2053 ..PURPOSE. S │ │ │ │ │ -00008320: 6875 7464 6f77 6e20 6120 736f 636b 6574 hutdown a socket │ │ │ │ │ -00008330: 0a50 524f 544f 5459 5045 0a20 2020 2020 .PROTOTYPE. │ │ │ │ │ -00008340: 202d 2d20 536f 636b 6574 732e 5368 7574 -- Sockets.Shut │ │ │ │ │ -00008350: 646f 776e 3a20 7072 6f63 6564 7572 6520 down: procedure │ │ │ │ │ -00008360: 5368 7574 646f 776e 0a20 2020 2020 2020 Shutdown. │ │ │ │ │ -00008370: 2020 2020 2020 2020 2853 4f43 4b45 5420 (SOCKET │ │ │ │ │ -00008380: 3a20 696e 206f 7574 2053 6f63 6b65 745f : in out Socket_ │ │ │ │ │ -00008390: 4644 3b20 484f 5720 3a20 5368 7574 646f FD; HOW : Shutdo │ │ │ │ │ -000083a0: 776e 5f54 7970 6520 3a3d 2042 6f74 6829 wn_Type := Both) │ │ │ │ │ -000083b0: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ -000083c0: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ -000083d0: 206f 7574 2020 2020 2053 6f63 6b65 7420 out Socket │ │ │ │ │ -000083e0: 6f62 6a65 6374 2074 6f20 7368 7574 646f object to shutdo │ │ │ │ │ -000083f0: 776e 0a20 2020 2020 484f 5720 2020 2020 wn. HOW │ │ │ │ │ -00008400: 2020 2069 6e20 2020 2020 2020 2020 4469 in Di │ │ │ │ │ -00008410: 7265 6374 696f 6e20 746f 2073 6875 7464 rection to shutd │ │ │ │ │ -00008420: 6f77 6e0a 0a44 4553 4352 4950 5449 4f4e own..DESCRIPTION │ │ │ │ │ -00008430: 0a20 2020 2020 5468 6973 2070 726f 6365 . This proce │ │ │ │ │ -00008440: 6475 7265 2073 6875 7464 6f77 6e73 2065 dure shutdowns e │ │ │ │ │ -00008450: 6974 6865 7220 6469 7265 6374 696f 6e20 ither direction │ │ │ │ │ -00008460: 6f66 2074 6865 2073 6f63 6b65 742e 2020 of the socket. │ │ │ │ │ -00008470: 484f 5720 6361 6e0a 2020 2020 2074 616b HOW can. tak │ │ │ │ │ -00008480: 6520 7468 6520 7661 6c75 6520 2753 656e e the value 'Sen │ │ │ │ │ -00008490: 6427 2c20 2752 6563 6569 7665 2720 6f72 d', 'Receive' or │ │ │ │ │ -000084a0: 2027 426f 7468 272e 0a0a 5345 4520 414c 'Both'...SEE AL │ │ │ │ │ -000084b0: 534f 0a20 2020 2020 2a6e 6f74 6520 536f SO. *note So │ │ │ │ │ -000084c0: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ -000084d0: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ -000084e0: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ -000084f0: 6f64 653a 2053 6f63 6b65 7420 2870 726f ode: Socket (pro │ │ │ │ │ -00008500: 6365 6475 7265 292c 2020 5072 6576 3a20 cedure), Prev: │ │ │ │ │ -00008510: 5368 7574 646f 776e 2028 7072 6f63 6564 Shutdown (proced │ │ │ │ │ -00008520: 7572 6529 2c20 2055 703a 2041 6363 6570 ure), Up: Accep │ │ │ │ │ -00008530: 745f 536f 636b 6574 2028 7072 6f63 6564 t_Socket (proced │ │ │ │ │ -00008540: 7572 6529 0a0a 536f 636b 6574 2028 7072 ure)..Socket (pr │ │ │ │ │ -00008550: 6f63 6564 7572 6529 0a2d 2d2d 2d2d 2d2d ocedure).------- │ │ │ │ │ -00008560: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 -----------..PUR │ │ │ │ │ -00008570: 504f 5345 0a20 2020 2020 4372 6561 7465 POSE. Create │ │ │ │ │ -00008580: 2061 2073 6f63 6b65 7420 6f66 2074 6865 a socket of the │ │ │ │ │ -00008590: 2067 6976 656e 206d 6f64 650a 5052 4f54 given mode.PROT │ │ │ │ │ -000085a0: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ -000085b0: 6f63 6b65 7473 2e53 6f63 6b65 743a 2070 ockets.Socket: p │ │ │ │ │ -000085c0: 726f 6365 6475 7265 2053 6f63 6b65 7420 rocedure Socket │ │ │ │ │ -000085d0: 2853 4f43 4b45 5420 3a20 6f75 7420 536f (SOCKET : out So │ │ │ │ │ -000085e0: 636b 6574 5f46 443b 0a20 2020 2020 2020 cket_FD;. │ │ │ │ │ -000085f0: 2020 2020 2020 2020 444f 4d41 494e 203a DOMAIN : │ │ │ │ │ -00008600: 2053 6f63 6b65 745f 446f 6d61 696e 203a Socket_Domain : │ │ │ │ │ -00008610: 3d20 5046 5f49 4e45 543b 0a20 2020 2020 = PF_INET;. │ │ │ │ │ -00008620: 2020 2020 2020 2020 2020 5459 5020 3a20 TYP : │ │ │ │ │ -00008630: 536f 636b 6574 5f54 7970 6520 3a3d 2053 Socket_Type := S │ │ │ │ │ -00008640: 4f43 4b5f 5354 5245 414d 293b 0a0a 5041 OCK_STREAM);..PA │ │ │ │ │ -00008650: 5241 4d45 5445 5253 0a20 2020 2020 534f RAMETERS. SO │ │ │ │ │ -00008660: 434b 4554 2020 2020 206f 7574 2020 2020 CKET out │ │ │ │ │ -00008670: 2020 2020 536f 636b 6574 206f 626a 6563 Socket objec │ │ │ │ │ -00008680: 7420 746f 2069 6e69 7469 616c 697a 650a t to initialize. │ │ │ │ │ -00008690: 2020 2020 2044 4f4d 4149 4e20 2020 2020 DOMAIN │ │ │ │ │ -000086a0: 696e 2020 2020 2020 2020 2050 726f 746f in Proto │ │ │ │ │ -000086b0: 636f 6c20 6661 6d69 6c79 0a20 2020 2020 col family. │ │ │ │ │ -000086c0: 5459 5020 2020 2020 2020 2069 6e20 2020 TYP in │ │ │ │ │ -000086d0: 2020 2020 2020 4b69 6e64 206f 6620 736f Kind of so │ │ │ │ │ -000086e0: 636b 6574 730a 0a44 4553 4352 4950 5449 ckets..DESCRIPTI │ │ │ │ │ -000086f0: 4f4e 0a20 2020 2020 5468 6973 2070 726f ON. This pro │ │ │ │ │ -00008700: 6365 6475 7265 2069 6e69 7469 616c 697a cedure initializ │ │ │ │ │ -00008710: 6573 2061 206e 6577 2073 6f63 6b65 7420 es a new socket │ │ │ │ │ -00008720: 6f62 6a65 6374 2062 7920 7265 7365 7276 object by reserv │ │ │ │ │ -00008730: 696e 6720 6120 6669 6c65 0a20 2020 2020 ing a file. │ │ │ │ │ -00008740: 6465 7363 7269 7074 6f72 2074 6f20 7468 descriptor to th │ │ │ │ │ -00008750: 6520 6f70 6572 6174 696e 6720 7379 7374 e operating syst │ │ │ │ │ -00008760: 656d 2e20 2046 6f72 2062 6163 6b77 6172 em. For backwar │ │ │ │ │ -00008770: 6420 636f 6d70 6174 6962 696c 6974 790a d compatibility. │ │ │ │ │ -00008780: 2020 2020 2077 6974 6820 6f6c 6465 7220 with older │ │ │ │ │ -00008790: 7665 7273 696f 6e73 206f 6620 7468 6973 versions of this │ │ │ │ │ -000087a0: 206c 6962 7261 7279 2c20 2741 465f 494e library, 'AF_IN │ │ │ │ │ -000087b0: 4554 2720 6973 2073 7469 6c6c 2061 6363 ET' is still acc │ │ │ │ │ -000087c0: 6570 7465 6420 6173 0a20 2020 2020 6120 epted as. a │ │ │ │ │ -000087d0: 7661 6c75 6520 6275 7420 7368 6f75 6c64 value but should │ │ │ │ │ -000087e0: 2062 6520 7265 706c 6163 6564 2061 7320 be replaced as │ │ │ │ │ -000087f0: 736f 6f6e 2061 7320 706f 7373 6962 6c65 soon as possible │ │ │ │ │ -00008800: 2077 6974 6820 7468 6520 7072 6f70 6572 with the proper │ │ │ │ │ -00008810: 0a20 2020 2020 2750 465f 494e 4554 272e . 'PF_INET'. │ │ │ │ │ -00008820: 2020 5573 696e 6720 2753 4f43 4b5f 5354 Using 'SOCK_ST │ │ │ │ │ -00008830: 5245 414d 2720 666f 7220 7468 6520 5459 REAM' for the TY │ │ │ │ │ -00008840: 5020 6172 6775 6d65 6e74 2077 696c 6c20 P argument will │ │ │ │ │ -00008850: 6372 6561 7465 2061 0a20 2020 2020 5443 create a. TC │ │ │ │ │ -00008860: 5020 736f 636b 6574 2077 6869 6c65 2061 P socket while a │ │ │ │ │ -00008870: 2027 534f 434b 5f44 4752 414d 2720 7769 'SOCK_DGRAM' wi │ │ │ │ │ -00008880: 6c6c 2063 7265 6174 6520 6120 5544 5020 ll create a UDP │ │ │ │ │ -00008890: 6f6e 652e 0a0a 4558 414d 504c 450a 0a0a one...EXAMPLE... │ │ │ │ │ -000088a0: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ -000088b0: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ -000088c0: 536f 636b 6574 732e 4d75 6c74 6963 6173 Sockets.Multicas │ │ │ │ │ -000088d0: 7420 7061 636b 6167 652c 2020 4e65 7874 t package, Next │ │ │ │ │ -000088e0: 3a20 536f 636b 6574 732e 4e61 6d69 6e67 : Sockets.Naming │ │ │ │ │ -000088f0: 2070 6163 6b61 6765 2c20 2050 7265 763a package, Prev: │ │ │ │ │ -00008900: 2053 6f63 6b65 7473 2070 6163 6b61 6765 Sockets package │ │ │ │ │ -00008910: 2c20 2055 703a 2054 6f70 0a0a 3520 536f , Up: Top..5 So │ │ │ │ │ -00008920: 636b 6574 732e 4d75 6c74 6963 6173 7420 ckets.Multicast │ │ │ │ │ -00008930: 7061 636b 6167 650a 2a2a 2a2a 2a2a 2a2a package.******** │ │ │ │ │ -00008940: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -00008950: 2a2a 2a0a 0a54 6865 2027 536f 636b 6574 ***..The 'Socket │ │ │ │ │ -00008960: 732e 4d75 6c74 6963 6173 7427 2061 6c6c s.Multicast' all │ │ │ │ │ -00008970: 6f77 7320 7468 6520 6372 6561 7469 6f6e ows the creation │ │ │ │ │ -00008980: 206f 6620 4950 206d 756c 7469 6361 7374 of IP multicast │ │ │ │ │ -00008990: 2073 6f63 6b65 7473 2e0a 0a20 2d2d 2053 sockets... -- S │ │ │ │ │ -000089a0: 6f63 6b65 7473 2e4d 756c 7469 6361 7374 ockets.Multicast │ │ │ │ │ -000089b0: 2e4d 756c 7469 6361 7374 5f53 6f63 6b65 .Multicast_Socke │ │ │ │ │ -000089c0: 745f 4644 3a20 7479 7065 204d 756c 7469 t_FD: type Multi │ │ │ │ │ -000089d0: 6361 7374 5f53 6f63 6b65 745f 4644 2069 cast_Socket_FD i │ │ │ │ │ -000089e0: 730a 2020 2020 2020 2020 2020 6e65 7720 s. new │ │ │ │ │ -000089f0: 536f 636b 6574 5f46 4420 7769 7468 2070 Socket_FD with p │ │ │ │ │ -00008a00: 7269 7661 7465 3b0a 2020 2020 2054 6865 rivate;. The │ │ │ │ │ -00008a10: 2027 4d75 6c74 6963 6173 745f 536f 636b 'Multicast_Sock │ │ │ │ │ -00008a20: 6574 5f46 4427 2074 6167 6765 6420 7479 et_FD' tagged ty │ │ │ │ │ -00008a30: 7065 2064 6572 6976 6573 2066 726f 6d20 pe derives from │ │ │ │ │ -00008a40: 7468 6520 2753 6f63 6b65 745f 4644 270a the 'Socket_FD'. │ │ │ │ │ -00008a50: 2020 2020 2074 7970 652e 2020 4974 2067 type. It g │ │ │ │ │ -00008a60: 6574 7320 696e 6974 6961 6c69 7a65 6420 ets initialized │ │ │ │ │ -00008a70: 6279 2063 616c 6c69 6e67 202a 6e6f 7465 by calling *note │ │ │ │ │ -00008a80: 2043 7265 6174 655f 4d75 6c74 6963 6173 Create_Multicas │ │ │ │ │ -00008a90: 745f 536f 636b 6574 0a20 2020 2020 2866 t_Socket. (f │ │ │ │ │ -00008aa0: 756e 6374 696f 6e29 3a3a 2e20 2041 6e20 unction)::. An │ │ │ │ │ -00008ab0: 756e 696e 6974 6961 6c69 7a65 6420 274d uninitialized 'M │ │ │ │ │ -00008ac0: 756c 7469 6361 7374 5f53 6f63 6b65 745f ulticast_Socket_ │ │ │ │ │ -00008ad0: 4644 2720 6361 6e20 6265 0a20 2020 2020 FD' can be. │ │ │ │ │ -00008ae0: 7375 6363 6573 6675 6c6c 7920 636f 6d70 succesfully comp │ │ │ │ │ -00008af0: 6172 6564 2074 6f20 274e 756c 6c5f 4d75 ared to 'Null_Mu │ │ │ │ │ -00008b00: 6c74 6963 6173 745f 536f 636b 6574 5f46 lticast_Socket_F │ │ │ │ │ -00008b10: 4427 2e0a 0a2a 204d 656e 753a 0a0a 2a20 D'...* Menu:..* │ │ │ │ │ -00008b20: 4372 6561 7465 5f4d 756c 7469 6361 7374 Create_Multicast │ │ │ │ │ -00008b30: 5f53 6f63 6b65 7420 2866 756e 6374 696f _Socket (functio │ │ │ │ │ -00008b40: 6e29 3a3a 0a20 2020 2020 2020 2020 2020 n)::. │ │ │ │ │ -00008b50: 2020 2020 2020 2020 2020 2020 2043 7265 Cre │ │ │ │ │ -00008b60: 6174 6520 616e 2049 5020 6d75 6c74 6963 ate an IP multic │ │ │ │ │ -00008b70: 6173 7420 736f 636b 6574 0a2a 2043 7265 ast socket.* Cre │ │ │ │ │ -00008b80: 6174 655f 4d75 6c74 6963 6173 745f 536f ate_Multicast_So │ │ │ │ │ -00008b90: 636b 6574 2028 6675 6e63 7469 6f6e 293a cket (function): │ │ │ │ │ -00008ba0: 3a0a 2020 2020 2020 2020 2020 2020 2020 :. │ │ │ │ │ -00008bb0: 2020 2020 2020 2020 2020 4372 6561 7465 Create │ │ │ │ │ -00008bc0: 2061 6e20 4950 206d 756c 7469 6361 7374 an IP multicast │ │ │ │ │ -00008bd0: 2073 6f63 6b65 740a 0a1f 0a46 696c 653a socket....File: │ │ │ │ │ -00008be0: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ -00008bf0: 2c20 204e 6f64 653a 2043 7265 6174 655f , Node: Create_ │ │ │ │ │ -00008c00: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ -00008c10: 2028 6675 6e63 7469 6f6e 292c 2020 4e65 (function), Ne │ │ │ │ │ -00008c20: 7874 3a20 4372 6561 7465 5f4d 756c 7469 xt: Create_Multi │ │ │ │ │ -00008c30: 6361 7374 5f53 6f63 6b65 7420 2866 756e cast_Socket (fun │ │ │ │ │ -00008c40: 6374 696f 6e29 2c20 2050 7265 763a 2043 ction), Prev: C │ │ │ │ │ -00008c50: 7265 6174 655f 4d75 6c74 6963 6173 745f reate_Multicast_ │ │ │ │ │ -00008c60: 536f 636b 6574 2028 6675 6e63 7469 6f6e Socket (function │ │ │ │ │ -00008c70: 292c 2020 5570 3a20 536f 636b 6574 732e ), Up: Sockets. │ │ │ │ │ -00008c80: 4d75 6c74 6963 6173 7420 7061 636b 6167 Multicast packag │ │ │ │ │ -00008c90: 650a 0a43 7265 6174 655f 4d75 6c74 6963 e..Create_Multic │ │ │ │ │ -00008ca0: 6173 745f 536f 636b 6574 2028 6675 6e63 ast_Socket (func │ │ │ │ │ -00008cb0: 7469 6f6e 290a 3d3d 3d3d 3d3d 3d3d 3d3d tion).========== │ │ │ │ │ -00008cc0: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ │ -00008cd0: 3d3d 3d3d 3d3d 3d3d 0a0a 5055 5250 4f53 ========..PURPOS │ │ │ │ │ -00008ce0: 450a 2020 2020 2043 7265 6174 6520 616e E. Create an │ │ │ │ │ -00008cf0: 2049 5020 6d75 6c74 6963 6173 7420 736f IP multicast so │ │ │ │ │ -00008d00: 636b 6574 0a50 524f 544f 5459 5045 0a20 cket.PROTOTYPE. │ │ │ │ │ -00008d10: 2020 2020 202d 2d20 536f 636b 6574 732e -- Sockets. │ │ │ │ │ -00008d20: 4d75 6c74 6963 6173 742e 4372 6561 7465 Multicast.Create │ │ │ │ │ -00008d30: 5f4d 756c 7469 6361 7374 5f53 6f63 6b65 _Multicast_Socke │ │ │ │ │ -00008d40: 743a 2066 756e 6374 696f 6e0a 2020 2020 t: function. │ │ │ │ │ -00008d50: 2020 2020 2020 2020 2020 2043 7265 6174 Creat │ │ │ │ │ -00008d60: 655f 4d75 6c74 6963 6173 745f 536f 636b e_Multicast_Sock │ │ │ │ │ -00008d70: 6574 2028 4752 4f55 5020 3a20 5374 7269 et (GROUP : Stri │ │ │ │ │ -00008d80: 6e67 3b20 504f 5254 203a 204e 6174 7572 ng; PORT : Natur │ │ │ │ │ -00008d90: 616c 3b0a 2020 2020 2020 2020 2020 2020 al;. │ │ │ │ │ -00008da0: 2020 2054 544c 203a 2050 6f73 6974 6976 TTL : Positiv │ │ │ │ │ -00008db0: 6520 3a3d 2031 363b 2053 454c 465f 4c4f e := 16; SELF_LO │ │ │ │ │ -00008dc0: 4f50 203a 2042 6f6f 6c65 616e 203a 3d20 OP : Boolean := │ │ │ │ │ -00008dd0: 5472 7565 3b0a 2020 2020 2020 2020 2020 True;. │ │ │ │ │ -00008de0: 2020 2020 204c 4f43 414c 5f49 4620 3a20 LOCAL_IF : │ │ │ │ │ -00008df0: 5374 7269 6e67 203a 3d20 302e 302e 302e String := 0.0.0. │ │ │ │ │ -00008e00: 3029 0a20 2020 2020 2020 2020 2020 2020 0). │ │ │ │ │ -00008e10: 2020 7265 7475 726e 204d 756c 7469 6361 return Multica │ │ │ │ │ -00008e20: 7374 5f53 6f63 6b65 745f 4644 3b0a 0a50 st_Socket_FD;..P │ │ │ │ │ -00008e30: 4152 414d 4554 4552 530a 2020 2020 2047 ARAMETERS. G │ │ │ │ │ -00008e40: 524f 5550 2020 2020 2020 696e 2020 2020 ROUP in │ │ │ │ │ -00008e50: 2020 2020 2049 5020 6164 6472 6573 7320 IP address │ │ │ │ │ -00008e60: 6f66 2074 6865 206d 756c 7469 6361 7374 of the multicast │ │ │ │ │ -00008e70: 2067 726f 7570 2074 6f0a 2020 2020 2020 group to. │ │ │ │ │ -00008e80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00008e90: 2020 2020 206a 6f69 6e0a 2020 2020 2050 join. P │ │ │ │ │ -00008ea0: 4f52 5420 2020 2020 2020 696e 2020 2020 ORT in │ │ │ │ │ -00008eb0: 2020 2020 2050 6f72 7420 6f66 2074 6865 Port of the │ │ │ │ │ -00008ec0: 206d 756c 7469 6361 7374 2067 726f 7570 multicast group │ │ │ │ │ -00008ed0: 2074 6f20 6a6f 696e 0a20 2020 2020 5454 to join. TT │ │ │ │ │ -00008ee0: 4c20 2020 2020 2020 2069 6e20 2020 2020 L in │ │ │ │ │ -00008ef0: 2020 2020 5469 6d65 2d74 6f2d 6c69 7665 Time-to-live │ │ │ │ │ -00008f00: 206f 6620 7365 6e74 2070 6163 6b65 7473 of sent packets │ │ │ │ │ -00008f10: 0a20 2020 2020 5345 4c46 5f4c 4f4f 5020 . SELF_LOOP │ │ │ │ │ -00008f20: 2069 6e20 2020 2020 2020 2020 5368 6f75 in Shou │ │ │ │ │ -00008f30: 6c64 2074 6865 2073 6f63 6b65 7420 7265 ld the socket re │ │ │ │ │ -00008f40: 6365 6976 6520 7468 6520 7061 636b 6574 ceive the packet │ │ │ │ │ -00008f50: 730a 2020 2020 2020 2020 2020 2020 2020 s. │ │ │ │ │ -00008f60: 2020 2020 2020 2020 2020 2020 2073 656e sen │ │ │ │ │ -00008f70: 7420 6672 6f6d 2074 6865 206c 6f63 616c t from the local │ │ │ │ │ -00008f80: 2068 6f73 743f 0a20 2020 2020 4c4f 4341 host?. LOCA │ │ │ │ │ -00008f90: 4c5f 4946 2020 2069 6e20 2020 2020 2020 L_IF in │ │ │ │ │ -00008fa0: 2020 4164 6472 6573 7320 6f66 2074 6865 Address of the │ │ │ │ │ -00008fb0: 206c 6f63 616c 2069 6e74 6572 6661 6365 local interface │ │ │ │ │ -00008fc0: 2074 6f20 7573 650a 0a52 4554 5552 4e20 to use..RETURN │ │ │ │ │ -00008fd0: 5641 4c55 450a 2020 2020 2054 6865 206e VALUE. The n │ │ │ │ │ -00008fe0: 6577 2069 6e69 7469 616c 697a 6564 206d ew initialized m │ │ │ │ │ -00008ff0: 756c 7469 6361 7374 2073 6f63 6b65 740a ulticast socket. │ │ │ │ │ -00009000: 0a44 4553 4352 4950 5449 4f4e 0a20 2020 .DESCRIPTION. │ │ │ │ │ -00009010: 2020 5468 6973 2066 756e 6374 696f 6e20 This function │ │ │ │ │ -00009020: 6372 6561 7465 7320 616e 2049 5020 6d75 creates an IP mu │ │ │ │ │ -00009030: 6c74 6963 6173 7420 736f 636b 6574 2061 lticast socket a │ │ │ │ │ -00009040: 7474 6163 6865 6420 746f 2061 2067 6976 ttached to a giv │ │ │ │ │ -00009050: 656e 0a20 2020 2020 6772 6f75 702c 2069 en. group, i │ │ │ │ │ -00009060: 6465 6e74 6966 6965 6420 6279 2069 7473 dentified by its │ │ │ │ │ -00009070: 2063 6c61 7373 2045 2049 5020 6164 6472 class E IP addr │ │ │ │ │ -00009080: 6573 7320 616e 6420 706f 7274 2e0a 0a20 ess and port... │ │ │ │ │ -00009090: 2020 2020 4265 2063 6172 6566 756c 2077 Be careful w │ │ │ │ │ -000090a0: 6865 6e20 6368 6f6f 7369 6e67 2074 6865 hen choosing the │ │ │ │ │ -000090b0: 2054 544c 2070 6172 616d 6574 6572 206f TTL parameter o │ │ │ │ │ -000090c0: 6620 796f 7572 2049 5020 6d75 6c74 6963 f your IP multic │ │ │ │ │ -000090d0: 6173 740a 2020 2020 2073 6f63 6b65 742e ast. socket. │ │ │ │ │ -000090e0: 2020 4d6f 7374 2049 5020 6d75 6c74 6963 Most IP multic │ │ │ │ │ -000090f0: 6173 7420 726f 7574 6572 7320 646f 2069 ast routers do i │ │ │ │ │ -00009100: 6d70 6c65 6d65 6e74 2074 6872 6573 686f mplement thresho │ │ │ │ │ -00009110: 6c64 2d62 6173 6564 0a20 2020 2020 6669 ld-based. fi │ │ │ │ │ -00009120: 6c74 6572 696e 6720 616e 6420 7769 6c6c ltering and will │ │ │ │ │ -00009130: 206e 6f74 206c 6574 2049 5020 6d75 6c74 not let IP mult │ │ │ │ │ -00009140: 6963 6173 7420 7061 636b 6574 7320 6c65 icast packets le │ │ │ │ │ -00009150: 6176 6520 796f 7572 0a20 2020 2020 6f72 ave your. or │ │ │ │ │ -00009160: 6761 6e69 7a61 7469 6f6e 2069 6620 7468 ganization if th │ │ │ │ │ -00009170: 6520 5454 4c20 6f6e 2074 6865 206c 6173 e TTL on the las │ │ │ │ │ -00009180: 7420 726f 7574 6572 2069 7320 736d 616c t router is smal │ │ │ │ │ -00009190: 6c65 7220 7468 616e 2031 362e 0a0a 2020 ler than 16... │ │ │ │ │ -000091a0: 2020 2049 6620 3020 6973 2067 6976 656e If 0 is given │ │ │ │ │ -000091b0: 2066 6f72 2074 6865 2050 6f72 742c 2061 for the Port, a │ │ │ │ │ -000091c0: 206c 6f63 616c 206f 6e65 2077 696c 6c20 local one will │ │ │ │ │ -000091d0: 6265 2063 686f 7365 6e2e 2020 4974 2063 be chosen. It c │ │ │ │ │ -000091e0: 616e 0a20 2020 2020 7468 656e 206c 6174 an. then lat │ │ │ │ │ -000091f0: 6572 2062 6520 7265 7472 6965 7665 6420 er be retrieved │ │ │ │ │ -00009200: 7573 696e 6720 4765 745f 536f 636b 5f50 using Get_Sock_P │ │ │ │ │ -00009210: 6f72 742e 0a0a 4558 414d 504c 450a 0a0a ort...EXAMPLE... │ │ │ │ │ -00009220: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ -00009230: 6f74 6520 5365 6e64 2028 7072 6f63 6564 ote Send (proced │ │ │ │ │ -00009240: 7572 6529 3a3a 2c0a 2020 2020 202a 6e6f ure)::,. *no │ │ │ │ │ -00009250: 7465 2053 6875 7464 6f77 6e20 2870 726f te Shutdown (pro │ │ │ │ │ -00009260: 6365 6475 7265 293a 3a2e 0a0a 2a20 4d65 cedure)::...* Me │ │ │ │ │ -00009270: 6e75 3a0a 0a2a 203a 3a0a 0a43 7265 6174 nu:..* ::..Creat │ │ │ │ │ -00009280: 655f 4d75 6c74 6963 6173 745f 536f 636b e_Multicast_Sock │ │ │ │ │ -00009290: 6574 2028 6675 6e63 7469 6f6e 290a 2d2d et (function).-- │ │ │ │ │ -000092a0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -000092b0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -000092c0: 0a0a 5055 5250 4f53 450a 2020 2020 2043 ..PURPOSE. C │ │ │ │ │ -000092d0: 7265 6174 6520 616e 2049 5020 6d75 6c74 reate an IP mult │ │ │ │ │ -000092e0: 6963 6173 7420 736f 636b 6574 0a50 524f icast socket.PRO │ │ │ │ │ -000092f0: 544f 5459 5045 0a20 2020 2020 202d 2d20 TOTYPE. -- │ │ │ │ │ -00009300: 536f 636b 6574 732e 4d75 6c74 6963 6173 Sockets.Multicas │ │ │ │ │ -00009310: 742e 4372 6561 7465 5f4d 756c 7469 6361 t.Create_Multica │ │ │ │ │ -00009320: 7374 5f53 6f63 6b65 743a 2066 756e 6374 st_Socket: funct │ │ │ │ │ -00009330: 696f 6e0a 2020 2020 2020 2020 2020 2020 ion. │ │ │ │ │ -00009340: 2020 2043 7265 6174 655f 4d75 6c74 6963 Create_Multic │ │ │ │ │ -00009350: 6173 745f 536f 636b 6574 2028 4752 4f55 ast_Socket (GROU │ │ │ │ │ -00009360: 5020 3a20 5374 7269 6e67 3b20 504f 5254 P : String; PORT │ │ │ │ │ -00009370: 203a 2050 6f73 6974 6976 653b 0a20 2020 : Positive;. │ │ │ │ │ -00009380: 2020 2020 2020 2020 2020 2020 4c4f 4341 LOCA │ │ │ │ │ -00009390: 4c5f 504f 5254 203a 204e 6174 7572 616c L_PORT : Natural │ │ │ │ │ -000093a0: 3b20 5454 4c20 3a20 506f 7369 7469 7665 ; TTL : Positive │ │ │ │ │ -000093b0: 203a 3d20 3136 3b0a 2020 2020 2020 2020 := 16;. │ │ │ │ │ -000093c0: 2020 2020 2020 204c 4f43 414c 5f49 4620 LOCAL_IF │ │ │ │ │ -000093d0: 3a20 5374 7269 6e67 203a 3d20 302e 302e : String := 0.0. │ │ │ │ │ -000093e0: 302e 3029 0a20 2020 2020 2020 2020 2020 0.0). │ │ │ │ │ -000093f0: 2020 2020 7265 7475 726e 204d 756c 7469 return Multi │ │ │ │ │ -00009400: 6361 7374 5f53 6f63 6b65 745f 4644 3b0a cast_Socket_FD;. │ │ │ │ │ -00009410: 0a50 4152 414d 4554 4552 530a 2020 2020 .PARAMETERS. │ │ │ │ │ -00009420: 2047 524f 5550 2020 2020 2020 696e 2020 GROUP in │ │ │ │ │ -00009430: 2020 2020 2020 2049 5020 6164 6472 6573 IP addres │ │ │ │ │ -00009440: 7320 6f66 2074 6865 206d 756c 7469 6361 s of the multica │ │ │ │ │ -00009450: 7374 2067 726f 7570 2074 6f0a 2020 2020 st group to. │ │ │ │ │ -00009460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00009470: 2020 2020 2020 206a 6f69 6e0a 2020 2020 join. │ │ │ │ │ -00009480: 2050 4f52 5420 2020 2020 2020 696e 2020 PORT in │ │ │ │ │ -00009490: 2020 2020 2020 2050 6f72 7420 6f66 2074 Port of t │ │ │ │ │ -000094a0: 6865 206d 756c 7469 6361 7374 2067 726f he multicast gro │ │ │ │ │ -000094b0: 7570 2074 6f20 6a6f 696e 0a20 2020 2020 up to join. │ │ │ │ │ -000094c0: 4c4f 4341 4c5f 504f 5254 2069 6e20 2020 LOCAL_PORT in │ │ │ │ │ -000094d0: 2020 2020 2020 4c6f 6361 6c20 706f 7274 Local port │ │ │ │ │ -000094e0: 206e 756d 6265 7220 746f 2075 7365 0a20 number to use. │ │ │ │ │ -000094f0: 2020 2020 5454 4c20 2020 2020 2020 2069 TTL i │ │ │ │ │ -00009500: 6e20 2020 2020 2020 2020 5469 6d65 2d74 n Time-t │ │ │ │ │ -00009510: 6f2d 6c69 7665 206f 6620 7365 6e74 2070 o-live of sent p │ │ │ │ │ -00009520: 6163 6b65 7473 0a20 2020 2020 4c4f 4341 ackets. LOCA │ │ │ │ │ -00009530: 4c5f 4946 2020 2069 6e20 2020 2020 2020 L_IF in │ │ │ │ │ -00009540: 2020 4164 6472 6573 7320 6f66 2074 6865 Address of the │ │ │ │ │ -00009550: 206c 6f63 616c 2069 6e74 6572 6661 6365 local interface │ │ │ │ │ -00009560: 2074 6f20 7573 650a 0a52 4554 5552 4e20 to use..RETURN │ │ │ │ │ -00009570: 5641 4c55 450a 2020 2020 2054 6865 206e VALUE. The n │ │ │ │ │ -00009580: 6577 2069 6e69 7469 616c 697a 6564 206d ew initialized m │ │ │ │ │ -00009590: 756c 7469 6361 7374 2073 6f63 6b65 740a ulticast socket. │ │ │ │ │ -000095a0: 0a44 4553 4352 4950 5449 4f4e 0a20 2020 .DESCRIPTION. │ │ │ │ │ -000095b0: 2020 5468 6973 2066 756e 6374 696f 6e20 This function │ │ │ │ │ -000095c0: 6372 6561 7465 7320 616e 2049 5020 6d75 creates an IP mu │ │ │ │ │ -000095d0: 6c74 6963 6173 7420 736f 636b 6574 2061 lticast socket a │ │ │ │ │ -000095e0: 7474 6163 6865 6420 746f 2061 2067 6976 ttached to a giv │ │ │ │ │ -000095f0: 656e 0a20 2020 2020 6772 6f75 702c 2069 en. group, i │ │ │ │ │ -00009600: 6465 6e74 6966 6965 6420 6279 2069 7473 dentified by its │ │ │ │ │ -00009610: 2063 6c61 7373 2045 2049 5020 6164 6472 class E IP addr │ │ │ │ │ -00009620: 6573 7320 616e 6420 706f 7274 2e20 2049 ess and port. I │ │ │ │ │ -00009630: 660a 2020 2020 204c 6f63 616c 5f50 6f72 f. Local_Por │ │ │ │ │ -00009640: 7420 6973 2030 2c20 6120 6672 6565 2070 t is 0, a free p │ │ │ │ │ -00009650: 6f72 7420 7769 6c6c 2061 7574 6f6d 6174 ort will automat │ │ │ │ │ -00009660: 6963 616c 6c79 2062 6520 6368 6f73 656e ically be chosen │ │ │ │ │ -00009670: 2062 7920 796f 7572 0a20 2020 2020 6f70 by your. op │ │ │ │ │ -00009680: 6572 6174 696e 6720 7379 7374 656d 2e0a erating system.. │ │ │ │ │ -00009690: 0a20 2020 2020 5468 6973 2066 756e 6374 . This funct │ │ │ │ │ -000096a0: 696f 6e20 7368 6f75 6c64 2062 6520 7573 ion should be us │ │ │ │ │ -000096b0: 6564 2077 6865 6e20 796f 7520 7761 6e74 ed when you want │ │ │ │ │ -000096c0: 2074 6f20 7365 6e64 2070 6163 6b65 7473 to send packets │ │ │ │ │ -000096d0: 2074 6f20 610a 2020 2020 206d 756c 7469 to a. multi │ │ │ │ │ -000096e0: 6361 7374 2067 726f 7570 2077 6974 686f cast group witho │ │ │ │ │ -000096f0: 7574 2072 6563 6569 7669 6e67 2061 6e79 ut receiving any │ │ │ │ │ -00009700: 2070 6163 6b65 7420 796f 7572 7365 6c66 packet yourself │ │ │ │ │ -00009710: 2e0a 0a45 5841 4d50 4c45 0a0a 0a53 4545 ...EXAMPLE...SEE │ │ │ │ │ -00009720: 2041 4c53 4f0a 2020 2020 202a 6e6f 7465 ALSO. *note │ │ │ │ │ -00009730: 2053 656e 6420 2870 726f 6365 6475 7265 Send (procedure │ │ │ │ │ -00009740: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ -00009750: 5368 7574 646f 776e 2028 7072 6f63 6564 Shutdown (proced │ │ │ │ │ -00009760: 7572 6529 3a3a 2e0a 0a1f 0a46 696c 653a ure)::.....File: │ │ │ │ │ -00009770: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ -00009780: 2c20 204e 6f64 653a 2053 6f63 6b65 7473 , Node: Sockets │ │ │ │ │ -00009790: 2e4e 616d 696e 6720 7061 636b 6167 652c .Naming package, │ │ │ │ │ -000097a0: 2020 4e65 7874 3a20 436f 6e74 7269 6275 Next: Contribu │ │ │ │ │ -000097b0: 746f 7273 2c20 2050 7265 763a 2053 6f63 tors, Prev: Soc │ │ │ │ │ -000097c0: 6b65 7473 2e4d 756c 7469 6361 7374 2070 kets.Multicast p │ │ │ │ │ -000097d0: 6163 6b61 6765 2c20 2055 703a 2054 6f70 ackage, Up: Top │ │ │ │ │ -000097e0: 0a0a 3620 536f 636b 6574 732e 4e61 6d69 ..6 Sockets.Nami │ │ │ │ │ -000097f0: 6e67 2070 6163 6b61 6765 0a2a 2a2a 2a2a ng package.***** │ │ │ │ │ -00009800: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -00009810: 2a2a 2a0a 0a54 6865 2027 536f 636b 6574 ***..The 'Socket │ │ │ │ │ -00009820: 732e 4e61 6d69 6e67 2720 7061 636b 6167 s.Naming' packag │ │ │ │ │ -00009830: 6520 636f 6e74 6169 6e73 2074 7970 6573 e contains types │ │ │ │ │ -00009840: 2061 6e64 2068 656c 7065 7220 6675 6e63 and helper func │ │ │ │ │ -00009850: 7469 6f6e 7320 6e65 6564 6564 0a74 6f20 tions needed.to │ │ │ │ │ -00009860: 6d61 6e69 7075 6c61 7465 2049 6e74 6572 manipulate Inter │ │ │ │ │ -00009870: 6e65 7420 686f 7374 206e 616d 6573 2061 net host names a │ │ │ │ │ -00009880: 6e64 2061 6464 7265 7373 6573 2e0a 0a20 nd addresses... │ │ │ │ │ -00009890: 2d2d 2053 6f63 6b65 7473 2e4e 616d 696e -- Sockets.Namin │ │ │ │ │ -000098a0: 672e 4164 6472 6573 733a 2074 7970 6520 g.Address: type │ │ │ │ │ -000098b0: 4164 6472 6573 7320 6973 2072 6563 6f72 Address is recor │ │ │ │ │ -000098c0: 640a 2020 2020 2020 2020 2020 2020 4831 d. H1 │ │ │ │ │ -000098d0: 2c20 4832 2c20 4833 2c20 4834 203a 2041 , H2, H3, H4 : A │ │ │ │ │ -000098e0: 6464 7265 7373 5f43 6f6d 706f 6e65 6e74 ddress_Component │ │ │ │ │ -000098f0: 3b0a 2020 2020 2020 2020 2020 656e 6420 ;. end │ │ │ │ │ -00009900: 7265 636f 7264 3b0a 2020 2020 2054 6869 record;. Thi │ │ │ │ │ -00009910: 7320 7479 7065 2072 6570 7265 7365 6e74 s type represent │ │ │ │ │ -00009920: 7320 616e 2049 5076 3420 6164 6472 6573 s an IPv4 addres │ │ │ │ │ -00009930: 7320 7769 7468 2027 4831 2720 6265 696e s with 'H1' bein │ │ │ │ │ -00009940: 6720 7468 6520 6669 7273 740a 2020 2020 g the first. │ │ │ │ │ -00009950: 206f 6374 6574 2061 6e64 2027 4834 2720 octet and 'H4' │ │ │ │ │ -00009960: 7468 6520 6c61 7374 206f 6e65 2e20 2046 the last one. F │ │ │ │ │ -00009970: 6f72 2065 7861 6d70 6c65 2c20 3133 372e or example, 137. │ │ │ │ │ -00009980: 3139 342e 3136 312e 3220 6973 0a20 2020 194.161.2 is. │ │ │ │ │ -00009990: 2020 7265 7072 6573 656e 7465 6420 6279 represented by │ │ │ │ │ -000099a0: 2027 4831 3d31 3337 2c20 4832 3d31 3934 'H1=137, H2=194 │ │ │ │ │ -000099b0: 2c20 4833 3d31 3631 2c20 4834 3d32 272e , H3=161, H4=2'. │ │ │ │ │ -000099c0: 0a0a 202d 2d20 536f 636b 6574 732e 4e61 .. -- Sockets.Na │ │ │ │ │ -000099d0: 6d69 6e67 2e41 6464 7265 7373 5f41 7272 ming.Address_Arr │ │ │ │ │ -000099e0: 6179 3a20 7479 7065 2041 6464 7265 7373 ay: type Address │ │ │ │ │ -000099f0: 5f41 7272 6179 2069 7320 6172 7261 7920 _Array is array │ │ │ │ │ -00009a00: 2850 6f73 6974 6976 650a 2020 2020 2020 (Positive. │ │ │ │ │ -00009a10: 2020 2020 7261 6e67 6520 3c3e 2920 6f66 range <>) of │ │ │ │ │ -00009a20: 2041 6464 7265 7373 3b0a 2020 2020 2048 Address;. H │ │ │ │ │ -00009a30: 656c 7065 7220 7479 7065 0a0a 202d 2d20 elper type.. -- │ │ │ │ │ -00009a40: 536f 636b 6574 732e 4e61 6d69 6e67 2e41 Sockets.Naming.A │ │ │ │ │ -00009a50: 6464 7265 7373 5f43 6f6d 706f 6e65 6e74 ddress_Component │ │ │ │ │ -00009a60: 3a20 7479 7065 2041 6464 7265 7373 5f43 : type Address_C │ │ │ │ │ -00009a70: 6f6d 706f 6e65 6e74 2069 7320 4e61 7475 omponent is Natu │ │ │ │ │ -00009a80: 7261 6c0a 2020 2020 2020 2020 2020 7261 ral. ra │ │ │ │ │ -00009a90: 6e67 6520 3020 2e2e 2032 3535 3b0a 2020 nge 0 .. 255;. │ │ │ │ │ -00009aa0: 2020 2048 656c 7065 7220 7479 7065 0a0a Helper type.. │ │ │ │ │ -00009ab0: 202d 2d20 536f 636b 6574 732e 4e61 6d69 -- Sockets.Nami │ │ │ │ │ -00009ac0: 6e67 2e48 6f73 745f 456e 7472 793a 2074 ng.Host_Entry: t │ │ │ │ │ -00009ad0: 7970 6520 486f 7374 5f45 6e74 7279 2028 ype Host_Entry ( │ │ │ │ │ -00009ae0: 4e5f 416c 6961 7365 732c 204e 5f41 6464 N_Aliases, N_Add │ │ │ │ │ -00009af0: 7265 7373 6573 203a 0a20 2020 2020 2020 resses :. │ │ │ │ │ -00009b00: 2020 204e 6174 7572 616c 2920 6973 206e Natural) is n │ │ │ │ │ -00009b10: 6577 2041 6461 2e46 696e 616c 697a 6174 ew Ada.Finalizat │ │ │ │ │ -00009b20: 696f 6e2e 436f 6e74 726f 6c6c 6564 2077 ion.Controlled w │ │ │ │ │ -00009b30: 6974 6820 7265 636f 7264 0a20 2020 2020 ith record. │ │ │ │ │ -00009b40: 2020 2020 2020 2020 4e61 6d65 203a 2053 Name : S │ │ │ │ │ -00009b50: 7472 696e 675f 4163 6365 7373 3b0a 2020 tring_Access;. │ │ │ │ │ -00009b60: 2020 2020 2020 2020 2020 2041 6c69 6173 Alias │ │ │ │ │ -00009b70: 6573 203a 2053 7472 696e 675f 4172 7261 es : String_Arra │ │ │ │ │ -00009b80: 7920 2831 202e 2e20 4e5f 416c 6961 7365 y (1 .. N_Aliase │ │ │ │ │ -00009b90: 7329 3b0a 2020 2020 2020 2020 2020 2020 s);. │ │ │ │ │ -00009ba0: 2041 6464 7265 7373 6573 203a 2041 6464 Addresses : Add │ │ │ │ │ -00009bb0: 7265 7373 5f41 7272 6179 2028 3120 2e2e ress_Array (1 .. │ │ │ │ │ -00009bc0: 204e 5f41 6464 7265 7373 6573 293b 0a20 N_Addresses);. │ │ │ │ │ -00009bd0: 2020 2020 2020 2020 2065 6e64 2072 6563 end rec │ │ │ │ │ -00009be0: 6f72 643b 0a20 2020 2020 5468 6520 2748 ord;. The 'H │ │ │ │ │ -00009bf0: 6f73 745f 456e 7472 7927 2074 7970 6520 ost_Entry' type │ │ │ │ │ -00009c00: 686f 6c64 7320 6120 7365 7420 6f66 206e holds a set of n │ │ │ │ │ -00009c10: 616d 6573 2061 6e64 2049 5020 6164 6472 ames and IP addr │ │ │ │ │ -00009c20: 6573 7365 730a 2020 2020 2061 7373 6f63 esses. assoc │ │ │ │ │ -00009c30: 6961 7465 6420 7769 7468 2061 2068 6f73 iated with a hos │ │ │ │ │ -00009c40: 742e 2020 4561 6368 2068 6f73 7420 6361 t. Each host ca │ │ │ │ │ -00009c50: 6e20 6861 7665 2073 6576 6572 616c 2049 n have several I │ │ │ │ │ -00009c60: 5020 6164 6472 6573 7320 6173 0a20 2020 P address as. │ │ │ │ │ -00009c70: 2020 7765 6c6c 2061 7320 7365 7665 7261 well as severa │ │ │ │ │ -00009c80: 6c20 616c 6961 7365 732e 0a0a 202d 2d20 l aliases... -- │ │ │ │ │ -00009c90: 536f 636b 6574 732e 4e61 6d69 6e67 2e53 Sockets.Naming.S │ │ │ │ │ -00009ca0: 7472 696e 675f 4163 6365 7373 3a20 7479 tring_Access: ty │ │ │ │ │ -00009cb0: 7065 2053 7472 696e 675f 4163 6365 7373 pe String_Access │ │ │ │ │ -00009cc0: 2069 7320 6163 6365 7373 2053 7472 696e is access Strin │ │ │ │ │ -00009cd0: 673b 0a20 2020 2020 4865 6c70 6572 2074 g;. Helper t │ │ │ │ │ -00009ce0: 7970 650a 0a20 2d2d 2053 6f63 6b65 7473 ype.. -- Sockets │ │ │ │ │ -00009cf0: 2e4e 616d 696e 672e 5374 7269 6e67 5f41 .Naming.String_A │ │ │ │ │ -00009d00: 7272 6179 3a20 7479 7065 2053 7472 696e rray: type Strin │ │ │ │ │ -00009d10: 675f 4172 7261 7920 6973 2061 7272 6179 g_Array is array │ │ │ │ │ -00009d20: 2028 506f 7369 7469 7665 0a20 2020 2020 (Positive. │ │ │ │ │ -00009d30: 2020 2020 2072 616e 6765 203c 3e29 206f range <>) o │ │ │ │ │ -00009d40: 6620 5374 7269 6e67 5f41 6363 6573 733b f String_Access; │ │ │ │ │ -00009d50: 0a20 2020 2020 4865 6c70 6572 2074 7970 . Helper typ │ │ │ │ │ -00009d60: 650a 0a2a 204d 656e 753a 0a0a 2a20 4164 e..* Menu:..* Ad │ │ │ │ │ -00009d70: 6472 6573 735f 4f66 2028 6675 6e63 7469 dress_Of (functi │ │ │ │ │ -00009d80: 6f6e 293a 3a0a 2020 2020 2020 2020 2020 on)::. │ │ │ │ │ -00009d90: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ -00009da0: 7420 7468 6520 4950 2061 6464 7265 7373 t the IP address │ │ │ │ │ -00009db0: 206f 6620 6120 686f 7374 0a2a 2041 6e79 of a host.* Any │ │ │ │ │ -00009dc0: 5f41 6464 7265 7373 2028 6675 6e63 7469 _Address (functi │ │ │ │ │ -00009dd0: 6f6e 293a 3a0a 2020 2020 2020 2020 2020 on)::. │ │ │ │ │ -00009de0: 2020 2020 2020 2020 2020 2020 2020 5370 Sp │ │ │ │ │ -00009df0: 6563 6961 6c20 6164 6472 6573 7320 7265 ecial address re │ │ │ │ │ -00009e00: 7072 6573 656e 7469 6e67 2061 6e79 2061 presenting any a │ │ │ │ │ -00009e10: 6464 7265 7373 206f 6e20 7468 6520 6c6f ddress on the lo │ │ │ │ │ -00009e20: 6361 6c20 686f 7374 0a2a 2047 6574 5f50 cal host.* Get_P │ │ │ │ │ -00009e30: 6565 725f 4164 6472 2028 6675 6e63 7469 eer_Addr (functi │ │ │ │ │ -00009e40: 6f6e 293a 3a0a 2020 2020 2020 2020 2020 on)::. │ │ │ │ │ -00009e50: 2020 2020 2020 2020 2020 2020 2020 5265 Re │ │ │ │ │ -00009e60: 7472 6965 7665 2049 5020 6164 6472 6573 trieve IP addres │ │ │ │ │ -00009e70: 7320 6f66 2072 656d 6f74 6520 686f 7374 s of remote host │ │ │ │ │ -00009e80: 0a2a 2047 6574 5f50 6565 725f 506f 7274 .* Get_Peer_Port │ │ │ │ │ -00009e90: 2028 6675 6e63 7469 6f6e 293a 3a0a 2020 (function)::. │ │ │ │ │ -00009ea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00009eb0: 2020 2020 2020 5265 7472 6965 7665 2070 Retrieve p │ │ │ │ │ -00009ec0: 6f72 7420 7573 6564 2062 7920 7265 6d6f ort used by remo │ │ │ │ │ -00009ed0: 7465 2068 6f73 740a 2a20 4765 745f 536f te host.* Get_So │ │ │ │ │ -00009ee0: 636b 5f41 6464 7220 2866 756e 6374 696f ck_Addr (functio │ │ │ │ │ -00009ef0: 6e29 3a3a 0a20 2020 2020 2020 2020 2020 n)::. │ │ │ │ │ -00009f00: 2020 2020 2020 2020 2020 2020 2052 6574 Ret │ │ │ │ │ -00009f10: 7269 6576 6520 4950 2061 6464 7265 7373 rieve IP address │ │ │ │ │ -00009f20: 206f 6620 6c6f 6361 6c20 686f 7374 0a2a of local host.* │ │ │ │ │ -00009f30: 2047 6574 5f53 6f63 6b5f 506f 7274 2028 Get_Sock_Port ( │ │ │ │ │ -00009f40: 6675 6e63 7469 6f6e 293a 3a0a 2020 2020 function)::. │ │ │ │ │ -00009f50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00009f60: 2020 2020 5265 7472 6965 7665 2070 6f72 Retrieve por │ │ │ │ │ -00009f70: 7420 7573 6564 2062 7920 6c6f 6361 6c20 t used by local │ │ │ │ │ -00009f80: 686f 7374 0a2a 2048 6f73 745f 4e61 6d65 host.* Host_Name │ │ │ │ │ -00009f90: 2028 6675 6e63 7469 6f6e 293a 3a0a 2020 (function)::. │ │ │ │ │ -00009fa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00009fb0: 2020 2020 2020 4765 7420 7468 6520 6e61 Get the na │ │ │ │ │ -00009fc0: 6d65 206f 6620 7468 6520 6375 7272 656e me of the curren │ │ │ │ │ -00009fd0: 7420 686f 7374 0a2a 2049 6d61 6765 2028 t host.* Image ( │ │ │ │ │ -00009fe0: 6675 6e63 7469 6f6e 293a 3a20 2020 204d function):: M │ │ │ │ │ -00009ff0: 616b 6520 6120 7374 7269 6e67 2066 726f ake a string fro │ │ │ │ │ -0000a000: 6d20 616e 2061 6464 7265 7373 0a2a 2049 m an address.* I │ │ │ │ │ -0000a010: 6e66 6f5f 4f66 5f4e 616d 655f 4f72 5f49 nfo_Of_Name_Or_I │ │ │ │ │ -0000a020: 5020 2866 756e 6374 696f 6e29 3a3a 0a20 P (function)::. │ │ │ │ │ -0000a030: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000a040: 2020 2020 2020 2047 6574 2061 6464 7265 Get addre │ │ │ │ │ -0000a050: 7373 6573 2061 6e64 206e 616d 6573 206f sses and names o │ │ │ │ │ -0000a060: 6620 6120 686f 7374 0a2a 2049 735f 4950 f a host.* Is_IP │ │ │ │ │ -0000a070: 5f41 6464 7265 7373 2028 6675 6e63 7469 _Address (functi │ │ │ │ │ -0000a080: 6f6e 293a 3a0a 2020 2020 2020 2020 2020 on)::. │ │ │ │ │ -0000a090: 2020 2020 2020 2020 2020 2020 2020 4368 Ch │ │ │ │ │ -0000a0a0: 6563 6b20 6966 2067 6976 656e 2073 7472 eck if given str │ │ │ │ │ -0000a0b0: 696e 6720 6973 2061 2076 616c 6964 2049 ing is a valid I │ │ │ │ │ -0000a0c0: 5020 6164 6472 6573 730a 2a20 4e61 6d65 P address.* Name │ │ │ │ │ -0000a0d0: 5f4f 6620 2866 756e 6374 696f 6e29 3a3a _Of (function):: │ │ │ │ │ -0000a0e0: 2020 4f66 6669 6369 616c 206e 616d 6520 Official name │ │ │ │ │ -0000a0f0: 6f66 2074 6865 2068 6f73 740a 2a20 5661 of the host.* Va │ │ │ │ │ -0000a100: 6c75 6520 2866 756e 6374 696f 6e29 3a3a lue (function):: │ │ │ │ │ -0000a110: 2020 2020 5472 616e 7366 6f72 6d20 6120 Transform a │ │ │ │ │ -0000a120: 7374 7269 6e67 2069 6e74 6f20 616e 2061 string into an a │ │ │ │ │ -0000a130: 6464 7265 7373 0a0a 1f0a 4669 6c65 3a20 ddress....File: │ │ │ │ │ -0000a140: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ -0000a150: 2020 4e6f 6465 3a20 4164 6472 6573 735f Node: Address_ │ │ │ │ │ -0000a160: 4f66 2028 6675 6e63 7469 6f6e 292c 2020 Of (function), │ │ │ │ │ -0000a170: 4e65 7874 3a20 416e 795f 4164 6472 6573 Next: Any_Addres │ │ │ │ │ -0000a180: 7320 2866 756e 6374 696f 6e29 2c20 2055 s (function), U │ │ │ │ │ -0000a190: 703a 2053 6f63 6b65 7473 2e4e 616d 696e p: Sockets.Namin │ │ │ │ │ -0000a1a0: 6720 7061 636b 6167 650a 0a41 6464 7265 g package..Addre │ │ │ │ │ -0000a1b0: 7373 5f4f 6620 2866 756e 6374 696f 6e29 ss_Of (function) │ │ │ │ │ -0000a1c0: 0a3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d .=============== │ │ │ │ │ -0000a1d0: 3d3d 3d3d 3d3d 0a0a 5055 5250 4f53 450a ======..PURPOSE. │ │ │ │ │ -0000a1e0: 2020 2020 2047 6574 2074 6865 2049 5020 Get the IP │ │ │ │ │ -0000a1f0: 6164 6472 6573 7320 6f66 2061 2068 6f73 address of a hos │ │ │ │ │ -0000a200: 740a 5052 4f54 4f54 5950 450a 2020 2020 t.PROTOTYPE. │ │ │ │ │ -0000a210: 2020 2d2d 2053 6f63 6b65 7473 2e4e 616d -- Sockets.Nam │ │ │ │ │ -0000a220: 696e 672e 4164 6472 6573 735f 4f66 3a20 ing.Address_Of: │ │ │ │ │ -0000a230: 6675 6e63 7469 6f6e 2041 6464 7265 7373 function Address │ │ │ │ │ -0000a240: 5f4f 660a 2020 2020 2020 2020 2020 2020 _Of. │ │ │ │ │ -0000a250: 2020 2028 534f 4d45 5448 494e 4720 3a20 (SOMETHING : │ │ │ │ │ -0000a260: 5374 7269 6e67 290a 2020 2020 2020 2020 String). │ │ │ │ │ -0000a270: 2020 2020 2020 2072 6574 7572 6e20 4164 return Ad │ │ │ │ │ -0000a280: 6472 6573 733b 0a0a 5041 5241 4d45 5445 dress;..PARAMETE │ │ │ │ │ -0000a290: 5253 0a20 2020 2020 534f 4d45 5448 494e RS. SOMETHIN │ │ │ │ │ -0000a2a0: 4720 2069 6e20 2020 2020 2020 2020 486f G in Ho │ │ │ │ │ -0000a2b0: 7374 206e 616d 6520 6f72 2049 5020 6164 st name or IP ad │ │ │ │ │ -0000a2c0: 6472 6573 730a 0a52 4554 5552 4e20 5641 dress..RETURN VA │ │ │ │ │ -0000a2d0: 4c55 450a 2020 2020 2049 5076 3420 6164 LUE. IPv4 ad │ │ │ │ │ -0000a2e0: 6472 6573 730a 0a45 5843 4550 5449 4f4e dress..EXCEPTION │ │ │ │ │ -0000a2f0: 530a 2020 2020 2027 4e61 6d69 6e67 5f45 S. 'Naming_E │ │ │ │ │ -0000a300: 7272 6f72 2720 2020 2020 4e6f 2069 6e66 rror' No inf │ │ │ │ │ -0000a310: 6f72 6d61 7469 6f6e 2061 7661 696c 6162 ormation availab │ │ │ │ │ -0000a320: 6c65 2066 6f72 2074 6869 7320 6e61 6d65 le for this name │ │ │ │ │ -0000a330: 206f 720a 2020 2020 2020 2020 2020 2020 or. │ │ │ │ │ -0000a340: 2020 2020 2020 2020 2020 2020 6164 6472 addr │ │ │ │ │ -0000a350: 6573 730a 0a53 4545 2041 4c53 4f0a 2020 ess..SEE ALSO. │ │ │ │ │ -0000a360: 2020 202a 6e6f 7465 204e 616d 655f 4f66 *note Name_Of │ │ │ │ │ -0000a370: 2028 6675 6e63 7469 6f6e 293a 3a2e 0a0a (function)::... │ │ │ │ │ -0000a380: 2a20 4d65 6e75 3a0a 0a2a 2041 6e79 5f41 * Menu:..* Any_A │ │ │ │ │ -0000a390: 6464 7265 7373 2028 6675 6e63 7469 6f6e ddress (function │ │ │ │ │ -0000a3a0: 293a 3a0a 2a20 4765 745f 5065 6572 5f41 )::.* Get_Peer_A │ │ │ │ │ -0000a3b0: 6464 7220 2866 756e 6374 696f 6e29 3a3a ddr (function):: │ │ │ │ │ -0000a3c0: 0a2a 2047 6574 5f50 6565 725f 506f 7274 .* Get_Peer_Port │ │ │ │ │ -0000a3d0: 2028 6675 6e63 7469 6f6e 293a 3a0a 2a20 (function)::.* │ │ │ │ │ -0000a3e0: 4765 745f 536f 636b 5f41 6464 7220 2866 Get_Sock_Addr (f │ │ │ │ │ -0000a3f0: 756e 6374 696f 6e29 3a3a 0a2a 2047 6574 unction)::.* Get │ │ │ │ │ -0000a400: 5f53 6f63 6b5f 506f 7274 2028 6675 6e63 _Sock_Port (func │ │ │ │ │ -0000a410: 7469 6f6e 293a 3a0a 2a20 486f 7374 5f4e tion)::.* Host_N │ │ │ │ │ -0000a420: 616d 6520 2866 756e 6374 696f 6e29 3a3a ame (function):: │ │ │ │ │ -0000a430: 0a2a 2049 6d61 6765 2028 6675 6e63 7469 .* Image (functi │ │ │ │ │ -0000a440: 6f6e 293a 3a0a 2a20 496e 666f 5f4f 665f on)::.* Info_Of_ │ │ │ │ │ -0000a450: 4e61 6d65 5f4f 725f 4950 2028 6675 6e63 Name_Or_IP (func │ │ │ │ │ -0000a460: 7469 6f6e 293a 3a0a 2a20 4973 5f49 505f tion)::.* Is_IP_ │ │ │ │ │ -0000a470: 4164 6472 6573 7320 2866 756e 6374 696f Address (functio │ │ │ │ │ -0000a480: 6e29 3a3a 0a2a 204e 616d 655f 4f66 2028 n)::.* Name_Of ( │ │ │ │ │ -0000a490: 6675 6e63 7469 6f6e 293a 3a0a 2a20 5661 function)::.* Va │ │ │ │ │ -0000a4a0: 6c75 6520 2866 756e 6374 696f 6e29 3a3a lue (function):: │ │ │ │ │ -0000a4b0: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ -0000a4c0: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ -0000a4d0: 3a20 416e 795f 4164 6472 6573 7320 2866 : Any_Address (f │ │ │ │ │ -0000a4e0: 756e 6374 696f 6e29 2c20 204e 6578 743a unction), Next: │ │ │ │ │ -0000a4f0: 2047 6574 5f50 6565 725f 4164 6472 2028 Get_Peer_Addr ( │ │ │ │ │ -0000a500: 6675 6e63 7469 6f6e 292c 2020 5072 6576 function), Prev │ │ │ │ │ -0000a510: 3a20 4164 6472 6573 735f 4f66 2028 6675 : Address_Of (fu │ │ │ │ │ -0000a520: 6e63 7469 6f6e 292c 2020 5570 3a20 4164 nction), Up: Ad │ │ │ │ │ -0000a530: 6472 6573 735f 4f66 2028 6675 6e63 7469 dress_Of (functi │ │ │ │ │ -0000a540: 6f6e 290a 0a41 6e79 5f41 6464 7265 7373 on)..Any_Address │ │ │ │ │ -0000a550: 2028 6675 6e63 7469 6f6e 290a 2d2d 2d2d (function).---- │ │ │ │ │ -0000a560: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -0000a570: 2d2d 0a0a 5055 5250 4f53 450a 2020 2020 --..PURPOSE. │ │ │ │ │ -0000a580: 2053 7065 6369 616c 2061 6464 7265 7373 Special address │ │ │ │ │ -0000a590: 2072 6570 7265 7365 6e74 696e 6720 616e representing an │ │ │ │ │ -0000a5a0: 7920 6164 6472 6573 7320 6f6e 2074 6865 y address on the │ │ │ │ │ -0000a5b0: 206c 6f63 616c 2068 6f73 740a 5052 4f54 local host.PROT │ │ │ │ │ -0000a5c0: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ -0000a5d0: 6f63 6b65 7473 2e4e 616d 696e 672e 416e ockets.Naming.An │ │ │ │ │ -0000a5e0: 795f 4164 6472 6573 733a 2066 756e 6374 y_Address: funct │ │ │ │ │ -0000a5f0: 696f 6e20 416e 795f 4164 6472 6573 730a ion Any_Address. │ │ │ │ │ -0000a600: 0a52 4554 5552 4e20 5641 4c55 450a 2020 .RETURN VALUE. │ │ │ │ │ -0000a610: 2020 2045 7175 6976 616c 656e 7420 746f Equivalent to │ │ │ │ │ -0000a620: 2027 494e 4144 4452 5f41 4e59 2720 696e 'INADDR_ANY' in │ │ │ │ │ -0000a630: 2074 6865 2043 2070 726f 6772 616d 6d69 the C programmi │ │ │ │ │ -0000a640: 6e67 206c 616e 6775 6167 650a 0a1f 0a46 ng language....F │ │ │ │ │ -0000a650: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ -0000a660: 696e 666f 2c20 204e 6f64 653a 2047 6574 info, Node: Get │ │ │ │ │ -0000a670: 5f50 6565 725f 4164 6472 2028 6675 6e63 _Peer_Addr (func │ │ │ │ │ -0000a680: 7469 6f6e 292c 2020 4e65 7874 3a20 4765 tion), Next: Ge │ │ │ │ │ -0000a690: 745f 5065 6572 5f50 6f72 7420 2866 756e t_Peer_Port (fun │ │ │ │ │ -0000a6a0: 6374 696f 6e29 2c20 2050 7265 763a 2041 ction), Prev: A │ │ │ │ │ -0000a6b0: 6e79 5f41 6464 7265 7373 2028 6675 6e63 ny_Address (func │ │ │ │ │ -0000a6c0: 7469 6f6e 292c 2020 5570 3a20 4164 6472 tion), Up: Addr │ │ │ │ │ -0000a6d0: 6573 735f 4f66 2028 6675 6e63 7469 6f6e ess_Of (function │ │ │ │ │ -0000a6e0: 290a 0a47 6574 5f50 6565 725f 4164 6472 )..Get_Peer_Addr │ │ │ │ │ -0000a6f0: 2028 6675 6e63 7469 6f6e 290a 2d2d 2d2d (function).---- │ │ │ │ │ -0000a700: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -0000a710: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ -0000a720: 2020 2052 6574 7269 6576 6520 4950 2061 Retrieve IP a │ │ │ │ │ -0000a730: 6464 7265 7373 206f 6620 7265 6d6f 7465 ddress of remote │ │ │ │ │ -0000a740: 2068 6f73 740a 5052 4f54 4f54 5950 450a host.PROTOTYPE. │ │ │ │ │ -0000a750: 2020 2020 2020 2d2d 2053 6f63 6b65 7473 -- Sockets │ │ │ │ │ -0000a760: 2e4e 616d 696e 672e 4765 745f 5065 6572 .Naming.Get_Peer │ │ │ │ │ -0000a770: 5f41 6464 723a 2066 756e 6374 696f 6e20 _Addr: function │ │ │ │ │ -0000a780: 4765 745f 5065 6572 5f41 6464 720a 2020 Get_Peer_Addr. │ │ │ │ │ -0000a790: 2020 2020 2020 2020 2020 2020 2028 534f (SO │ │ │ │ │ -0000a7a0: 434b 4554 203a 2053 6f63 6b65 745f 4644 CKET : Socket_FD │ │ │ │ │ -0000a7b0: 290a 2020 2020 2020 2020 2020 2020 2020 ). │ │ │ │ │ -0000a7c0: 2072 6574 7572 6e20 4164 6472 6573 733b return Address; │ │ │ │ │ -0000a7d0: 0a0a 5041 5241 4d45 5445 5253 0a20 2020 ..PARAMETERS. │ │ │ │ │ -0000a7e0: 2020 534f 434b 4554 2020 2020 2069 6e20 SOCKET in │ │ │ │ │ -0000a7f0: 2020 2020 2020 2020 436f 6e6e 6563 7465 Connecte │ │ │ │ │ -0000a800: 6420 736f 636b 6574 206f 626a 6563 740a d socket object. │ │ │ │ │ -0000a810: 0a52 4554 5552 4e20 5641 4c55 450a 2020 .RETURN VALUE. │ │ │ │ │ -0000a820: 2020 2050 6565 7220 6164 6472 6573 730a Peer address. │ │ │ │ │ -0000a830: 0a53 4545 2041 4c53 4f0a 2020 2020 202a .SEE ALSO. * │ │ │ │ │ -0000a840: 6e6f 7465 2047 6574 5f50 6565 725f 506f note Get_Peer_Po │ │ │ │ │ -0000a850: 7274 2028 6675 6e63 7469 6f6e 293a 3a2c rt (function)::, │ │ │ │ │ -0000a860: 0a20 2020 2020 2a6e 6f74 6520 4765 745f . *note Get_ │ │ │ │ │ -0000a870: 536f 636b 5f41 6464 7220 2866 756e 6374 Sock_Addr (funct │ │ │ │ │ -0000a880: 696f 6e29 3a3a 2e0a 0a1f 0a46 696c 653a ion)::.....File: │ │ │ │ │ -0000a890: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ -0000a8a0: 2c20 204e 6f64 653a 2047 6574 5f50 6565 , Node: Get_Pee │ │ │ │ │ -0000a8b0: 725f 506f 7274 2028 6675 6e63 7469 6f6e r_Port (function │ │ │ │ │ -0000a8c0: 292c 2020 4e65 7874 3a20 4765 745f 536f ), Next: Get_So │ │ │ │ │ -0000a8d0: 636b 5f41 6464 7220 2866 756e 6374 696f ck_Addr (functio │ │ │ │ │ -0000a8e0: 6e29 2c20 2050 7265 763a 2047 6574 5f50 n), Prev: Get_P │ │ │ │ │ -0000a8f0: 6565 725f 4164 6472 2028 6675 6e63 7469 eer_Addr (functi │ │ │ │ │ -0000a900: 6f6e 292c 2020 5570 3a20 4164 6472 6573 on), Up: Addres │ │ │ │ │ -0000a910: 735f 4f66 2028 6675 6e63 7469 6f6e 290a s_Of (function). │ │ │ │ │ -0000a920: 0a47 6574 5f50 6565 725f 506f 7274 2028 .Get_Peer_Port ( │ │ │ │ │ -0000a930: 6675 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d function).------ │ │ │ │ │ -0000a940: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -0000a950: 2d2d 0a0a 5055 5250 4f53 450a 2020 2020 --..PURPOSE. │ │ │ │ │ -0000a960: 2052 6574 7269 6576 6520 706f 7274 2075 Retrieve port u │ │ │ │ │ -0000a970: 7365 6420 6279 2072 656d 6f74 6520 686f sed by remote ho │ │ │ │ │ -0000a980: 7374 0a50 524f 544f 5459 5045 0a20 2020 st.PROTOTYPE. │ │ │ │ │ -0000a990: 2020 202d 2d20 536f 636b 6574 732e 4e61 -- Sockets.Na │ │ │ │ │ -0000a9a0: 6d69 6e67 2e47 6574 5f50 6565 725f 506f ming.Get_Peer_Po │ │ │ │ │ -0000a9b0: 7274 3a20 6675 6e63 7469 6f6e 2047 6574 rt: function Get │ │ │ │ │ -0000a9c0: 5f50 6565 725f 506f 7274 0a20 2020 2020 _Peer_Port. │ │ │ │ │ -0000a9d0: 2020 2020 2020 2020 2020 2853 4f43 4b45 (SOCKE │ │ │ │ │ -0000a9e0: 5420 3a20 536f 636b 6574 5f46 4429 0a20 T : Socket_FD). │ │ │ │ │ -0000a9f0: 2020 2020 2020 2020 2020 2020 2020 7265 re │ │ │ │ │ -0000aa00: 7475 726e 2050 6f73 6974 6976 653b 0a0a turn Positive;.. │ │ │ │ │ -0000aa10: 5041 5241 4d45 5445 5253 0a20 2020 2020 PARAMETERS. │ │ │ │ │ -0000aa20: 534f 434b 4554 2020 2020 2069 6e20 2020 SOCKET in │ │ │ │ │ -0000aa30: 2020 2020 2020 436f 6e6e 6563 7465 6420 Connected │ │ │ │ │ -0000aa40: 736f 636b 6574 206f 626a 6563 740a 0a52 socket object..R │ │ │ │ │ -0000aa50: 4554 5552 4e20 5641 4c55 450a 2020 2020 ETURN VALUE. │ │ │ │ │ -0000aa60: 2050 6f72 7420 7573 6564 206f 6e20 7468 Port used on th │ │ │ │ │ -0000aa70: 6520 7265 6d6f 7465 2068 6f73 740a 0a53 e remote host..S │ │ │ │ │ -0000aa80: 4545 2041 4c53 4f0a 2020 2020 202a 6e6f EE ALSO. *no │ │ │ │ │ -0000aa90: 7465 2047 6574 5f53 6f63 6b5f 506f 7274 te Get_Sock_Port │ │ │ │ │ -0000aaa0: 2028 6675 6e63 7469 6f6e 293a 3a2c 0a20 (function)::,. │ │ │ │ │ -0000aab0: 2020 2020 2a6e 6f74 6520 4765 745f 5065 *note Get_Pe │ │ │ │ │ -0000aac0: 6572 5f41 6464 7220 2866 756e 6374 696f er_Addr (functio │ │ │ │ │ -0000aad0: 6e29 3a3a 2e0a 0a1f 0a46 696c 653a 2061 n)::.....File: a │ │ │ │ │ -0000aae0: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ -0000aaf0: 204e 6f64 653a 2047 6574 5f53 6f63 6b5f Node: Get_Sock_ │ │ │ │ │ -0000ab00: 4164 6472 2028 6675 6e63 7469 6f6e 292c Addr (function), │ │ │ │ │ -0000ab10: 2020 4e65 7874 3a20 4765 745f 536f 636b Next: Get_Sock │ │ │ │ │ -0000ab20: 5f50 6f72 7420 2866 756e 6374 696f 6e29 _Port (function) │ │ │ │ │ -0000ab30: 2c20 2050 7265 763a 2047 6574 5f50 6565 , Prev: Get_Pee │ │ │ │ │ -0000ab40: 725f 506f 7274 2028 6675 6e63 7469 6f6e r_Port (function │ │ │ │ │ -0000ab50: 292c 2020 5570 3a20 4164 6472 6573 735f ), Up: Address_ │ │ │ │ │ -0000ab60: 4f66 2028 6675 6e63 7469 6f6e 290a 0a47 Of (function)..G │ │ │ │ │ -0000ab70: 6574 5f53 6f63 6b5f 4164 6472 2028 6675 et_Sock_Addr (fu │ │ │ │ │ -0000ab80: 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d nction).-------- │ │ │ │ │ -0000ab90: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -0000aba0: 0a0a 5055 5250 4f53 450a 2020 2020 2052 ..PURPOSE. R │ │ │ │ │ -0000abb0: 6574 7269 6576 6520 4950 2061 6464 7265 etrieve IP addre │ │ │ │ │ -0000abc0: 7373 206f 6620 6c6f 6361 6c20 686f 7374 ss of local host │ │ │ │ │ -0000abd0: 0a50 524f 544f 5459 5045 0a20 2020 2020 .PROTOTYPE. │ │ │ │ │ -0000abe0: 202d 2d20 536f 636b 6574 732e 4e61 6d69 -- Sockets.Nami │ │ │ │ │ -0000abf0: 6e67 2e47 6574 5f53 6f63 6b5f 4164 6472 ng.Get_Sock_Addr │ │ │ │ │ -0000ac00: 3a20 6675 6e63 7469 6f6e 2047 6574 5f53 : function Get_S │ │ │ │ │ -0000ac10: 6f63 6b5f 4164 6472 0a20 2020 2020 2020 ock_Addr. │ │ │ │ │ -0000ac20: 2020 2020 2020 2020 2853 4f43 4b45 5420 (SOCKET │ │ │ │ │ -0000ac30: 3a20 536f 636b 6574 5f46 4429 0a20 2020 : Socket_FD). │ │ │ │ │ -0000ac40: 2020 2020 2020 2020 2020 2020 7265 7475 retu │ │ │ │ │ -0000ac50: 726e 2041 6464 7265 7373 3b0a 0a50 4152 rn Address;..PAR │ │ │ │ │ -0000ac60: 414d 4554 4552 530a 2020 2020 2053 4f43 AMETERS. SOC │ │ │ │ │ -0000ac70: 4b45 5420 2020 2020 696e 2020 2020 2020 KET in │ │ │ │ │ -0000ac80: 2020 2043 6f6e 6e65 6374 6564 2073 6f63 Connected soc │ │ │ │ │ -0000ac90: 6b65 7420 6f62 6a65 6374 0a0a 5245 5455 ket object..RETU │ │ │ │ │ -0000aca0: 524e 2056 414c 5545 0a20 2020 2020 4164 RN VALUE. Ad │ │ │ │ │ -0000acb0: 6472 6573 7320 6f66 206c 6f63 616c 2069 dress of local i │ │ │ │ │ -0000acc0: 6e74 6572 6661 6365 2075 7365 640a 0a53 nterface used..S │ │ │ │ │ -0000acd0: 4545 2041 4c53 4f0a 2020 2020 202a 6e6f EE ALSO. *no │ │ │ │ │ -0000ace0: 7465 2047 6574 5f53 6f63 6b5f 506f 7274 te Get_Sock_Port │ │ │ │ │ -0000acf0: 2028 6675 6e63 7469 6f6e 293a 3a2c 0a20 (function)::,. │ │ │ │ │ -0000ad00: 2020 2020 2a6e 6f74 6520 4765 745f 5065 *note Get_Pe │ │ │ │ │ -0000ad10: 6572 5f41 6464 7220 2866 756e 6374 696f er_Addr (functio │ │ │ │ │ -0000ad20: 6e29 3a3a 2e0a 0a1f 0a46 696c 653a 2061 n)::.....File: a │ │ │ │ │ -0000ad30: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ -0000ad40: 204e 6f64 653a 2047 6574 5f53 6f63 6b5f Node: Get_Sock_ │ │ │ │ │ -0000ad50: 506f 7274 2028 6675 6e63 7469 6f6e 292c Port (function), │ │ │ │ │ -0000ad60: 2020 4e65 7874 3a20 486f 7374 5f4e 616d Next: Host_Nam │ │ │ │ │ -0000ad70: 6520 2866 756e 6374 696f 6e29 2c20 2050 e (function), P │ │ │ │ │ -0000ad80: 7265 763a 2047 6574 5f53 6f63 6b5f 4164 rev: Get_Sock_Ad │ │ │ │ │ -0000ad90: 6472 2028 6675 6e63 7469 6f6e 292c 2020 dr (function), │ │ │ │ │ -0000ada0: 5570 3a20 4164 6472 6573 735f 4f66 2028 Up: Address_Of ( │ │ │ │ │ -0000adb0: 6675 6e63 7469 6f6e 290a 0a47 6574 5f53 function)..Get_S │ │ │ │ │ -0000adc0: 6f63 6b5f 506f 7274 2028 6675 6e63 7469 ock_Port (functi │ │ │ │ │ -0000add0: 6f6e 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d on).------------ │ │ │ │ │ -0000ade0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 ------------..PU │ │ │ │ │ -0000adf0: 5250 4f53 450a 2020 2020 2052 6574 7269 RPOSE. Retri │ │ │ │ │ -0000ae00: 6576 6520 706f 7274 2075 7365 6420 6279 eve port used by │ │ │ │ │ -0000ae10: 206c 6f63 616c 2068 6f73 740a 5052 4f54 local host.PROT │ │ │ │ │ -0000ae20: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ -0000ae30: 6f63 6b65 7473 2e4e 616d 696e 672e 4765 ockets.Naming.Ge │ │ │ │ │ -0000ae40: 745f 536f 636b 5f50 6f72 743a 2066 756e t_Sock_Port: fun │ │ │ │ │ -0000ae50: 6374 696f 6e20 4765 745f 536f 636b 5f50 ction Get_Sock_P │ │ │ │ │ -0000ae60: 6f72 740a 2020 2020 2020 2020 2020 2020 ort. │ │ │ │ │ -0000ae70: 2020 2028 534f 434b 4554 203a 2053 6f63 (SOCKET : Soc │ │ │ │ │ -0000ae80: 6b65 745f 4644 290a 2020 2020 2020 2020 ket_FD). │ │ │ │ │ -0000ae90: 2020 2020 2020 2072 6574 7572 6e20 506f return Po │ │ │ │ │ -0000aea0: 7369 7469 7665 3b0a 0a50 4152 414d 4554 sitive;..PARAMET │ │ │ │ │ -0000aeb0: 4552 530a 2020 2020 2053 4f43 4b45 5420 ERS. SOCKET │ │ │ │ │ -0000aec0: 2020 2020 696e 2020 2020 2020 2020 2043 in C │ │ │ │ │ -0000aed0: 6f6e 6e65 6374 6564 2073 6f63 6b65 7420 onnected socket │ │ │ │ │ -0000aee0: 6f62 6a65 6374 0a0a 5245 5455 524e 2056 object..RETURN V │ │ │ │ │ -0000aef0: 414c 5545 0a20 2020 2020 506f 7274 2075 ALUE. Port u │ │ │ │ │ -0000af00: 7365 6420 6f6e 2074 6865 206c 6f63 616c sed on the local │ │ │ │ │ -0000af10: 2068 6f73 740a 0a53 4545 2041 4c53 4f0a host..SEE ALSO. │ │ │ │ │ -0000af20: 2020 2020 202a 6e6f 7465 2047 6574 5f50 *note Get_P │ │ │ │ │ -0000af30: 6565 725f 506f 7274 2028 6675 6e63 7469 eer_Port (functi │ │ │ │ │ -0000af40: 6f6e 293a 3a2c 0a20 2020 2020 2a6e 6f74 on)::,. *not │ │ │ │ │ -0000af50: 6520 4765 745f 536f 636b 5f41 6464 7220 e Get_Sock_Addr │ │ │ │ │ -0000af60: 2866 756e 6374 696f 6e29 3a3a 2e0a 0a1f (function)::.... │ │ │ │ │ -0000af70: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ -0000af80: 732e 696e 666f 2c20 204e 6f64 653a 2048 s.info, Node: H │ │ │ │ │ -0000af90: 6f73 745f 4e61 6d65 2028 6675 6e63 7469 ost_Name (functi │ │ │ │ │ -0000afa0: 6f6e 292c 2020 4e65 7874 3a20 496d 6167 on), Next: Imag │ │ │ │ │ -0000afb0: 6520 2866 756e 6374 696f 6e29 2c20 2050 e (function), P │ │ │ │ │ -0000afc0: 7265 763a 2047 6574 5f53 6f63 6b5f 506f rev: Get_Sock_Po │ │ │ │ │ -0000afd0: 7274 2028 6675 6e63 7469 6f6e 292c 2020 rt (function), │ │ │ │ │ -0000afe0: 5570 3a20 4164 6472 6573 735f 4f66 2028 Up: Address_Of ( │ │ │ │ │ -0000aff0: 6675 6e63 7469 6f6e 290a 0a48 6f73 745f function)..Host_ │ │ │ │ │ -0000b000: 4e61 6d65 2028 6675 6e63 7469 6f6e 290a Name (function). │ │ │ │ │ -0000b010: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -0000b020: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ -0000b030: 2020 2047 6574 2074 6865 206e 616d 6520 Get the name │ │ │ │ │ -0000b040: 6f66 2074 6865 2063 7572 7265 6e74 2068 of the current h │ │ │ │ │ -0000b050: 6f73 740a 5052 4f54 4f54 5950 450a 2020 ost.PROTOTYPE. │ │ │ │ │ -0000b060: 2020 2020 2d2d 2053 6f63 6b65 7473 2e4e -- Sockets.N │ │ │ │ │ -0000b070: 616d 696e 672e 486f 7374 5f4e 616d 653a aming.Host_Name: │ │ │ │ │ -0000b080: 2066 756e 6374 696f 6e20 486f 7374 5f4e function Host_N │ │ │ │ │ -0000b090: 616d 650a 0a52 4554 5552 4e20 5641 4c55 ame..RETURN VALU │ │ │ │ │ -0000b0a0: 450a 2020 2020 204e 616d 6520 6f66 2074 E. Name of t │ │ │ │ │ -0000b0b0: 6865 2063 7572 7265 6e74 2068 6f73 740a he current host. │ │ │ │ │ -0000b0c0: 0a44 4553 4352 4950 5449 4f4e 0a20 2020 .DESCRIPTION. │ │ │ │ │ -0000b0d0: 2020 5468 6973 2066 756e 6374 696f 6e20 This function │ │ │ │ │ -0000b0e0: 7265 7475 726e 7320 7468 6520 6e61 6d65 returns the name │ │ │ │ │ -0000b0f0: 206f 6620 7468 6520 6375 7272 656e 7420 of the current │ │ │ │ │ -0000b100: 686f 7374 2e20 2044 6570 656e 6469 6e67 host. Depending │ │ │ │ │ -0000b110: 206f 6e0a 2020 2020 2074 6865 206c 6f63 on. the loc │ │ │ │ │ -0000b120: 616c 2063 6f6e 6669 6775 7261 7469 6f6e al configuration │ │ │ │ │ -0000b130: 2c20 6974 206d 6179 206f 7220 6d61 7920 , it may or may │ │ │ │ │ -0000b140: 6e6f 7420 6265 2061 2066 756c 6c79 2071 not be a fully q │ │ │ │ │ -0000b150: 7561 6c69 6669 6564 0a20 2020 2020 646f ualified. do │ │ │ │ │ -0000b160: 6d61 696e 206e 616d 6520 2846 5144 4e29 main name (FQDN) │ │ │ │ │ -0000b170: 2e0a 0a1f 0a46 696c 653a 2061 6461 736f .....File: adaso │ │ │ │ │ -0000b180: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ -0000b190: 653a 2049 6d61 6765 2028 6675 6e63 7469 e: Image (functi │ │ │ │ │ -0000b1a0: 6f6e 292c 2020 4e65 7874 3a20 496e 666f on), Next: Info │ │ │ │ │ -0000b1b0: 5f4f 665f 4e61 6d65 5f4f 725f 4950 2028 _Of_Name_Or_IP ( │ │ │ │ │ -0000b1c0: 6675 6e63 7469 6f6e 292c 2020 5072 6576 function), Prev │ │ │ │ │ -0000b1d0: 3a20 486f 7374 5f4e 616d 6520 2866 756e : Host_Name (fun │ │ │ │ │ -0000b1e0: 6374 696f 6e29 2c20 2055 703a 2041 6464 ction), Up: Add │ │ │ │ │ -0000b1f0: 7265 7373 5f4f 6620 2866 756e 6374 696f ress_Of (functio │ │ │ │ │ -0000b200: 6e29 0a0a 496d 6167 6520 2866 756e 6374 n)..Image (funct │ │ │ │ │ -0000b210: 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ion).----------- │ │ │ │ │ -0000b220: 2d2d 2d2d 2d0a 0a50 5552 504f 5345 0a20 -----..PURPOSE. │ │ │ │ │ -0000b230: 2020 2020 4d61 6b65 2061 2073 7472 696e Make a strin │ │ │ │ │ -0000b240: 6720 6672 6f6d 2061 6e20 6164 6472 6573 g from an addres │ │ │ │ │ -0000b250: 730a 5052 4f54 4f54 5950 450a 2020 2020 s.PROTOTYPE. │ │ │ │ │ -0000b260: 2020 2d2d 2053 6f63 6b65 7473 2e4e 616d -- Sockets.Nam │ │ │ │ │ -0000b270: 696e 672e 496d 6167 653a 2066 756e 6374 ing.Image: funct │ │ │ │ │ -0000b280: 696f 6e20 496d 6167 6520 2841 4444 203a ion Image (ADD : │ │ │ │ │ -0000b290: 2041 6464 7265 7373 290a 2020 2020 2020 Address). │ │ │ │ │ -0000b2a0: 2020 2020 2020 2020 2072 6574 7572 6e20 return │ │ │ │ │ -0000b2b0: 5374 7269 6e67 3b0a 0a50 4152 414d 4554 String;..PARAMET │ │ │ │ │ -0000b2c0: 4552 530a 2020 2020 2041 4444 2020 2020 ERS. ADD │ │ │ │ │ -0000b2d0: 2020 2020 696e 2020 2020 2020 2020 2049 in I │ │ │ │ │ -0000b2e0: 5020 6164 6472 6573 730a 0a52 4554 5552 P address..RETUR │ │ │ │ │ -0000b2f0: 4e20 5641 4c55 450a 2020 2020 2053 7472 N VALUE. Str │ │ │ │ │ -0000b300: 696e 6720 7265 7072 6573 656e 7461 7469 ing representati │ │ │ │ │ -0000b310: 6f6e 206f 6620 7468 6520 4950 2061 6464 on of the IP add │ │ │ │ │ -0000b320: 7265 7373 0a0a 5345 4520 414c 534f 0a20 ress..SEE ALSO. │ │ │ │ │ -0000b330: 2020 2020 2a6e 6f74 6520 5661 6c75 6520 *note Value │ │ │ │ │ -0000b340: 2866 756e 6374 696f 6e29 3a3a 2e0a 0a1f (function)::.... │ │ │ │ │ -0000b350: 0a46 696c 653a 2061 6461 736f 636b 6574 .File: adasocket │ │ │ │ │ -0000b360: 732e 696e 666f 2c20 204e 6f64 653a 2049 s.info, Node: I │ │ │ │ │ -0000b370: 6e66 6f5f 4f66 5f4e 616d 655f 4f72 5f49 nfo_Of_Name_Or_I │ │ │ │ │ -0000b380: 5020 2866 756e 6374 696f 6e29 2c20 204e P (function), N │ │ │ │ │ -0000b390: 6578 743a 2049 735f 4950 5f41 6464 7265 ext: Is_IP_Addre │ │ │ │ │ -0000b3a0: 7373 2028 6675 6e63 7469 6f6e 292c 2020 ss (function), │ │ │ │ │ -0000b3b0: 5072 6576 3a20 496d 6167 6520 2866 756e Prev: Image (fun │ │ │ │ │ -0000b3c0: 6374 696f 6e29 2c20 2055 703a 2041 6464 ction), Up: Add │ │ │ │ │ -0000b3d0: 7265 7373 5f4f 6620 2866 756e 6374 696f ress_Of (functio │ │ │ │ │ -0000b3e0: 6e29 0a0a 496e 666f 5f4f 665f 4e61 6d65 n)..Info_Of_Name │ │ │ │ │ -0000b3f0: 5f4f 725f 4950 2028 6675 6e63 7469 6f6e _Or_IP (function │ │ │ │ │ -0000b400: 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ).-------------- │ │ │ │ │ -0000b410: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ │ -0000b420: 0a50 5552 504f 5345 0a20 2020 2020 4765 .PURPOSE. Ge │ │ │ │ │ -0000b430: 7420 6164 6472 6573 7365 7320 616e 6420 t addresses and │ │ │ │ │ -0000b440: 6e61 6d65 7320 6f66 2061 2068 6f73 740a names of a host. │ │ │ │ │ -0000b450: 5052 4f54 4f54 5950 450a 2020 2020 2020 PROTOTYPE. │ │ │ │ │ -0000b460: 2d2d 2053 6f63 6b65 7473 2e4e 616d 696e -- Sockets.Namin │ │ │ │ │ -0000b470: 672e 496e 666f 5f4f 665f 4e61 6d65 5f4f g.Info_Of_Name_O │ │ │ │ │ -0000b480: 725f 4950 3a20 6675 6e63 7469 6f6e 2049 r_IP: function I │ │ │ │ │ -0000b490: 6e66 6f5f 4f66 5f4e 616d 655f 4f72 5f49 nfo_Of_Name_Or_I │ │ │ │ │ -0000b4a0: 500a 2020 2020 2020 2020 2020 2020 2020 P. │ │ │ │ │ -0000b4b0: 2028 534f 4d45 5448 494e 4720 3a20 5374 (SOMETHING : St │ │ │ │ │ -0000b4c0: 7269 6e67 290a 2020 2020 2020 2020 2020 ring). │ │ │ │ │ -0000b4d0: 2020 2020 2072 6574 7572 6e20 486f 7374 return Host │ │ │ │ │ -0000b4e0: 5f45 6e74 7279 3b0a 0a50 4152 414d 4554 _Entry;..PARAMET │ │ │ │ │ -0000b4f0: 4552 530a 2020 2020 2053 4f4d 4554 4849 ERS. SOMETHI │ │ │ │ │ -0000b500: 4e47 2020 696e 2020 2020 2020 2020 2048 NG in H │ │ │ │ │ -0000b510: 6f73 7420 6e61 6d65 206f 7220 4950 2061 ost name or IP a │ │ │ │ │ -0000b520: 6464 7265 7373 0a0a 5245 5455 524e 2056 ddress..RETURN V │ │ │ │ │ -0000b530: 414c 5545 0a20 2020 2020 436f 7272 6573 ALUE. Corres │ │ │ │ │ -0000b540: 706f 6e64 696e 6720 686f 7374 2065 6e74 ponding host ent │ │ │ │ │ -0000b550: 7279 0a0a 4445 5343 5249 5054 494f 4e0a ry..DESCRIPTION. │ │ │ │ │ -0000b560: 2020 2020 2054 6869 7320 6675 6e63 7469 This functi │ │ │ │ │ -0000b570: 6f6e 2065 7874 7261 6374 7320 616c 6c20 on extracts all │ │ │ │ │ -0000b580: 7468 6520 6e61 6d65 7320 616e 6420 6164 the names and ad │ │ │ │ │ -0000b590: 6472 6573 7365 7320 6672 6f6d 2074 6865 dresses from the │ │ │ │ │ -0000b5a0: 206e 616d 696e 670a 2020 2020 2073 6572 naming. ser │ │ │ │ │ -0000b5b0: 7669 6365 2e0a 0a45 5843 4550 5449 4f4e vice...EXCEPTION │ │ │ │ │ -0000b5c0: 530a 2020 2020 2027 4e61 6d69 6e67 5f45 S. 'Naming_E │ │ │ │ │ -0000b5d0: 7272 6f72 2720 2020 2020 4e6f 2069 6e66 rror' No inf │ │ │ │ │ -0000b5e0: 6f72 6d61 7469 6f6e 2061 7661 696c 6162 ormation availab │ │ │ │ │ -0000b5f0: 6c65 2066 6f72 2074 6869 7320 6e61 6d65 le for this name │ │ │ │ │ -0000b600: 206f 720a 2020 2020 2020 2020 2020 2020 or. │ │ │ │ │ -0000b610: 2020 2020 2020 2020 2020 2020 6164 6472 addr │ │ │ │ │ -0000b620: 6573 730a 0a1f 0a46 696c 653a 2061 6461 ess....File: ada │ │ │ │ │ -0000b630: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ -0000b640: 6f64 653a 2049 735f 4950 5f41 6464 7265 ode: Is_IP_Addre │ │ │ │ │ -0000b650: 7373 2028 6675 6e63 7469 6f6e 292c 2020 ss (function), │ │ │ │ │ -0000b660: 4e65 7874 3a20 4e61 6d65 5f4f 6620 2866 Next: Name_Of (f │ │ │ │ │ -0000b670: 756e 6374 696f 6e29 2c20 2050 7265 763a unction), Prev: │ │ │ │ │ -0000b680: 2049 6e66 6f5f 4f66 5f4e 616d 655f 4f72 Info_Of_Name_Or │ │ │ │ │ -0000b690: 5f49 5020 2866 756e 6374 696f 6e29 2c20 _IP (function), │ │ │ │ │ -0000b6a0: 2055 703a 2041 6464 7265 7373 5f4f 6620 Up: Address_Of │ │ │ │ │ -0000b6b0: 2866 756e 6374 696f 6e29 0a0a 4973 5f49 (function)..Is_I │ │ │ │ │ -0000b6c0: 505f 4164 6472 6573 7320 2866 756e 6374 P_Address (funct │ │ │ │ │ -0000b6d0: 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ion).----------- │ │ │ │ │ -0000b6e0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ -0000b6f0: 5552 504f 5345 0a20 2020 2020 4368 6563 URPOSE. Chec │ │ │ │ │ -0000b700: 6b20 6966 2067 6976 656e 2073 7472 696e k if given strin │ │ │ │ │ -0000b710: 6720 6973 2061 2076 616c 6964 2049 5020 g is a valid IP │ │ │ │ │ -0000b720: 6164 6472 6573 730a 5052 4f54 4f54 5950 address.PROTOTYP │ │ │ │ │ -0000b730: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ -0000b740: 7473 2e4e 616d 696e 672e 4973 5f49 505f ts.Naming.Is_IP_ │ │ │ │ │ -0000b750: 4164 6472 6573 733a 2066 756e 6374 696f Address: functio │ │ │ │ │ -0000b760: 6e20 4973 5f49 505f 4164 6472 6573 730a n Is_IP_Address. │ │ │ │ │ -0000b770: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ -0000b780: 534f 4d45 5448 494e 4720 3a20 5374 7269 SOMETHING : Stri │ │ │ │ │ -0000b790: 6e67 290a 2020 2020 2020 2020 2020 2020 ng). │ │ │ │ │ -0000b7a0: 2020 2072 6574 7572 6e20 426f 6f6c 6561 return Boolea │ │ │ │ │ -0000b7b0: 6e3b 0a0a 5041 5241 4d45 5445 5253 0a20 n;..PARAMETERS. │ │ │ │ │ -0000b7c0: 2020 2020 534f 4d45 5448 494e 4720 2069 SOMETHING i │ │ │ │ │ -0000b7d0: 6e20 2020 2020 2020 2020 5374 7269 6e67 n String │ │ │ │ │ -0000b7e0: 2074 6f20 6368 6563 6b0a 0a52 4554 5552 to check..RETUR │ │ │ │ │ -0000b7f0: 4e20 5641 4c55 450a 2020 2020 2027 5472 N VALUE. 'Tr │ │ │ │ │ -0000b800: 7565 2720 6966 2053 4f4d 4554 4849 4e47 ue' if SOMETHING │ │ │ │ │ -0000b810: 2069 7320 616e 2049 5020 6164 6472 6573 is an IP addres │ │ │ │ │ -0000b820: 730a 0a1f 0a46 696c 653a 2061 6461 736f s....File: adaso │ │ │ │ │ -0000b830: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ -0000b840: 653a 204e 616d 655f 4f66 2028 6675 6e63 e: Name_Of (func │ │ │ │ │ -0000b850: 7469 6f6e 292c 2020 4e65 7874 3a20 5661 tion), Next: Va │ │ │ │ │ -0000b860: 6c75 6520 2866 756e 6374 696f 6e29 2c20 lue (function), │ │ │ │ │ -0000b870: 2050 7265 763a 2049 735f 4950 5f41 6464 Prev: Is_IP_Add │ │ │ │ │ -0000b880: 7265 7373 2028 6675 6e63 7469 6f6e 292c ress (function), │ │ │ │ │ -0000b890: 2020 5570 3a20 4164 6472 6573 735f 4f66 Up: Address_Of │ │ │ │ │ -0000b8a0: 2028 6675 6e63 7469 6f6e 290a 0a4e 616d (function)..Nam │ │ │ │ │ -0000b8b0: 655f 4f66 2028 6675 6e63 7469 6f6e 290a e_Of (function). │ │ │ │ │ -0000b8c0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ -0000b8d0: 2d2d 0a0a 5055 5250 4f53 450a 2020 2020 --..PURPOSE. │ │ │ │ │ -0000b8e0: 204f 6666 6963 6961 6c20 6e61 6d65 206f Official name o │ │ │ │ │ -0000b8f0: 6620 7468 6520 686f 7374 0a50 524f 544f f the host.PROTO │ │ │ │ │ -0000b900: 5459 5045 0a20 2020 2020 202d 2d20 536f TYPE. -- So │ │ │ │ │ -0000b910: 636b 6574 732e 4e61 6d69 6e67 2e4e 616d ckets.Naming.Nam │ │ │ │ │ -0000b920: 655f 4f66 3a20 6675 6e63 7469 6f6e 204e e_Of: function N │ │ │ │ │ -0000b930: 616d 655f 4f66 2028 534f 4d45 5448 494e ame_Of (SOMETHIN │ │ │ │ │ -0000b940: 4720 3a20 5374 7269 6e67 290a 2020 2020 G : String). │ │ │ │ │ -0000b950: 2020 2020 2020 2020 2020 2072 6574 7572 retur │ │ │ │ │ -0000b960: 6e20 5374 7269 6e67 3b0a 0a50 4152 414d n String;..PARAM │ │ │ │ │ -0000b970: 4554 4552 530a 2020 2020 2053 4f4d 4554 ETERS. SOMET │ │ │ │ │ -0000b980: 4849 4e47 2020 696e 2020 2020 2020 2020 HING in │ │ │ │ │ -0000b990: 2048 6f73 7420 6e61 6d65 206f 7220 4950 Host name or IP │ │ │ │ │ -0000b9a0: 2061 6464 7265 7373 0a0a 5245 5455 524e address..RETURN │ │ │ │ │ -0000b9b0: 2056 414c 5545 0a20 2020 2020 4e61 6d65 VALUE. Name │ │ │ │ │ -0000b9c0: 206f 6620 7468 6520 686f 7374 0a0a 4558 of the host..EX │ │ │ │ │ -0000b9d0: 4345 5054 494f 4e53 0a20 2020 2020 274e CEPTIONS. 'N │ │ │ │ │ -0000b9e0: 616d 696e 675f 4572 726f 7227 2020 2020 aming_Error' │ │ │ │ │ -0000b9f0: 204e 6f20 696e 666f 726d 6174 696f 6e20 No information │ │ │ │ │ -0000ba00: 6176 6169 6c61 626c 6520 666f 7220 7468 available for th │ │ │ │ │ -0000ba10: 6973 206e 616d 6520 6f72 0a20 2020 2020 is name or. │ │ │ │ │ -0000ba20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ba30: 2020 2061 6464 7265 7373 0a0a 5345 4520 address..SEE │ │ │ │ │ -0000ba40: 414c 534f 0a20 2020 2020 2a6e 6f74 6520 ALSO. *note │ │ │ │ │ -0000ba50: 4164 6472 6573 735f 4f66 2028 6675 6e63 Address_Of (func │ │ │ │ │ -0000ba60: 7469 6f6e 293a 3a2e 0a0a 1f0a 4669 6c65 tion)::.....File │ │ │ │ │ -0000ba70: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ -0000ba80: 6f2c 2020 4e6f 6465 3a20 5661 6c75 6520 o, Node: Value │ │ │ │ │ -0000ba90: 2866 756e 6374 696f 6e29 2c20 2050 7265 (function), Pre │ │ │ │ │ -0000baa0: 763a 204e 616d 655f 4f66 2028 6675 6e63 v: Name_Of (func │ │ │ │ │ -0000bab0: 7469 6f6e 292c 2020 5570 3a20 4164 6472 tion), Up: Addr │ │ │ │ │ -0000bac0: 6573 735f 4f66 2028 6675 6e63 7469 6f6e ess_Of (function │ │ │ │ │ -0000bad0: 290a 0a56 616c 7565 2028 6675 6e63 7469 )..Value (functi │ │ │ │ │ -0000bae0: 6f6e 290a 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d on).------------ │ │ │ │ │ -0000baf0: 2d2d 2d2d 0a0a 5055 5250 4f53 450a 2020 ----..PURPOSE. │ │ │ │ │ -0000bb00: 2020 2054 7261 6e73 666f 726d 2061 2073 Transform a s │ │ │ │ │ -0000bb10: 7472 696e 6720 696e 746f 2061 6e20 6164 tring into an ad │ │ │ │ │ -0000bb20: 6472 6573 730a 5052 4f54 4f54 5950 450a dress.PROTOTYPE. │ │ │ │ │ -0000bb30: 2020 2020 2020 2d2d 2053 6f63 6b65 7473 -- Sockets │ │ │ │ │ -0000bb40: 2e4e 616d 696e 672e 5661 6c75 653a 2066 .Naming.Value: f │ │ │ │ │ -0000bb50: 756e 6374 696f 6e20 5661 6c75 6520 2841 unction Value (A │ │ │ │ │ -0000bb60: 4444 203a 2053 7472 696e 6729 0a20 2020 DD : String). │ │ │ │ │ -0000bb70: 2020 2020 2020 2020 2020 2020 7265 7475 retu │ │ │ │ │ -0000bb80: 726e 2041 6464 7265 7373 3b0a 0a50 4152 rn Address;..PAR │ │ │ │ │ -0000bb90: 414d 4554 4552 530a 2020 2020 2041 4444 AMETERS. ADD │ │ │ │ │ -0000bba0: 2020 2020 2020 2020 696e 2020 2020 2020 in │ │ │ │ │ -0000bbb0: 2020 2054 6578 7475 616c 2072 6570 7265 Textual repre │ │ │ │ │ -0000bbc0: 7365 6e74 6174 696f 6e20 6f66 2061 6e20 sentation of an │ │ │ │ │ -0000bbd0: 4950 2061 6464 7265 7373 0a0a 5245 5455 IP address..RETU │ │ │ │ │ -0000bbe0: 524e 2056 414c 5545 0a20 2020 2020 436f RN VALUE. Co │ │ │ │ │ -0000bbf0: 7272 6573 706f 6e64 696e 6720 4164 6472 rresponding Addr │ │ │ │ │ -0000bc00: 6573 730a 0a53 4545 2041 4c53 4f0a 2020 ess..SEE ALSO. │ │ │ │ │ -0000bc10: 2020 202a 6e6f 7465 2049 6d61 6765 2028 *note Image ( │ │ │ │ │ -0000bc20: 6675 6e63 7469 6f6e 293a 3a2e 0a0a 1f0a function)::..... │ │ │ │ │ -0000bc30: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ -0000bc40: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 436f .info, Node: Co │ │ │ │ │ -0000bc50: 6e74 7269 6275 746f 7273 2c20 204e 6578 ntributors, Nex │ │ │ │ │ -0000bc60: 743a 2052 6573 6f75 7263 6573 206f 6e20 t: Resources on │ │ │ │ │ -0000bc70: 7468 6520 496e 7465 726e 6574 2c20 2050 the Internet, P │ │ │ │ │ -0000bc80: 7265 763a 2053 6f63 6b65 7473 2e4e 616d rev: Sockets.Nam │ │ │ │ │ -0000bc90: 696e 6720 7061 636b 6167 652c 2020 5570 ing package, Up │ │ │ │ │ -0000bca0: 3a20 546f 700a 0a41 7070 656e 6469 7820 : Top..Appendix │ │ │ │ │ -0000bcb0: 4120 436f 6e74 7269 6275 746f 7273 0a2a A Contributors.* │ │ │ │ │ -0000bcc0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -0000bcd0: 2a2a 2a2a 2a2a 0a0a 4164 6153 6f63 6b65 ******..AdaSocke │ │ │ │ │ -0000bce0: 7473 2068 6173 2062 6565 6e20 6f72 6967 ts has been orig │ │ │ │ │ -0000bcf0: 696e 616c 6c79 2064 6576 656c 6f70 7065 inally developpe │ │ │ │ │ -0000bd00: 6420 6279 2053 616d 7565 6c20 5461 7264 d by Samuel Tard │ │ │ │ │ -0000bd10: 6965 7520 7768 6f20 7374 696c 6c0a 6d61 ieu who still.ma │ │ │ │ │ -0000bd20: 696e 7461 696e 7320 6974 2e20 2048 6f77 intains it. How │ │ │ │ │ -0000bd30: 6576 6572 2c20 7468 6520 666f 6c6c 6f77 ever, the follow │ │ │ │ │ -0000bd40: 696e 6720 7065 6f70 6c65 2068 6176 6520 ing people have │ │ │ │ │ -0000bd50: 6d61 6465 2063 7275 6369 616c 0a63 6f6e made crucial.con │ │ │ │ │ -0000bd60: 7472 6962 7574 696f 6e73 2074 6f20 4164 tributions to Ad │ │ │ │ │ -0000bd70: 6153 6f63 6b65 7473 2c20 6265 2074 6865 aSockets, be the │ │ │ │ │ -0000bd80: 7920 6e65 7720 636f 6465 2c20 6275 6720 y new code, bug │ │ │ │ │ -0000bd90: 6669 7865 7320 6f72 2070 6f72 7469 6e67 fixes or porting │ │ │ │ │ -0000bda0: 2074 6f0a 6e65 7720 6f70 6572 6174 696e to.new operatin │ │ │ │ │ -0000bdb0: 6720 7379 7374 656d 733a 0a0a 2020 202a g systems:.. * │ │ │ │ │ -0000bdc0: 2044 6d69 7472 6979 2041 6e69 7369 6d6b Dmitriy Anisimk │ │ │ │ │ -0000bdd0: 6f76 2028 3c61 6e69 7369 6d6b 6f76 4079 ov (). * │ │ │ │ │ -0000bdf0: 416c 616e 2042 6172 6e65 7320 283c 6261 Alan Barnes (). * Juanma │ │ │ │ │ -0000be20: 4261 7272 616e 7175 6572 6f20 283c 6c65 Barranquero (). │ │ │ │ │ -0000be40: 2020 2a20 426f 6262 7920 442e 2042 7279 * Bobby D. Bry │ │ │ │ │ -0000be50: 616e 7420 283c 6264 6272 7961 6e74 406d ant () │ │ │ │ │ -0000be70: 0a20 2020 2a20 5361 6e64 6572 2043 6f78 . * Sander Cox │ │ │ │ │ -0000be80: 2028 3c73 616e 6465 722e 636f 7840 7068 (). * │ │ │ │ │ -0000bea0: 2053 756e 6520 4661 6c6b 2028 3c73 756e Sune Falk (). * Guillau │ │ │ │ │ -0000bed0: 6d65 2046 6f6c 6961 7264 2028 3c67 7569 me Foliard (). │ │ │ │ │ -0000bef0: 2020 202a 204c 6175 7265 6e74 2047 7565 * Laurent Gue │ │ │ │ │ -0000bf00: 7262 7920 283c 6775 6572 6279 4063 6c75 rby (). │ │ │ │ │ -0000bf20: 2020 202a 2044 6176 6964 204a 2e20 4b72 * David J. Kr │ │ │ │ │ -0000bf30: 6973 746f 6c61 2028 3c44 6176 6964 3935 istola (). │ │ │ │ │ -0000bf50: 202a 2044 6f6d 696e 696b 204d 6164 6f6e * Dominik Madon │ │ │ │ │ -0000bf60: 2028 3c64 6f6d 696e 696b 4061 636d 2e6f (). * Pascal │ │ │ │ │ -0000bf80: 204f 6272 7920 283c 702e 6f62 7279 4077 Obry (). * │ │ │ │ │ -0000bfa0: 204e 6963 6f6c 6173 204f 6c6c 696e 6765 Nicolas Ollinge │ │ │ │ │ -0000bfb0: 7220 283c 4e69 636f 6c61 732e 4f6c 6c69 r (). * Stphane │ │ │ │ │ -0000bfe0: 5061 7475 7265 6175 2028 3c73 7061 7475 Patureau ( │ │ │ │ │ -0000c010: 290a 2020 202a 2054 686f 6d61 7320 5175 ). * Thomas Qu │ │ │ │ │ -0000c020: 696e 6f74 2028 3c74 686f 6d61 7340 6375 inot () │ │ │ │ │ -0000c040: 0a20 2020 2a20 5072 6562 656e 2052 616e . * Preben Ran │ │ │ │ │ -0000c050: 6468 6f6c 2028 3c72 616e 6468 6f6c 4070 dhol (). * Ma │ │ │ │ │ -0000c070: 7869 6d20 5265 7a6e 696b 2028 3c6d 6178 xim Reznik () │ │ │ │ │ -0000c090: 0a20 2020 2a20 4a6f 656c 2053 6865 7272 . * Joel Sherr │ │ │ │ │ -0000c0a0: 696c 6c20 283c 6a6f 656c 2e73 6865 7272 ill ( │ │ │ │ │ -0000c0c0: 290a 2020 202a 2053 616d 7565 6c20 5461 ). * Samuel Ta │ │ │ │ │ -0000c0d0: 7264 6965 7520 283c 7361 6d40 7266 6331 rdieu ().. If │ │ │ │ │ -0000c0f0: 2079 6f75 2066 6565 6c20 7468 6174 2079 you feel that y │ │ │ │ │ -0000c100: 6f75 2068 6176 6520 6265 656e 2066 6f72 ou have been for │ │ │ │ │ -0000c110: 676f 7474 656e 2c20 706c 6561 7365 2073 gotten, please s │ │ │ │ │ -0000c120: 656e 6420 6d65 2061 206d 6169 6c20 736f end me a mail so │ │ │ │ │ -0000c130: 0a74 6861 7420 4920 6361 6e20 6669 7820 .that I can fix │ │ │ │ │ -0000c140: 6974 2069 6e20 7468 6520 6e65 7874 2076 it in the next v │ │ │ │ │ -0000c150: 6572 7369 6f6e 2e0a 0a20 2020 2a4e 6f74 ersion... *Not │ │ │ │ │ -0000c160: 6520 5265 736f 7572 6365 7320 6f6e 2074 e Resources on t │ │ │ │ │ -0000c170: 6865 2049 6e74 6572 6e65 743a 3a2c 2066 he Internet::, f │ │ │ │ │ -0000c180: 6f72 2068 6f77 2074 6f20 636f 6e74 7269 or how to contri │ │ │ │ │ -0000c190: 6275 7465 2e0a 0a1f 0a46 696c 653a 2061 bute.....File: a │ │ │ │ │ -0000c1a0: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ -0000c1b0: 204e 6f64 653a 2052 6573 6f75 7263 6573 Node: Resources │ │ │ │ │ -0000c1c0: 206f 6e20 7468 6520 496e 7465 726e 6574 on the Internet │ │ │ │ │ -0000c1d0: 2c20 204e 6578 743a 2049 6e64 6578 2c20 , Next: Index, │ │ │ │ │ -0000c1e0: 2050 7265 763a 2043 6f6e 7472 6962 7574 Prev: Contribut │ │ │ │ │ -0000c1f0: 6f72 732c 2020 5570 3a20 546f 700a 0a41 ors, Up: Top..A │ │ │ │ │ -0000c200: 7070 656e 6469 7820 4220 5265 736f 7572 ppendix B Resour │ │ │ │ │ -0000c210: 6365 7320 6f6e 2074 6865 2049 6e74 6572 ces on the Inter │ │ │ │ │ -0000c220: 6e65 740a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a net.************ │ │ │ │ │ -0000c230: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ -0000c240: 2a2a 2a2a 2a2a 2a2a 0a0a 5468 6520 6c61 ********..The la │ │ │ │ │ -0000c250: 7465 7374 2076 6572 7369 6f6e 206f 6620 test version of │ │ │ │ │ -0000c260: 4164 6153 6f63 6b65 7473 2063 616e 2061 AdaSockets can a │ │ │ │ │ -0000c270: 6c77 6179 7320 6265 2066 6f75 6e64 2061 lways be found a │ │ │ │ │ -0000c280: 743a 0a0a 2020 2020 2020 2020 2020 2020 t:.. │ │ │ │ │ -0000c290: 2020 203c 6874 7470 3a2f 2f77 7777 2e72 .. │ │ │ │ │ -0000c2c0: 2059 6f75 2063 616e 2072 6570 6f72 7420 You can report │ │ │ │ │ -0000c2d0: 6973 7375 6573 206f 7220 7375 626d 6974 issues or submit │ │ │ │ │ -0000c2e0: 2071 7565 7374 696f 6e73 206f 6e20 4769 questions on Gi │ │ │ │ │ -0000c2f0: 7448 7562 2773 2069 7373 7565 2074 7261 tHub's issue tra │ │ │ │ │ -0000c300: 636b 6572 0a61 743a 0a0a 2020 2020 2020 cker.at:.. │ │ │ │ │ -0000c310: 2020 203c 6874 7470 733a 2f2f 6769 7468 ....File: │ │ │ │ │ -0000c350: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ -0000c360: 2c20 204e 6f64 653a 2049 6e64 6578 2c20 , Node: Index, │ │ │ │ │ -0000c370: 2050 7265 763a 2052 6573 6f75 7263 6573 Prev: Resources │ │ │ │ │ -0000c380: 206f 6e20 7468 6520 496e 7465 726e 6574 on the Internet │ │ │ │ │ -0000c390: 2c20 2055 703a 2054 6f70 0a0a 496e 6465 , Up: Top..Inde │ │ │ │ │ -0000c3a0: 780a 2a2a 2a2a 2a0a 0a00 085b 696e 6465 x.*****....[inde │ │ │ │ │ -0000c3b0: 7800 085d 0a2a 204d 656e 753a 0a0a 2a20 x..].* Menu:..* │ │ │ │ │ -0000c3c0: 4163 6365 7074 696e 6720 6120 6e65 7720 Accepting a new │ │ │ │ │ -0000c3d0: 636f 6e6e 6563 7469 6f6e 3a20 2020 2020 connection: │ │ │ │ │ -0000c3e0: 2020 2020 2020 2041 6363 6570 745f 536f Accept_So │ │ │ │ │ -0000c3f0: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ -0000c400: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -0000c410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c420: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c440: 2028 6c69 6e65 2020 3629 0a2a 2041 6363 (line 6).* Acc │ │ │ │ │ -0000c450: 6570 745f 536f 636b 6574 3a20 2020 2020 ept_Socket: │ │ │ │ │ -0000c460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c470: 2020 2020 4163 6365 7074 5f53 6f63 6b65 Accept_Socke │ │ │ │ │ -0000c480: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ -0000c490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c4b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c4c0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -0000c4d0: 696e 6520 2039 290a 2a20 4164 612e 5374 ine 9).* Ada.St │ │ │ │ │ -0000c4e0: 7265 616d 732e 5374 7265 616d 5f45 6c65 reams.Stream_Ele │ │ │ │ │ -0000c4f0: 6d65 6e74 5f41 7272 6179 3a20 2020 2020 ment_Array: │ │ │ │ │ -0000c500: 2052 6177 2064 6174 6120 6d61 6e69 7075 Raw data manipu │ │ │ │ │ -0000c510: 6c61 7469 6f6e 2e0a 2020 2020 2020 2020 lation.. │ │ │ │ │ -0000c520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c550: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ │ -0000c560: 0a2a 2041 6461 2e53 7472 6561 6d73 2e53 .* Ada.Streams.S │ │ │ │ │ -0000c570: 7472 6561 6d5f 456c 656d 656e 745f 4172 tream_Element_Ar │ │ │ │ │ -0000c580: 7261 7920 3c31 3e3a 2020 5265 6365 6976 ray <1>: Receiv │ │ │ │ │ -0000c590: 6520 2866 756e 6374 696f 6e29 2e20 2020 e (function). │ │ │ │ │ -0000c5a0: 286c 696e 6520 3232 290a 2a20 4164 612e (line 22).* Ada. │ │ │ │ │ -0000c5b0: 5374 7265 616d 732e 5374 7265 616d 5f45 Streams.Stream_E │ │ │ │ │ -0000c5c0: 6c65 6d65 6e74 5f41 7272 6179 203c 323e lement_Array <2> │ │ │ │ │ -0000c5d0: 3a20 2052 6563 6569 7665 2028 7072 6f63 : Receive (proc │ │ │ │ │ -0000c5e0: 6564 7572 6529 2e20 2028 6c69 6e65 2031 edure). (line 1 │ │ │ │ │ -0000c5f0: 3829 0a2a 2041 6461 2e53 7472 6561 6d73 8).* Ada.Streams │ │ │ │ │ -0000c600: 2e53 7472 6561 6d5f 456c 656d 656e 745f .Stream_Element_ │ │ │ │ │ -0000c610: 4172 7261 7920 3c33 3e3a 2020 5265 6365 Array <3>: Rece │ │ │ │ │ -0000c620: 6976 655f 536f 6d65 2028 7072 6f63 6564 ive_Some (proced │ │ │ │ │ -0000c630: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ -0000c640: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c670: 2020 2020 2028 6c69 6e65 2032 3129 0a2a (line 21).* │ │ │ │ │ -0000c680: 2041 6461 2e53 7472 6561 6d73 2e53 7472 Ada.Streams.Str │ │ │ │ │ -0000c690: 6561 6d5f 456c 656d 656e 745f 4172 7261 eam_Element_Arra │ │ │ │ │ -0000c6a0: 7920 3c34 3e3a 2020 5365 6e64 2028 7072 y <4>: Send (pr │ │ │ │ │ -0000c6b0: 6f63 6564 7572 6529 2e20 2020 2020 286c ocedure). (l │ │ │ │ │ -0000c6c0: 696e 6520 3137 290a 2a20 4164 612e 5374 ine 17).* Ada.St │ │ │ │ │ -0000c6d0: 7265 616d 732e 5374 7265 616d 5f45 6c65 reams.Stream_Ele │ │ │ │ │ -0000c6e0: 6d65 6e74 5f43 6f75 6e74 3a20 2020 2020 ment_Count: │ │ │ │ │ -0000c6f0: 2052 6563 6569 7665 2028 6675 6e63 7469 Receive (functi │ │ │ │ │ -0000c700: 6f6e 292e 2020 2028 6c69 6e65 2032 3229 on). (line 22) │ │ │ │ │ -0000c710: 0a2a 2041 6461 2e53 7472 6561 6d73 2e53 .* Ada.Streams.S │ │ │ │ │ -0000c720: 7472 6561 6d5f 456c 656d 656e 745f 436f tream_Element_Co │ │ │ │ │ -0000c730: 756e 7420 3c31 3e3a 2020 5265 6365 6976 unt <1>: Receiv │ │ │ │ │ -0000c740: 655f 536f 6d65 2028 7072 6f63 6564 7572 e_Some (procedur │ │ │ │ │ -0000c750: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ -0000c760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c780: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c790: 2020 2028 6c69 6e65 2032 3129 0a2a 2041 (line 21).* A │ │ │ │ │ -0000c7a0: 6461 536f 636b 6574 7320 7072 6573 656e daSockets presen │ │ │ │ │ -0000c7b0: 7461 7469 6f6e 3a20 2020 2020 2020 2020 tation: │ │ │ │ │ -0000c7c0: 2020 2020 2020 5768 6174 2069 7320 4164 What is Ad │ │ │ │ │ -0000c7d0: 6153 6f63 6b65 7473 3f2e 2020 286c 696e aSockets?. (lin │ │ │ │ │ -0000c7e0: 6520 2036 290a 2a20 4164 6472 6573 733a e 6).* Address: │ │ │ │ │ -0000c7f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c800: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -0000c810: 6f63 6b65 7473 2e4e 616d 696e 6720 7061 ockets.Naming pa │ │ │ │ │ -0000c820: 636b 6167 652e 0a20 2020 2020 2020 2020 ckage.. │ │ │ │ │ -0000c830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c860: 2020 2020 2020 286c 696e 6520 2039 290a (line 9). │ │ │ │ │ -0000c870: 2a20 4164 6472 6573 735f 4172 7261 793a * Address_Array: │ │ │ │ │ -0000c880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c890: 2020 2020 2020 2020 2053 6f63 6b65 7473 Sockets │ │ │ │ │ -0000c8a0: 2e4e 616d 696e 6720 7061 636b 6167 652e .Naming package. │ │ │ │ │ -0000c8b0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -0000c8c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c8d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c8e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c8f0: 286c 696e 6520 3136 290a 2a20 4164 6472 (line 16).* Addr │ │ │ │ │ -0000c900: 6573 735f 436f 6d70 6f6e 656e 743a 2020 ess_Component: │ │ │ │ │ -0000c910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c920: 2020 2053 6f63 6b65 7473 2e4e 616d 696e Sockets.Namin │ │ │ │ │ -0000c930: 6720 7061 636b 6167 652e 0a20 2020 2020 g package.. │ │ │ │ │ -0000c940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c970: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -0000c980: 3230 290a 2a20 4164 6472 6573 735f 4f66 20).* Address_Of │ │ │ │ │ -0000c990: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -0000c9a0: 2020 2020 2020 2020 2020 2020 2041 6464 Add │ │ │ │ │ -0000c9b0: 7265 7373 5f4f 6620 2866 756e 6374 696f ress_Of (functio │ │ │ │ │ -0000c9c0: 6e29 2e0a 2020 2020 2020 2020 2020 2020 n).. │ │ │ │ │ +00005f70: 6f74 6520 5075 745f 4c69 6e65 2028 7072 ote Put_Line (pr │ │ │ │ │ +00005f80: 6f63 6564 7572 6529 3a3a 2e0a 0a1f 0a46 ocedure)::.....F │ │ │ │ │ +00005f90: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ +00005fa0: 696e 666f 2c20 204e 6f64 653a 2050 7574 info, Node: Put │ │ │ │ │ +00005fb0: 2028 7072 6f63 6564 7572 6529 2c20 204e (procedure), N │ │ │ │ │ +00005fc0: 6578 743a 2050 7574 5f4c 696e 6520 2870 ext: Put_Line (p │ │ │ │ │ +00005fd0: 726f 6365 6475 7265 292c 2020 5072 6576 rocedure), Prev │ │ │ │ │ +00005fe0: 3a20 4e65 775f 4c69 6e65 2028 7072 6f63 : New_Line (proc │ │ │ │ │ +00005ff0: 6564 7572 6529 2c20 2055 703a 2041 6363 edure), Up: Acc │ │ │ │ │ +00006000: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +00006010: 6564 7572 6529 0a0a 5075 7420 2870 726f edure)..Put (pro │ │ │ │ │ +00006020: 6365 6475 7265 290a 2d2d 2d2d 2d2d 2d2d cedure).-------- │ │ │ │ │ +00006030: 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f 5345 -------..PURPOSE │ │ │ │ │ +00006040: 0a20 2020 2020 5365 6e64 2061 2073 7472 . Send a str │ │ │ │ │ +00006050: 696e 6720 746f 2061 2072 656d 6f74 6520 ing to a remote │ │ │ │ │ +00006060: 686f 7374 0a50 524f 544f 5459 5045 0a20 host.PROTOTYPE. │ │ │ │ │ +00006070: 2020 2020 202d 2d20 536f 636b 6574 732e -- Sockets. │ │ │ │ │ +00006080: 5075 743a 2070 726f 6365 6475 7265 2050 Put: procedure P │ │ │ │ │ +00006090: 7574 2028 534f 434b 4554 203a 2053 6f63 ut (SOCKET : Soc │ │ │ │ │ +000060a0: 6b65 745f 4644 2743 6c61 7373 3b0a 2020 ket_FD'Class;. │ │ │ │ │ +000060b0: 2020 2020 2020 2020 2020 2020 2053 5452 STR │ │ │ │ │ +000060c0: 203a 2053 7472 696e 6729 3b0a 0a50 4152 : String);..PAR │ │ │ │ │ +000060d0: 414d 4554 4552 530a 2020 2020 2053 4f43 AMETERS. SOC │ │ │ │ │ +000060e0: 4b45 5420 2020 2020 696e 2020 2020 2020 KET in │ │ │ │ │ +000060f0: 2020 2049 6e69 7469 616c 697a 6564 2061 Initialized a │ │ │ │ │ +00006100: 6e64 2063 6f6e 6e65 6374 6564 2073 6f63 nd connected soc │ │ │ │ │ +00006110: 6b65 7420 6f62 6a65 6374 0a20 2020 2020 ket object. │ │ │ │ │ +00006120: 5354 5220 2020 2020 2020 2069 6e20 2020 STR in │ │ │ │ │ +00006130: 2020 2020 2020 5374 7269 6e67 2074 6f20 String to │ │ │ │ │ +00006140: 7365 6e64 0a0a 4445 5343 5249 5054 494f send..DESCRIPTIO │ │ │ │ │ +00006150: 4e0a 2020 2020 2054 6869 7320 7072 6f63 N. This proc │ │ │ │ │ +00006160: 6564 7572 6520 7365 6e64 7320 7468 6520 edure sends the │ │ │ │ │ +00006170: 636f 6e74 656e 7420 6f66 2053 5452 206f content of STR o │ │ │ │ │ +00006180: 7665 7220 616e 206f 7574 676f 696e 6720 ver an outgoing │ │ │ │ │ +00006190: 6f72 0a20 2020 2020 696e 636f 6d69 6e67 or. incoming │ │ │ │ │ +000061a0: 2073 6f63 6b65 742e 0a0a 4558 4345 5054 socket...EXCEPT │ │ │ │ │ +000061b0: 494f 4e53 0a20 2020 2020 2743 6f6e 6e65 IONS. 'Conne │ │ │ │ │ +000061c0: 6374 696f 6e5f 436c 6f73 6564 2750 6565 ction_Closed'Pee │ │ │ │ │ +000061d0: 7220 6861 7320 7072 656d 6174 7572 656c r has prematurel │ │ │ │ │ +000061e0: 7920 636c 6f73 6564 2074 6865 2063 6f6e y closed the con │ │ │ │ │ +000061f0: 6e65 6374 696f 6e0a 0a53 4545 2041 4c53 nection..SEE ALS │ │ │ │ │ +00006200: 4f0a 2020 2020 202a 6e6f 7465 204e 6577 O. *note New │ │ │ │ │ +00006210: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ +00006220: 293a 3a2c 0a20 2020 2020 2a6e 6f74 6520 )::,. *note │ │ │ │ │ +00006230: 5075 745f 4c69 6e65 2028 7072 6f63 6564 Put_Line (proced │ │ │ │ │ +00006240: 7572 6529 3a3a 2c0a 2020 2020 202a 6e6f ure)::,. *no │ │ │ │ │ +00006250: 7465 2053 656e 6420 2870 726f 6365 6475 te Send (procedu │ │ │ │ │ +00006260: 7265 293a 3a2e 0a0a 1f0a 4669 6c65 3a20 re)::.....File: │ │ │ │ │ +00006270: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ +00006280: 2020 4e6f 6465 3a20 5075 745f 4c69 6e65 Node: Put_Line │ │ │ │ │ +00006290: 2028 7072 6f63 6564 7572 6529 2c20 204e (procedure), N │ │ │ │ │ +000062a0: 6578 743a 2052 6563 6569 7665 2028 6675 ext: Receive (fu │ │ │ │ │ +000062b0: 6e63 7469 6f6e 292c 2020 5072 6576 3a20 nction), Prev: │ │ │ │ │ +000062c0: 5075 7420 2870 726f 6365 6475 7265 292c Put (procedure), │ │ │ │ │ +000062d0: 2020 5570 3a20 4163 6365 7074 5f53 6f63 Up: Accept_Soc │ │ │ │ │ +000062e0: 6b65 7420 2870 726f 6365 6475 7265 290a ket (procedure). │ │ │ │ │ +000062f0: 0a50 7574 5f4c 696e 6520 2870 726f 6365 .Put_Line (proce │ │ │ │ │ +00006300: 6475 7265 290a 2d2d 2d2d 2d2d 2d2d 2d2d dure).---------- │ │ │ │ │ +00006310: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ +00006320: 4f53 450a 2020 2020 2053 656e 6420 6120 OSE. Send a │ │ │ │ │ +00006330: 4352 2f4c 4620 7465 726d 696e 6174 6564 CR/LF terminated │ │ │ │ │ +00006340: 2073 7472 696e 6720 746f 2061 2072 656d string to a rem │ │ │ │ │ +00006350: 6f74 6520 686f 7374 0a50 524f 544f 5459 ote host.PROTOTY │ │ │ │ │ +00006360: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ +00006370: 6574 732e 5075 745f 4c69 6e65 3a20 7072 ets.Put_Line: pr │ │ │ │ │ +00006380: 6f63 6564 7572 6520 5075 745f 4c69 6e65 ocedure Put_Line │ │ │ │ │ +00006390: 2028 534f 434b 4554 203a 2053 6f63 6b65 (SOCKET : Socke │ │ │ │ │ +000063a0: 745f 4644 2743 6c61 7373 3b0a 2020 2020 t_FD'Class;. │ │ │ │ │ +000063b0: 2020 2020 2020 2020 2020 2053 5452 203a STR : │ │ │ │ │ +000063c0: 2053 7472 696e 6729 3b0a 0a50 4152 414d String);..PARAM │ │ │ │ │ +000063d0: 4554 4552 530a 2020 2020 2053 4f43 4b45 ETERS. SOCKE │ │ │ │ │ +000063e0: 5420 2020 2020 696e 2020 2020 2020 2020 T in │ │ │ │ │ +000063f0: 2049 6e69 7469 616c 697a 6564 2061 6e64 Initialized and │ │ │ │ │ +00006400: 2063 6f6e 6e65 6374 6564 2073 6f63 6b65 connected socke │ │ │ │ │ +00006410: 7420 6f62 6a65 6374 0a20 2020 2020 5354 t object. ST │ │ │ │ │ +00006420: 5220 2020 2020 2020 2069 6e20 2020 2020 R in │ │ │ │ │ +00006430: 2020 2020 5374 7269 6e67 2074 6f20 7365 String to se │ │ │ │ │ +00006440: 6e64 0a0a 4445 5343 5249 5054 494f 4e0a nd..DESCRIPTION. │ │ │ │ │ +00006450: 2020 2020 2054 6869 7320 7072 6f63 6564 This proced │ │ │ │ │ +00006460: 7572 6520 7365 6e64 7320 7468 6520 636f ure sends the co │ │ │ │ │ +00006470: 6e74 656e 7420 6f66 2053 5452 2070 6c75 ntent of STR plu │ │ │ │ │ +00006480: 7320 6120 4352 2f4c 4620 636f 6d62 696e s a CR/LF combin │ │ │ │ │ +00006490: 6174 696f 6e0a 2020 2020 206f 7665 7220 ation. over │ │ │ │ │ +000064a0: 616e 206f 7574 676f 696e 6720 6f72 2069 an outgoing or i │ │ │ │ │ +000064b0: 6e63 6f6d 696e 6720 736f 636b 6574 2e0a ncoming socket.. │ │ │ │ │ +000064c0: 0a45 5843 4550 5449 4f4e 530a 2020 2020 .EXCEPTIONS. │ │ │ │ │ +000064d0: 2027 436f 6e6e 6563 7469 6f6e 5f43 6c6f 'Connection_Clo │ │ │ │ │ +000064e0: 7365 6427 5065 6572 2068 6173 2070 7265 sed'Peer has pre │ │ │ │ │ +000064f0: 6d61 7475 7265 6c79 2063 6c6f 7365 6420 maturely closed │ │ │ │ │ +00006500: 7468 6520 636f 6e6e 6563 7469 6f6e 0a0a the connection.. │ │ │ │ │ +00006510: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ +00006520: 6f74 6520 4e65 775f 4c69 6e65 2028 7072 ote New_Line (pr │ │ │ │ │ +00006530: 6f63 6564 7572 6529 3a3a 2c0a 2020 2020 ocedure)::,. │ │ │ │ │ +00006540: 202a 6e6f 7465 2050 7574 2028 7072 6f63 *note Put (proc │ │ │ │ │ +00006550: 6564 7572 6529 3a3a 2c0a 2020 2020 202a edure)::,. * │ │ │ │ │ +00006560: 6e6f 7465 2053 656e 6420 2870 726f 6365 note Send (proce │ │ │ │ │ +00006570: 6475 7265 293a 3a2e 0a0a 1f0a 4669 6c65 dure)::.....File │ │ │ │ │ +00006580: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ +00006590: 6f2c 2020 4e6f 6465 3a20 5265 6365 6976 o, Node: Receiv │ │ │ │ │ +000065a0: 6520 2866 756e 6374 696f 6e29 2c20 204e e (function), N │ │ │ │ │ +000065b0: 6578 743a 2052 6563 6569 7665 2028 7072 ext: Receive (pr │ │ │ │ │ +000065c0: 6f63 6564 7572 6529 2c20 2050 7265 763a ocedure), Prev: │ │ │ │ │ +000065d0: 2050 7574 5f4c 696e 6520 2870 726f 6365 Put_Line (proce │ │ │ │ │ +000065e0: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ +000065f0: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ +00006600: 6475 7265 290a 0a52 6563 6569 7665 2028 dure)..Receive ( │ │ │ │ │ +00006610: 6675 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d function).------ │ │ │ │ │ +00006620: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 ------------..PU │ │ │ │ │ +00006630: 5250 4f53 450a 2020 2020 2052 6563 6569 RPOSE. Recei │ │ │ │ │ +00006640: 7665 2072 6177 2064 6174 6120 6f76 6572 ve raw data over │ │ │ │ │ +00006650: 2061 2073 6f63 6b65 740a 5052 4f54 4f54 a socket.PROTOT │ │ │ │ │ +00006660: 5950 450a 2020 2020 2020 2d2d 2053 6f63 YPE. -- Soc │ │ │ │ │ +00006670: 6b65 7473 2e52 6563 6569 7665 3a20 6675 kets.Receive: fu │ │ │ │ │ +00006680: 6e63 7469 6f6e 2052 6563 6569 7665 2028 nction Receive ( │ │ │ │ │ +00006690: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ +000066a0: 4644 3b0a 2020 2020 2020 2020 2020 2020 FD;. │ │ │ │ │ +000066b0: 2020 204d 4158 203a 2041 6461 2e53 7472 MAX : Ada.Str │ │ │ │ │ +000066c0: 6561 6d73 2e53 7472 6561 6d5f 456c 656d eams.Stream_Elem │ │ │ │ │ +000066d0: 656e 745f 436f 756e 7420 3a3d 2034 3039 ent_Count := 409 │ │ │ │ │ +000066e0: 3629 0a20 2020 2020 2020 2020 2020 2020 6). │ │ │ │ │ +000066f0: 2020 7265 7475 726e 2041 6461 2e53 7472 return Ada.Str │ │ │ │ │ +00006700: 6561 6d73 2e53 7472 6561 6d5f 456c 656d eams.Stream_Elem │ │ │ │ │ +00006710: 656e 745f 4172 7261 793b 0a0a 5041 5241 ent_Array;..PARA │ │ │ │ │ +00006720: 4d45 5445 5253 0a20 2020 2020 534f 434b METERS. SOCK │ │ │ │ │ +00006730: 4554 2020 2020 2069 6e20 2020 2020 2020 ET in │ │ │ │ │ +00006740: 2020 496e 6974 6961 6c69 7a65 6420 616e Initialized an │ │ │ │ │ +00006750: 6420 626f 756e 6420 6f72 2063 6f6e 6e65 d bound or conne │ │ │ │ │ +00006760: 6374 6564 0a20 2020 2020 2020 2020 2020 cted. │ │ │ │ │ +00006770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00006780: 736f 636b 6574 206f 626a 6563 740a 2020 socket object. │ │ │ │ │ +00006790: 2020 204d 4158 2020 2020 2020 2020 696e MAX in │ │ │ │ │ +000067a0: 2020 2020 2020 2020 204d 6178 696d 756d Maximum │ │ │ │ │ +000067b0: 2064 6174 6120 6c65 6e67 7468 0a0a 5245 data length..RE │ │ │ │ │ +000067c0: 5455 524e 2056 414c 5545 0a20 2020 2020 TURN VALUE. │ │ │ │ │ +000067d0: 5265 6365 6976 6564 2072 6177 2064 6174 Received raw dat │ │ │ │ │ +000067e0: 610a 0a44 4553 4352 4950 5449 4f4e 0a20 a..DESCRIPTION. │ │ │ │ │ +000067f0: 2020 2020 5468 6973 2070 726f 6365 6475 This procedu │ │ │ │ │ +00006800: 7265 2072 6563 6569 7665 7320 6461 7461 re receives data │ │ │ │ │ +00006810: 2066 726f 6d20 6120 626f 756e 6420 5544 from a bound UD │ │ │ │ │ +00006820: 5020 736f 636b 6574 206f 7220 6120 636f P socket or a co │ │ │ │ │ +00006830: 6e6e 6563 7465 640a 2020 2020 2054 4350 nnected. TCP │ │ │ │ │ +00006840: 2073 6f63 6b65 742e 2020 4f6e 6c79 206f socket. Only o │ │ │ │ │ +00006850: 6e65 2073 7973 7465 6d20 6361 6c6c 2077 ne system call w │ │ │ │ │ +00006860: 696c 6c20 6265 2070 6572 666f 726d 6564 ill be performed │ │ │ │ │ +00006870: 3b20 7468 6973 2066 756e 6374 696f 6e0a ; this function. │ │ │ │ │ +00006880: 2020 2020 2077 696c 6c20 7265 7475 726e will return │ │ │ │ │ +00006890: 2077 6861 7465 7665 7220 6461 7461 2068 whatever data h │ │ │ │ │ +000068a0: 6173 2061 7272 6976 6564 2e20 204e 6f74 as arrived. Not │ │ │ │ │ +000068b0: 6520 7468 6174 2069 6e20 474e 4154 2074 e that in GNAT t │ │ │ │ │ +000068c0: 6865 0a20 2020 2020 7365 636f 6e64 6172 he. secondar │ │ │ │ │ +000068d0: 7920 7374 6163 6b20 6d61 7920 6265 2075 y stack may be u │ │ │ │ │ +000068e0: 7365 6420 746f 2073 746f 7265 2074 6865 sed to store the │ │ │ │ │ +000068f0: 2064 6174 6120 616e 6420 6d61 7920 7265 data and may re │ │ │ │ │ +00006900: 7375 6c74 2069 6e0a 2020 2020 2073 7461 sult in. sta │ │ │ │ │ +00006910: 636b 2073 746f 7261 6765 2065 7868 6175 ck storage exhau │ │ │ │ │ +00006920: 7374 696f 6e2e 0a0a 4558 4345 5054 494f stion...EXCEPTIO │ │ │ │ │ +00006930: 4e53 0a20 2020 2020 2743 6f6e 6e65 6374 NS. 'Connect │ │ │ │ │ +00006940: 696f 6e5f 436c 6f73 6564 2750 6565 7220 ion_Closed'Peer │ │ │ │ │ +00006950: 6861 7320 636c 6f73 6564 2074 6865 2063 has closed the c │ │ │ │ │ +00006960: 6f6e 6e65 6374 696f 6e20 6265 666f 7265 onnection before │ │ │ │ │ +00006970: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00006980: 2020 2020 2020 2020 2073 656e 6469 6e67 sending │ │ │ │ │ +00006990: 2061 6e79 2064 6174 610a 0a53 4545 2041 any data..SEE A │ │ │ │ │ +000069a0: 4c53 4f0a 2020 2020 202a 6e6f 7465 2052 LSO. *note R │ │ │ │ │ +000069b0: 6563 6569 7665 2028 7072 6f63 6564 7572 eceive (procedur │ │ │ │ │ +000069c0: 6529 3a3a 2c0a 2020 2020 202a 6e6f 7465 e)::,. *note │ │ │ │ │ +000069d0: 2052 6563 6569 7665 5f53 6f6d 6520 2870 Receive_Some (p │ │ │ │ │ +000069e0: 726f 6365 6475 7265 293a 3a2c 0a20 2020 rocedure)::,. │ │ │ │ │ +000069f0: 2020 2a6e 6f74 6520 4765 745f 4c69 6e65 *note Get_Line │ │ │ │ │ +00006a00: 2028 6675 6e63 7469 6f6e 293a 3a2c 0a20 (function)::,. │ │ │ │ │ +00006a10: 2020 2020 2a6e 6f74 6520 4765 745f 4c69 *note Get_Li │ │ │ │ │ +00006a20: 6e65 2028 7072 6f63 6564 7572 6529 3a3a ne (procedure):: │ │ │ │ │ +00006a30: 2e0a 0a1f 0a46 696c 653a 2061 6461 736f .....File: adaso │ │ │ │ │ +00006a40: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ +00006a50: 653a 2052 6563 6569 7665 2028 7072 6f63 e: Receive (proc │ │ │ │ │ +00006a60: 6564 7572 6529 2c20 204e 6578 743a 2052 edure), Next: R │ │ │ │ │ +00006a70: 6563 6569 7665 5f53 6f6d 6520 2870 726f eceive_Some (pro │ │ │ │ │ +00006a80: 6365 6475 7265 292c 2020 5072 6576 3a20 cedure), Prev: │ │ │ │ │ +00006a90: 5265 6365 6976 6520 2866 756e 6374 696f Receive (functio │ │ │ │ │ +00006aa0: 6e29 2c20 2055 703a 2041 6363 6570 745f n), Up: Accept_ │ │ │ │ │ +00006ab0: 536f 636b 6574 2028 7072 6f63 6564 7572 Socket (procedur │ │ │ │ │ +00006ac0: 6529 0a0a 5265 6365 6976 6520 2870 726f e)..Receive (pro │ │ │ │ │ +00006ad0: 6365 6475 7265 290a 2d2d 2d2d 2d2d 2d2d cedure).-------- │ │ │ │ │ +00006ae0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 -----------..PUR │ │ │ │ │ +00006af0: 504f 5345 0a20 2020 2020 5265 6365 6976 POSE. Receiv │ │ │ │ │ +00006b00: 6520 7261 7720 6461 7461 206f 7665 7220 e raw data over │ │ │ │ │ +00006b10: 6120 736f 636b 6574 0a50 524f 544f 5459 a socket.PROTOTY │ │ │ │ │ +00006b20: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ +00006b30: 6574 732e 5265 6365 6976 653a 2070 726f ets.Receive: pro │ │ │ │ │ +00006b40: 6365 6475 7265 2052 6563 6569 7665 2028 cedure Receive ( │ │ │ │ │ +00006b50: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ +00006b60: 4644 2743 6c61 7373 3b0a 2020 2020 2020 FD'Class;. │ │ │ │ │ +00006b70: 2020 2020 2020 2020 2044 4154 4120 3a20 DATA : │ │ │ │ │ +00006b80: 6f75 7420 4164 612e 5374 7265 616d 732e out Ada.Streams. │ │ │ │ │ +00006b90: 5374 7265 616d 5f45 6c65 6d65 6e74 5f41 Stream_Element_A │ │ │ │ │ +00006ba0: 7272 6179 293b 0a0a 5041 5241 4d45 5445 rray);..PARAMETE │ │ │ │ │ +00006bb0: 5253 0a20 2020 2020 534f 434b 4554 2020 RS. SOCKET │ │ │ │ │ +00006bc0: 2020 2069 6e20 2020 2020 2020 2020 496e in In │ │ │ │ │ +00006bd0: 6974 6961 6c69 7a65 6420 616e 6420 626f itialized and bo │ │ │ │ │ +00006be0: 756e 6420 6f72 2063 6f6e 6e65 6374 6564 und or connected │ │ │ │ │ +00006bf0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00006c00: 2020 2020 2020 2020 2020 2020 736f 636b sock │ │ │ │ │ +00006c10: 6574 206f 626a 6563 740a 2020 2020 2044 et object. D │ │ │ │ │ +00006c20: 4154 4120 2020 2020 2020 6f75 7420 2020 ATA out │ │ │ │ │ +00006c30: 2020 2020 2049 6e63 6f6d 696e 6720 6461 Incoming da │ │ │ │ │ +00006c40: 7461 2062 7566 6665 720a 0a44 4553 4352 ta buffer..DESCR │ │ │ │ │ +00006c50: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ +00006c60: 2070 726f 6365 6475 7265 2072 6563 6569 procedure recei │ │ │ │ │ +00006c70: 7665 7320 6461 7461 2066 726f 6d20 6120 ves data from a │ │ │ │ │ +00006c80: 626f 756e 6420 5544 5020 736f 636b 6574 bound UDP socket │ │ │ │ │ +00006c90: 206f 7220 6120 636f 6e6e 6563 7465 640a or a connected. │ │ │ │ │ +00006ca0: 2020 2020 2054 4350 2073 6f63 6b65 742e TCP socket. │ │ │ │ │ +00006cb0: 2020 4974 2077 696c 6c20 626c 6f63 6b20 It will block │ │ │ │ │ +00006cc0: 756e 7469 6c20 7468 6520 4441 5441 2072 until the DATA r │ │ │ │ │ +00006cd0: 6563 6570 7469 6f6e 2062 7566 6665 7220 eception buffer │ │ │ │ │ +00006ce0: 6861 7320 6265 656e 0a20 2020 2020 746f has been. to │ │ │ │ │ +00006cf0: 7461 6c6c 7920 6669 6c6c 6564 2e0a 0a45 tally filled...E │ │ │ │ │ +00006d00: 5843 4550 5449 4f4e 530a 2020 2020 2027 XCEPTIONS. ' │ │ │ │ │ +00006d10: 436f 6e6e 6563 7469 6f6e 5f43 6c6f 7365 Connection_Close │ │ │ │ │ +00006d20: 6427 5065 6572 2068 6173 2063 6c6f 7365 d'Peer has close │ │ │ │ │ +00006d30: 6420 7468 6520 636f 6e6e 6563 7469 6f6e d the connection │ │ │ │ │ +00006d40: 2062 6566 6f72 650a 2020 2020 2020 2020 before. │ │ │ │ │ +00006d50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00006d60: 2744 6174 6127 4c65 6e67 7468 2720 6279 'Data'Length' by │ │ │ │ │ +00006d70: 7465 730a 2020 2020 2020 2020 2020 2020 tes. │ │ │ │ │ +00006d80: 2020 2020 2020 2020 2020 2020 7765 7265 were │ │ │ │ │ +00006d90: 2072 6563 6569 7665 640a 0a53 4545 2041 received..SEE A │ │ │ │ │ +00006da0: 4c53 4f0a 2020 2020 202a 6e6f 7465 2047 LSO. *note G │ │ │ │ │ +00006db0: 6574 5f4c 696e 6520 2866 756e 6374 696f et_Line (functio │ │ │ │ │ +00006dc0: 6e29 3a3a 2c0a 2020 2020 202a 6e6f 7465 n)::,. *note │ │ │ │ │ +00006dd0: 2047 6574 5f4c 696e 6520 2870 726f 6365 Get_Line (proce │ │ │ │ │ +00006de0: 6475 7265 293a 3a2c 0a20 2020 2020 2a6e dure)::,. *n │ │ │ │ │ +00006df0: 6f74 6520 5265 6365 6976 6520 2866 756e ote Receive (fun │ │ │ │ │ +00006e00: 6374 696f 6e29 3a3a 2c0a 2020 2020 202a ction)::,. * │ │ │ │ │ +00006e10: 6e6f 7465 2052 6563 6569 7665 5f53 6f6d note Receive_Som │ │ │ │ │ +00006e20: 6520 2870 726f 6365 6475 7265 293a 3a2e e (procedure)::. │ │ │ │ │ +00006e30: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ +00006e40: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ +00006e50: 3a20 5265 6365 6976 655f 536f 6d65 2028 : Receive_Some ( │ │ │ │ │ +00006e60: 7072 6f63 6564 7572 6529 2c20 204e 6578 procedure), Nex │ │ │ │ │ +00006e70: 743a 2053 656e 6420 2870 726f 6365 6475 t: Send (procedu │ │ │ │ │ +00006e80: 7265 292c 2020 5072 6576 3a20 5265 6365 re), Prev: Rece │ │ │ │ │ +00006e90: 6976 6520 2870 726f 6365 6475 7265 292c ive (procedure), │ │ │ │ │ +00006ea0: 2020 5570 3a20 4163 6365 7074 5f53 6f63 Up: Accept_Soc │ │ │ │ │ +00006eb0: 6b65 7420 2870 726f 6365 6475 7265 290a ket (procedure). │ │ │ │ │ +00006ec0: 0a52 6563 6569 7665 5f53 6f6d 6520 2870 .Receive_Some (p │ │ │ │ │ +00006ed0: 726f 6365 6475 7265 290a 2d2d 2d2d 2d2d rocedure).------ │ │ │ │ │ +00006ee0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00006ef0: 2d2d 0a0a 5055 5250 4f53 450a 2020 2020 --..PURPOSE. │ │ │ │ │ +00006f00: 2052 6563 6569 7665 2072 6177 2064 6174 Receive raw dat │ │ │ │ │ +00006f10: 6120 6f76 6572 2061 2073 6f63 6b65 740a a over a socket. │ │ │ │ │ +00006f20: 5052 4f54 4f54 5950 450a 2020 2020 2020 PROTOTYPE. │ │ │ │ │ +00006f30: 2d2d 2053 6f63 6b65 7473 2e52 6563 6569 -- Sockets.Recei │ │ │ │ │ +00006f40: 7665 5f53 6f6d 653a 2070 726f 6365 6475 ve_Some: procedu │ │ │ │ │ +00006f50: 7265 2052 6563 6569 7665 5f53 6f6d 650a re Receive_Some. │ │ │ │ │ +00006f60: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +00006f70: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ +00006f80: 4644 2743 6c61 7373 3b0a 2020 2020 2020 FD'Class;. │ │ │ │ │ +00006f90: 2020 2020 2020 2020 2044 4154 4120 3a20 DATA : │ │ │ │ │ +00006fa0: 6f75 7420 4164 612e 5374 7265 616d 732e out Ada.Streams. │ │ │ │ │ +00006fb0: 5374 7265 616d 5f45 6c65 6d65 6e74 5f41 Stream_Element_A │ │ │ │ │ +00006fc0: 7272 6179 3b0a 2020 2020 2020 2020 2020 rray;. │ │ │ │ │ +00006fd0: 2020 2020 204c 4153 5420 3a20 6f75 7420 LAST : out │ │ │ │ │ +00006fe0: 4164 612e 5374 7265 616d 732e 5374 7265 Ada.Streams.Stre │ │ │ │ │ +00006ff0: 616d 5f45 6c65 6d65 6e74 5f4f 6666 7365 am_Element_Offse │ │ │ │ │ +00007000: 7429 3b0a 0a50 4152 414d 4554 4552 530a t);..PARAMETERS. │ │ │ │ │ +00007010: 2020 2020 2053 4f43 4b45 5420 2020 2020 SOCKET │ │ │ │ │ +00007020: 696e 2020 2020 2020 2020 2049 6e69 7469 in Initi │ │ │ │ │ +00007030: 616c 697a 6564 2061 6e64 2062 6f75 6e64 alized and bound │ │ │ │ │ +00007040: 206f 7220 636f 6e6e 6563 7465 640a 2020 or connected. │ │ │ │ │ +00007050: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00007060: 2020 2020 2020 2020 2073 6f63 6b65 7420 socket │ │ │ │ │ +00007070: 6f62 6a65 6374 0a20 2020 2020 4441 5441 object. DATA │ │ │ │ │ +00007080: 2020 2020 2020 206f 7574 2020 2020 2020 out │ │ │ │ │ +00007090: 2020 496e 636f 6d69 6e67 2064 6174 6120 Incoming data │ │ │ │ │ +000070a0: 6275 6666 6572 0a20 2020 2020 4c41 5354 buffer. LAST │ │ │ │ │ +000070b0: 2020 2020 2020 206f 7574 2020 2020 2020 out │ │ │ │ │ +000070c0: 2020 496e 6465 7820 6f66 206c 6173 7420 Index of last │ │ │ │ │ +000070d0: 656c 656d 656e 7420 706c 6163 6564 2069 element placed i │ │ │ │ │ +000070e0: 6e74 6f20 4441 5441 0a0a 4445 5343 5249 nto DATA..DESCRI │ │ │ │ │ +000070f0: 5054 494f 4e0a 2020 2020 2054 6869 7320 PTION. This │ │ │ │ │ +00007100: 7072 6f63 6564 7572 6520 7265 6365 6976 procedure receiv │ │ │ │ │ +00007110: 6573 2064 6174 6120 6672 6f6d 2061 2062 es data from a b │ │ │ │ │ +00007120: 6f75 6e64 2055 4450 2073 6f63 6b65 7420 ound UDP socket │ │ │ │ │ +00007130: 6f72 2061 2063 6f6e 6e65 6374 6564 0a20 or a connected. │ │ │ │ │ +00007140: 2020 2020 5443 5020 736f 636b 6574 2e20 TCP socket. │ │ │ │ │ +00007150: 2041 7320 736f 6f6e 2061 7320 6174 206c As soon as at l │ │ │ │ │ +00007160: 6561 7374 206f 6e65 2062 7974 6520 6861 east one byte ha │ │ │ │ │ +00007170: 7320 6265 656e 2072 6561 642c 2069 7420 s been read, it │ │ │ │ │ +00007180: 7265 7475 726e 730a 2020 2020 2077 6974 returns. wit │ │ │ │ │ +00007190: 6820 4c41 5354 2073 6574 2074 6f20 7468 h LAST set to th │ │ │ │ │ +000071a0: 6520 696e 6465 7820 6f66 2074 6865 206c e index of the l │ │ │ │ │ +000071b0: 6174 6573 7420 7772 6974 7465 6e20 656c atest written el │ │ │ │ │ +000071c0: 656d 656e 7420 6f66 2044 4154 412e 0a0a ement of DATA... │ │ │ │ │ +000071d0: 4558 4345 5054 494f 4e53 0a20 2020 2020 EXCEPTIONS. │ │ │ │ │ +000071e0: 2743 6f6e 6e65 6374 696f 6e5f 436c 6f73 'Connection_Clos │ │ │ │ │ +000071f0: 6564 2750 6565 7220 6861 7320 636c 6f73 ed'Peer has clos │ │ │ │ │ +00007200: 6564 2074 6865 2063 6f6e 6e65 6374 696f ed the connectio │ │ │ │ │ +00007210: 6e20 6265 666f 7265 0a20 2020 2020 2020 n before. │ │ │ │ │ +00007220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00007230: 2073 656e 6469 6e67 2061 6e79 2064 6174 sending any dat │ │ │ │ │ +00007240: 610a 0a53 4545 2041 4c53 4f0a 2020 2020 a..SEE ALSO. │ │ │ │ │ +00007250: 202a 6e6f 7465 2047 6574 5f4c 696e 6520 *note Get_Line │ │ │ │ │ +00007260: 2866 756e 6374 696f 6e29 3a3a 2c0a 2020 (function)::,. │ │ │ │ │ +00007270: 2020 202a 6e6f 7465 2047 6574 5f4c 696e *note Get_Lin │ │ │ │ │ +00007280: 6520 2870 726f 6365 6475 7265 293a 3a2c e (procedure)::, │ │ │ │ │ +00007290: 0a20 2020 2020 2a6e 6f74 6520 5265 6365 . *note Rece │ │ │ │ │ +000072a0: 6976 6520 2866 756e 6374 696f 6e29 3a3a ive (function):: │ │ │ │ │ +000072b0: 2c0a 2020 2020 202a 6e6f 7465 2052 6563 ,. *note Rec │ │ │ │ │ +000072c0: 6569 7665 2028 7072 6f63 6564 7572 6529 eive (procedure) │ │ │ │ │ +000072d0: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +000072e0: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +000072f0: 6f64 653a 2053 656e 6420 2870 726f 6365 ode: Send (proce │ │ │ │ │ +00007300: 6475 7265 292c 2020 4e65 7874 3a20 5365 dure), Next: Se │ │ │ │ │ +00007310: 745f 4275 6666 6572 2028 7072 6f63 6564 t_Buffer (proced │ │ │ │ │ +00007320: 7572 6529 2c20 2050 7265 763a 2052 6563 ure), Prev: Rec │ │ │ │ │ +00007330: 6569 7665 5f53 6f6d 6520 2870 726f 6365 eive_Some (proce │ │ │ │ │ +00007340: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ +00007350: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ +00007360: 6475 7265 290a 0a53 656e 6420 2870 726f dure)..Send (pro │ │ │ │ │ +00007370: 6365 6475 7265 290a 2d2d 2d2d 2d2d 2d2d cedure).-------- │ │ │ │ │ +00007380: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ +00007390: 450a 2020 2020 2053 656e 6420 7261 7720 E. Send raw │ │ │ │ │ +000073a0: 6461 7461 206f 7665 7220 6120 736f 636b data over a sock │ │ │ │ │ +000073b0: 6574 0a50 524f 544f 5459 5045 0a20 2020 et.PROTOTYPE. │ │ │ │ │ +000073c0: 2020 202d 2d20 536f 636b 6574 732e 5365 -- Sockets.Se │ │ │ │ │ +000073d0: 6e64 3a20 7072 6f63 6564 7572 6520 5365 nd: procedure Se │ │ │ │ │ +000073e0: 6e64 2028 534f 434b 4554 203a 2053 6f63 nd (SOCKET : Soc │ │ │ │ │ +000073f0: 6b65 745f 4644 3b0a 2020 2020 2020 2020 ket_FD;. │ │ │ │ │ +00007400: 2020 2020 2020 2044 4154 4120 3a20 6f75 DATA : ou │ │ │ │ │ +00007410: 7420 4164 612e 5374 7265 616d 732e 5374 t Ada.Streams.St │ │ │ │ │ +00007420: 7265 616d 5f45 6c65 6d65 6e74 5f41 7272 ream_Element_Arr │ │ │ │ │ +00007430: 6179 293b 0a0a 5041 5241 4d45 5445 5253 ay);..PARAMETERS │ │ │ │ │ +00007440: 0a20 2020 2020 534f 434b 4554 2020 2020 . SOCKET │ │ │ │ │ +00007450: 2069 6e20 2020 2020 2020 2020 496e 6974 in Init │ │ │ │ │ +00007460: 6961 6c69 7a65 6420 616e 6420 636f 6e6e ialized and conn │ │ │ │ │ +00007470: 6563 7465 6420 736f 636b 6574 206f 626a ected socket obj │ │ │ │ │ +00007480: 6563 740a 2020 2020 2044 4154 4120 2020 ect. DATA │ │ │ │ │ +00007490: 2020 2020 6f75 7420 2020 2020 2020 2044 out D │ │ │ │ │ +000074a0: 6174 6120 746f 2062 6520 7365 6e74 0a0a ata to be sent.. │ │ │ │ │ +000074b0: 4445 5343 5249 5054 494f 4e0a 2020 2020 DESCRIPTION. │ │ │ │ │ +000074c0: 2054 6869 7320 7072 6f63 6564 7572 6520 This procedure │ │ │ │ │ +000074d0: 7365 6e64 7320 6461 7461 206f 7665 7220 sends data over │ │ │ │ │ +000074e0: 6120 636f 6e6e 6563 7465 6420 6f75 7467 a connected outg │ │ │ │ │ +000074f0: 6f69 6e67 2073 6f63 6b65 7420 6f72 206f oing socket or o │ │ │ │ │ +00007500: 7665 720a 2020 2020 2061 6e20 696e 636f ver. an inco │ │ │ │ │ +00007510: 6d69 6e67 2073 6f63 6b65 742e 0a0a 4558 ming socket...EX │ │ │ │ │ +00007520: 4345 5054 494f 4e53 0a20 2020 2020 2743 CEPTIONS. 'C │ │ │ │ │ +00007530: 6f6e 6e65 6374 696f 6e5f 436c 6f73 6564 onnection_Closed │ │ │ │ │ +00007540: 2750 6565 7220 6861 7320 7072 656d 6174 'Peer has premat │ │ │ │ │ +00007550: 7572 656c 7920 636c 6f73 6564 2074 6865 urely closed the │ │ │ │ │ +00007560: 2063 6f6e 6e65 6374 696f 6e0a 0a53 4545 connection..SEE │ │ │ │ │ +00007570: 2041 4c53 4f0a 2020 2020 202a 6e6f 7465 ALSO. *note │ │ │ │ │ +00007580: 2050 7574 2028 7072 6f63 6564 7572 6529 Put (procedure) │ │ │ │ │ +00007590: 3a3a 2c0a 2020 2020 202a 6e6f 7465 2050 ::,. *note P │ │ │ │ │ +000075a0: 7574 5f4c 696e 6520 2870 726f 6365 6475 ut_Line (procedu │ │ │ │ │ +000075b0: 7265 293a 3a2e 0a0a 1f0a 4669 6c65 3a20 re)::.....File: │ │ │ │ │ +000075c0: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ +000075d0: 2020 4e6f 6465 3a20 5365 745f 4275 6666 Node: Set_Buff │ │ │ │ │ +000075e0: 6572 2028 7072 6f63 6564 7572 6529 2c20 er (procedure), │ │ │ │ │ +000075f0: 204e 6578 743a 2053 6574 736f 636b 6f70 Next: Setsockop │ │ │ │ │ +00007600: 7420 2870 726f 6365 6475 7265 292c 2020 t (procedure), │ │ │ │ │ +00007610: 5072 6576 3a20 5365 6e64 2028 7072 6f63 Prev: Send (proc │ │ │ │ │ +00007620: 6564 7572 6529 2c20 2055 703a 2041 6363 edure), Up: Acc │ │ │ │ │ +00007630: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +00007640: 6564 7572 6529 0a0a 5365 745f 4275 6666 edure)..Set_Buff │ │ │ │ │ +00007650: 6572 2028 7072 6f63 6564 7572 6529 0a2d er (procedure).- │ │ │ │ │ +00007660: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00007670: 2d2d 2d2d 2d0a 0a50 5552 504f 5345 0a20 -----..PURPOSE. │ │ │ │ │ +00007680: 2020 2020 496e 7374 616c 6c20 6120 6c69 Install a li │ │ │ │ │ +00007690: 6e65 2d6f 7269 656e 7465 6420 6275 6666 ne-oriented buff │ │ │ │ │ +000076a0: 6572 206f 6620 7468 6520 736f 636b 6574 er of the socket │ │ │ │ │ +000076b0: 206f 626a 6563 740a 5052 4f54 4f54 5950 object.PROTOTYP │ │ │ │ │ +000076c0: 450a 2020 2020 2020 2d2d 2053 6f63 6b65 E. -- Socke │ │ │ │ │ +000076d0: 7473 2e53 6574 5f42 7566 6665 723a 2070 ts.Set_Buffer: p │ │ │ │ │ +000076e0: 726f 6365 6475 7265 2053 6574 5f42 7566 rocedure Set_Buf │ │ │ │ │ +000076f0: 6665 720a 2020 2020 2020 2020 2020 2020 fer. │ │ │ │ │ +00007700: 2020 2028 534f 434b 4554 203a 2053 6f63 (SOCKET : Soc │ │ │ │ │ +00007710: 6b65 745f 4644 2743 6c61 7373 3b20 4c45 ket_FD'Class; LE │ │ │ │ │ +00007720: 4e47 5448 203a 2050 6f73 6974 6976 6520 NGTH : Positive │ │ │ │ │ +00007730: 3a3d 2031 3530 3029 3b0a 0a50 4152 414d := 1500);..PARAM │ │ │ │ │ +00007740: 4554 4552 530a 2020 2020 2053 4f43 4b45 ETERS. SOCKE │ │ │ │ │ +00007750: 5420 2020 2020 696e 2020 2020 2020 2020 T in │ │ │ │ │ +00007760: 2049 6e69 7469 616c 697a 6564 2061 6e64 Initialized and │ │ │ │ │ +00007770: 2063 6f6e 6e65 6374 6564 2073 6f63 6b65 connected socke │ │ │ │ │ +00007780: 7420 6f62 6a65 6374 0a20 2020 2020 4c45 t object. LE │ │ │ │ │ +00007790: 4e47 5448 2020 2020 2069 6e20 2020 2020 NGTH in │ │ │ │ │ +000077a0: 2020 2020 5369 7a65 2069 6e20 6279 7465 Size in byte │ │ │ │ │ +000077b0: 7320 6f66 2074 6865 206e 6577 6c79 2069 s of the newly i │ │ │ │ │ +000077c0: 6e73 7461 6c6c 6564 0a20 2020 2020 2020 nstalled. │ │ │ │ │ +000077d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000077e0: 2020 2020 6275 6666 6572 0a0a 4445 5343 buffer..DESC │ │ │ │ │ +000077f0: 5249 5054 494f 4e0a 2020 2020 2054 6869 RIPTION. Thi │ │ │ │ │ +00007800: 7320 7072 6f63 6564 7572 6520 7075 7473 s procedure puts │ │ │ │ │ +00007810: 2074 6865 2073 6f63 6b65 7420 6f62 6a65 the socket obje │ │ │ │ │ +00007820: 6374 2069 6e20 6275 6666 6572 6564 206d ct in buffered m │ │ │ │ │ +00007830: 6f64 652e 2020 4966 2074 6865 0a20 2020 ode. If the. │ │ │ │ │ +00007840: 2020 736f 636b 6574 2077 6173 2061 6c72 socket was alr │ │ │ │ │ +00007850: 6561 6479 2062 7566 6665 7265 642c 2074 eady buffered, t │ │ │ │ │ +00007860: 6865 2063 6f6e 7465 6e74 206f 6620 7468 he content of th │ │ │ │ │ +00007870: 6520 7072 6576 696f 7573 2062 7566 6665 e previous buffe │ │ │ │ │ +00007880: 720a 2020 2020 2077 696c 6c20 6265 206c r. will be l │ │ │ │ │ +00007890: 6f73 742e 2020 5468 6520 6275 6666 6572 ost. The buffer │ │ │ │ │ +000078a0: 6564 206d 6f64 6520 6f6e 6c79 2061 6666 ed mode only aff │ │ │ │ │ +000078b0: 6563 7473 2063 6861 7261 6374 6572 2d20 ects character- │ │ │ │ │ +000078c0: 616e 640a 2020 2020 206c 696e 652d 6f72 and. line-or │ │ │ │ │ +000078d0: 6965 6e74 6564 2072 6561 6420 6f70 6572 iented read oper │ │ │ │ │ +000078e0: 6174 696f 6e20 7375 6368 2061 7320 2a6e ation such as *n │ │ │ │ │ +000078f0: 6f74 6520 4765 7420 2866 756e 6374 696f ote Get (functio │ │ │ │ │ +00007900: 6e29 3a3a 2c20 2a6e 6f74 650a 2020 2020 n)::, *note. │ │ │ │ │ +00007910: 2047 6574 5f43 6861 7220 2866 756e 6374 Get_Char (funct │ │ │ │ │ +00007920: 696f 6e29 3a3a 2c20 616e 6420 2a6e 6f74 ion)::, and *not │ │ │ │ │ +00007930: 6520 4765 745f 4c69 6e65 2028 6675 6e63 e Get_Line (func │ │ │ │ │ +00007940: 7469 6f6e 293a 3a2e 2020 4f74 6865 720a tion)::. Other. │ │ │ │ │ +00007950: 2020 2020 2072 6563 6570 7469 6f6e 2073 reception s │ │ │ │ │ +00007960: 7562 7072 6f67 7261 6d73 2077 696c 6c20 ubprograms will │ │ │ │ │ +00007970: 6e6f 7420 6675 6e63 7469 6f6e 2070 726f not function pro │ │ │ │ │ +00007980: 7065 726c 7920 6966 2062 7566 6665 7265 perly if buffere │ │ │ │ │ +00007990: 6420 6d6f 6465 0a20 2020 2020 6973 2075 d mode. is u │ │ │ │ │ +000079a0: 7365 6420 6174 2074 6865 2073 616d 6520 sed at the same │ │ │ │ │ +000079b0: 7469 6d65 2e0a 0a20 2020 2020 5468 6520 time... The │ │ │ │ │ +000079c0: 7369 7a65 206f 6620 7468 6520 6275 6666 size of the buff │ │ │ │ │ +000079d0: 6572 2068 6173 2074 6f20 6265 2067 7265 er has to be gre │ │ │ │ │ +000079e0: 6174 6572 2074 6861 6e20 7468 6520 6269 ater than the bi │ │ │ │ │ +000079f0: 6767 6573 7420 706f 7373 6962 6c65 0a20 ggest possible. │ │ │ │ │ +00007a00: 2020 2020 7061 636b 6574 2073 656e 7420 packet sent │ │ │ │ │ +00007a10: 6279 2074 6865 2072 656d 6f74 6520 686f by the remote ho │ │ │ │ │ +00007a20: 7374 2c20 6f74 6865 7277 6973 6520 6461 st, otherwise da │ │ │ │ │ +00007a30: 7461 206c 6f73 7320 6d61 7920 6f63 6375 ta loss may occu │ │ │ │ │ +00007a40: 722e 0a0a 5345 4520 414c 534f 0a20 2020 r...SEE ALSO. │ │ │ │ │ +00007a50: 2020 2a6e 6f74 6520 556e 7365 745f 4275 *note Unset_Bu │ │ │ │ │ +00007a60: 6666 6572 2028 7072 6f63 6564 7572 6529 ffer (procedure) │ │ │ │ │ +00007a70: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +00007a80: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +00007a90: 6f64 653a 2053 6574 736f 636b 6f70 7420 ode: Setsockopt │ │ │ │ │ +00007aa0: 2870 726f 6365 6475 7265 292c 2020 4e65 (procedure), Ne │ │ │ │ │ +00007ab0: 7874 3a20 5368 7574 646f 776e 2028 7072 xt: Shutdown (pr │ │ │ │ │ +00007ac0: 6f63 6564 7572 6529 2c20 2050 7265 763a ocedure), Prev: │ │ │ │ │ +00007ad0: 2053 6574 5f42 7566 6665 7220 2870 726f Set_Buffer (pro │ │ │ │ │ +00007ae0: 6365 6475 7265 292c 2020 5570 3a20 4163 cedure), Up: Ac │ │ │ │ │ +00007af0: 6365 7074 5f53 6f63 6b65 7420 2870 726f cept_Socket (pro │ │ │ │ │ +00007b00: 6365 6475 7265 290a 0a53 6574 736f 636b cedure)..Setsock │ │ │ │ │ +00007b10: 6f70 7420 2870 726f 6365 6475 7265 290a opt (procedure). │ │ │ │ │ +00007b20: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00007b30: 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 450a ------..PURPOSE. │ │ │ │ │ +00007b40: 2020 2020 2053 6574 2061 2073 6f63 6b65 Set a socke │ │ │ │ │ +00007b50: 7420 6f70 7469 6f6e 0a50 524f 544f 5459 t option.PROTOTY │ │ │ │ │ +00007b60: 5045 0a20 2020 2020 202d 2d20 536f 636b PE. -- Sock │ │ │ │ │ +00007b70: 6574 732e 5365 7473 6f63 6b6f 7074 3a20 ets.Setsockopt: │ │ │ │ │ +00007b80: 7072 6f63 6564 7572 6520 5365 7473 6f63 procedure Setsoc │ │ │ │ │ +00007b90: 6b6f 7074 2028 534f 434b 4554 203a 2053 kopt (SOCKET : S │ │ │ │ │ +00007ba0: 6f63 6b65 745f 4644 3b0a 2020 2020 2020 ocket_FD;. │ │ │ │ │ +00007bb0: 2020 2020 2020 2020 204c 4556 454c 203a LEVEL : │ │ │ │ │ +00007bc0: 2053 6f63 6b65 745f 4c65 7665 6c20 3a3d Socket_Level := │ │ │ │ │ +00007bd0: 2053 4f4c 5f53 4f43 4b45 543b 0a20 2020 SOL_SOCKET;. │ │ │ │ │ +00007be0: 2020 2020 2020 2020 2020 2020 4f50 544e OPTN │ │ │ │ │ +00007bf0: 414d 4520 3a20 536f 636b 6574 5f4f 7074 AME : Socket_Opt │ │ │ │ │ +00007c00: 696f 6e3b 204f 5054 5641 4c20 3a20 496e ion; OPTVAL : In │ │ │ │ │ +00007c10: 7465 6765 7229 3b0a 0a50 4152 414d 4554 teger);..PARAMET │ │ │ │ │ +00007c20: 4552 530a 2020 2020 2053 4f43 4b45 5420 ERS. SOCKET │ │ │ │ │ +00007c30: 2020 2020 696e 2020 2020 2020 2020 2049 in I │ │ │ │ │ +00007c40: 6e69 7469 616c 697a 6564 2061 6e64 2062 nitialized and b │ │ │ │ │ +00007c50: 6f75 6e64 2073 6f63 6b65 7420 6f62 6a65 ound socket obje │ │ │ │ │ +00007c60: 6374 0a20 2020 2020 4c45 5645 4c20 2020 ct. LEVEL │ │ │ │ │ +00007c70: 2020 2069 6e20 2020 2020 2020 2020 5072 in Pr │ │ │ │ │ +00007c80: 6f74 6f63 6f6c 206c 6576 656c 0a20 2020 otocol level. │ │ │ │ │ +00007c90: 2020 4f50 544e 414d 4520 2020 2069 6e20 OPTNAME in │ │ │ │ │ +00007ca0: 2020 2020 2020 2020 4f70 7469 6f6e 206e Option n │ │ │ │ │ +00007cb0: 616d 650a 2020 2020 204f 5054 5641 4c20 ame. OPTVAL │ │ │ │ │ +00007cc0: 2020 2020 696e 2020 2020 2020 2020 204f in O │ │ │ │ │ +00007cd0: 7074 696f 6e20 7661 6c75 650a 0a44 4553 ption value..DES │ │ │ │ │ +00007ce0: 4352 4950 5449 4f4e 0a20 2020 2020 5468 CRIPTION. Th │ │ │ │ │ +00007cf0: 6973 2070 726f 6365 6475 7265 2073 6574 is procedure set │ │ │ │ │ +00007d00: 7320 6f70 7469 6f6e 7320 6170 706c 6963 s options applic │ │ │ │ │ +00007d10: 6162 6c65 2074 6f20 6120 736f 636b 6574 able to a socket │ │ │ │ │ +00007d20: 2e20 2050 6c65 6173 6520 7365 650a 2020 . Please see. │ │ │ │ │ +00007d30: 2020 2079 6f75 7220 6f70 6572 6174 696e your operatin │ │ │ │ │ +00007d40: 6720 7379 7374 656d 206d 616e 7561 6c20 g system manual │ │ │ │ │ +00007d50: 666f 7220 7573 6162 6c65 206c 6576 656c for usable level │ │ │ │ │ +00007d60: 7320 616e 6420 6f70 7469 6f6e 732e 0a0a s and options... │ │ │ │ │ +00007d70: 2020 2020 2054 776f 206c 6576 656c 7320 Two levels │ │ │ │ │ +00007d80: 6172 6520 6465 6669 6e65 643a 2027 534f are defined: 'SO │ │ │ │ │ +00007d90: 4c5f 534f 434b 4554 2720 2874 6865 2064 L_SOCKET' (the d │ │ │ │ │ +00007da0: 6566 6175 6c74 2920 616e 640a 2020 2020 efault) and. │ │ │ │ │ +00007db0: 2027 4950 5052 4f54 4f5f 4950 272e 2020 'IPPROTO_IP'. │ │ │ │ │ +00007dc0: 5468 6520 6f70 7469 6f6e 7320 6172 6520 The options are │ │ │ │ │ +00007dd0: 2753 4f5f 5245 5553 4541 4444 5227 2c20 'SO_REUSEADDR', │ │ │ │ │ +00007de0: 2753 4f5f 5245 5553 4550 4f52 5427 2c0a 'SO_REUSEPORT',. │ │ │ │ │ +00007df0: 2020 2020 2027 4950 5f4d 554c 5449 4341 'IP_MULTICA │ │ │ │ │ +00007e00: 5354 5f54 544c 272c 2027 4950 5f41 4444 ST_TTL', 'IP_ADD │ │ │ │ │ +00007e10: 5f4d 454d 4245 5253 4849 5027 2c20 2749 _MEMBERSHIP', 'I │ │ │ │ │ +00007e20: 505f 4452 4f50 5f4d 454d 4245 5253 4849 P_DROP_MEMBERSHI │ │ │ │ │ +00007e30: 5027 2c0a 2020 2020 2027 4950 5f4d 554c P',. 'IP_MUL │ │ │ │ │ +00007e40: 5449 4341 5354 5f4c 4f4f 5027 2c20 2753 TICAST_LOOP', 'S │ │ │ │ │ +00007e50: 4f5f 534e 4442 5546 2720 616e 6420 2749 O_SNDBUF' and 'I │ │ │ │ │ +00007e60: 505f 5243 5642 5546 272e 0a0a 2020 2020 P_RCVBUF'... │ │ │ │ │ +00007e70: 204e 6f74 6520 7468 6174 2075 6e6c 696b Note that unlik │ │ │ │ │ +00007e80: 6520 7468 6569 7220 4320 6c61 6e67 7561 e their C langua │ │ │ │ │ +00007e90: 6765 2063 6f75 6e74 6572 7061 7274 2c20 ge counterpart, │ │ │ │ │ +00007ea0: 2747 6574 736f 636b 6f70 7427 2061 6e64 'Getsockopt' and │ │ │ │ │ +00007eb0: 0a20 2020 2020 2753 6574 736f 636b 6f70 . 'Setsockop │ │ │ │ │ +00007ec0: 7427 2064 6f20 6e6f 7420 7265 7175 6972 t' do not requir │ │ │ │ │ +00007ed0: 6520 616e 2065 7874 7261 2070 6172 616d e an extra param │ │ │ │ │ +00007ee0: 6574 6572 2072 6570 7265 7365 6e74 696e eter representin │ │ │ │ │ +00007ef0: 6720 7468 650a 2020 2020 206c 656e 6774 g the. lengt │ │ │ │ │ +00007f00: 6820 696e 2062 7974 6573 206f 6620 7468 h in bytes of th │ │ │ │ │ +00007f10: 6520 6f70 7469 6f6e 2076 616c 7565 2e20 e option value. │ │ │ │ │ +00007f20: 2041 6461 536f 636b 6574 7320 6e6f 7773 AdaSockets nows │ │ │ │ │ +00007f30: 2074 6865 2072 6967 6874 0a20 2020 2020 the right. │ │ │ │ │ +00007f40: 7369 7a65 2066 6f72 2065 7665 7279 206f size for every o │ │ │ │ │ +00007f50: 7074 696f 6e2e 0a0a 5345 4520 414c 534f ption...SEE ALSO │ │ │ │ │ +00007f60: 0a20 2020 2020 2a6e 6f74 6520 4765 7473 . *note Gets │ │ │ │ │ +00007f70: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ +00007f80: 6529 3a3a 2e0a 0a1f 0a46 696c 653a 2061 e)::.....File: a │ │ │ │ │ +00007f90: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ +00007fa0: 204e 6f64 653a 2053 6875 7464 6f77 6e20 Node: Shutdown │ │ │ │ │ +00007fb0: 2870 726f 6365 6475 7265 292c 2020 4e65 (procedure), Ne │ │ │ │ │ +00007fc0: 7874 3a20 536f 636b 6574 2028 7072 6f63 xt: Socket (proc │ │ │ │ │ +00007fd0: 6564 7572 6529 2c20 2050 7265 763a 2053 edure), Prev: S │ │ │ │ │ +00007fe0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +00007ff0: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ +00008000: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ +00008010: 6475 7265 290a 0a53 6875 7464 6f77 6e20 dure)..Shutdown │ │ │ │ │ +00008020: 2870 726f 6365 6475 7265 290a 2d2d 2d2d (procedure).---- │ │ │ │ │ +00008030: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00008040: 0a0a 5055 5250 4f53 450a 2020 2020 2053 ..PURPOSE. S │ │ │ │ │ +00008050: 6875 7464 6f77 6e20 6120 736f 636b 6574 hutdown a socket │ │ │ │ │ +00008060: 0a50 524f 544f 5459 5045 0a20 2020 2020 .PROTOTYPE. │ │ │ │ │ +00008070: 202d 2d20 536f 636b 6574 732e 5368 7574 -- Sockets.Shut │ │ │ │ │ +00008080: 646f 776e 3a20 7072 6f63 6564 7572 6520 down: procedure │ │ │ │ │ +00008090: 5368 7574 646f 776e 0a20 2020 2020 2020 Shutdown. │ │ │ │ │ +000080a0: 2020 2020 2020 2020 2853 4f43 4b45 5420 (SOCKET │ │ │ │ │ +000080b0: 3a20 696e 206f 7574 2053 6f63 6b65 745f : in out Socket_ │ │ │ │ │ +000080c0: 4644 3b20 484f 5720 3a20 5368 7574 646f FD; HOW : Shutdo │ │ │ │ │ +000080d0: 776e 5f54 7970 6520 3a3d 2042 6f74 6829 wn_Type := Both) │ │ │ │ │ +000080e0: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +000080f0: 2020 2053 4f43 4b45 5420 2020 2020 696e SOCKET in │ │ │ │ │ +00008100: 206f 7574 2020 2020 2053 6f63 6b65 7420 out Socket │ │ │ │ │ +00008110: 6f62 6a65 6374 2074 6f20 7368 7574 646f object to shutdo │ │ │ │ │ +00008120: 776e 0a20 2020 2020 484f 5720 2020 2020 wn. HOW │ │ │ │ │ +00008130: 2020 2069 6e20 2020 2020 2020 2020 4469 in Di │ │ │ │ │ +00008140: 7265 6374 696f 6e20 746f 2073 6875 7464 rection to shutd │ │ │ │ │ +00008150: 6f77 6e0a 0a44 4553 4352 4950 5449 4f4e own..DESCRIPTION │ │ │ │ │ +00008160: 0a20 2020 2020 5468 6973 2070 726f 6365 . This proce │ │ │ │ │ +00008170: 6475 7265 2073 6875 7464 6f77 6e73 2065 dure shutdowns e │ │ │ │ │ +00008180: 6974 6865 7220 6469 7265 6374 696f 6e20 ither direction │ │ │ │ │ +00008190: 6f66 2074 6865 2073 6f63 6b65 742e 2020 of the socket. │ │ │ │ │ +000081a0: 484f 5720 6361 6e0a 2020 2020 2074 616b HOW can. tak │ │ │ │ │ +000081b0: 6520 7468 6520 7661 6c75 6520 2753 656e e the value 'Sen │ │ │ │ │ +000081c0: 6427 2c20 2752 6563 6569 7665 2720 6f72 d', 'Receive' or │ │ │ │ │ +000081d0: 2027 426f 7468 272e 0a0a 5345 4520 414c 'Both'...SEE AL │ │ │ │ │ +000081e0: 534f 0a20 2020 2020 2a6e 6f74 6520 536f SO. *note So │ │ │ │ │ +000081f0: 636b 6574 2028 7072 6f63 6564 7572 6529 cket (procedure) │ │ │ │ │ +00008200: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +00008210: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +00008220: 6f64 653a 2053 6f63 6b65 7420 2870 726f ode: Socket (pro │ │ │ │ │ +00008230: 6365 6475 7265 292c 2020 4e65 7874 3a20 cedure), Next: │ │ │ │ │ +00008240: 556e 7365 745f 4275 6666 6572 2028 7072 Unset_Buffer (pr │ │ │ │ │ +00008250: 6f63 6564 7572 6529 2c20 2050 7265 763a ocedure), Prev: │ │ │ │ │ +00008260: 2053 6875 7464 6f77 6e20 2870 726f 6365 Shutdown (proce │ │ │ │ │ +00008270: 6475 7265 292c 2020 5570 3a20 4163 6365 dure), Up: Acce │ │ │ │ │ +00008280: 7074 5f53 6f63 6b65 7420 2870 726f 6365 pt_Socket (proce │ │ │ │ │ +00008290: 6475 7265 290a 0a53 6f63 6b65 7420 2870 dure)..Socket (p │ │ │ │ │ +000082a0: 726f 6365 6475 7265 290a 2d2d 2d2d 2d2d rocedure).------ │ │ │ │ │ +000082b0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 ------------..PU │ │ │ │ │ +000082c0: 5250 4f53 450a 2020 2020 2043 7265 6174 RPOSE. Creat │ │ │ │ │ +000082d0: 6520 6120 736f 636b 6574 206f 6620 7468 e a socket of th │ │ │ │ │ +000082e0: 6520 6769 7665 6e20 6d6f 6465 0a50 524f e given mode.PRO │ │ │ │ │ +000082f0: 544f 5459 5045 0a20 2020 2020 202d 2d20 TOTYPE. -- │ │ │ │ │ +00008300: 536f 636b 6574 732e 536f 636b 6574 3a20 Sockets.Socket: │ │ │ │ │ +00008310: 7072 6f63 6564 7572 6520 536f 636b 6574 procedure Socket │ │ │ │ │ +00008320: 2028 534f 434b 4554 203a 206f 7574 2053 (SOCKET : out S │ │ │ │ │ +00008330: 6f63 6b65 745f 4644 3b0a 2020 2020 2020 ocket_FD;. │ │ │ │ │ +00008340: 2020 2020 2020 2020 2044 4f4d 4149 4e20 DOMAIN │ │ │ │ │ +00008350: 3a20 536f 636b 6574 5f44 6f6d 6169 6e20 : Socket_Domain │ │ │ │ │ +00008360: 3a3d 2050 465f 494e 4554 3b0a 2020 2020 := PF_INET;. │ │ │ │ │ +00008370: 2020 2020 2020 2020 2020 2054 5950 203a TYP : │ │ │ │ │ +00008380: 2053 6f63 6b65 745f 5479 7065 203a 3d20 Socket_Type := │ │ │ │ │ +00008390: 534f 434b 5f53 5452 4541 4d29 3b0a 0a50 SOCK_STREAM);..P │ │ │ │ │ +000083a0: 4152 414d 4554 4552 530a 2020 2020 2053 ARAMETERS. S │ │ │ │ │ +000083b0: 4f43 4b45 5420 2020 2020 6f75 7420 2020 OCKET out │ │ │ │ │ +000083c0: 2020 2020 2053 6f63 6b65 7420 6f62 6a65 Socket obje │ │ │ │ │ +000083d0: 6374 2074 6f20 696e 6974 6961 6c69 7a65 ct to initialize │ │ │ │ │ +000083e0: 0a20 2020 2020 444f 4d41 494e 2020 2020 . DOMAIN │ │ │ │ │ +000083f0: 2069 6e20 2020 2020 2020 2020 5072 6f74 in Prot │ │ │ │ │ +00008400: 6f63 6f6c 2066 616d 696c 790a 2020 2020 ocol family. │ │ │ │ │ +00008410: 2054 5950 2020 2020 2020 2020 696e 2020 TYP in │ │ │ │ │ +00008420: 2020 2020 2020 204b 696e 6420 6f66 2073 Kind of s │ │ │ │ │ +00008430: 6f63 6b65 7473 0a0a 4445 5343 5249 5054 ockets..DESCRIPT │ │ │ │ │ +00008440: 494f 4e0a 2020 2020 2054 6869 7320 7072 ION. This pr │ │ │ │ │ +00008450: 6f63 6564 7572 6520 696e 6974 6961 6c69 ocedure initiali │ │ │ │ │ +00008460: 7a65 7320 6120 6e65 7720 736f 636b 6574 zes a new socket │ │ │ │ │ +00008470: 206f 626a 6563 7420 6279 2072 6573 6572 object by reser │ │ │ │ │ +00008480: 7669 6e67 2061 2066 696c 650a 2020 2020 ving a file. │ │ │ │ │ +00008490: 2064 6573 6372 6970 746f 7220 746f 2074 descriptor to t │ │ │ │ │ +000084a0: 6865 206f 7065 7261 7469 6e67 2073 7973 he operating sys │ │ │ │ │ +000084b0: 7465 6d2e 2020 466f 7220 6261 636b 7761 tem. For backwa │ │ │ │ │ +000084c0: 7264 2063 6f6d 7061 7469 6269 6c69 7479 rd compatibility │ │ │ │ │ +000084d0: 0a20 2020 2020 7769 7468 206f 6c64 6572 . with older │ │ │ │ │ +000084e0: 2076 6572 7369 6f6e 7320 6f66 2074 6869 versions of thi │ │ │ │ │ +000084f0: 7320 6c69 6272 6172 792c 2027 4146 5f49 s library, 'AF_I │ │ │ │ │ +00008500: 4e45 5427 2069 7320 7374 696c 6c20 6163 NET' is still ac │ │ │ │ │ +00008510: 6365 7074 6564 2061 730a 2020 2020 2061 cepted as. a │ │ │ │ │ +00008520: 2076 616c 7565 2062 7574 2073 686f 756c value but shoul │ │ │ │ │ +00008530: 6420 6265 2072 6570 6c61 6365 6420 6173 d be replaced as │ │ │ │ │ +00008540: 2073 6f6f 6e20 6173 2070 6f73 7369 626c soon as possibl │ │ │ │ │ +00008550: 6520 7769 7468 2074 6865 2070 726f 7065 e with the prope │ │ │ │ │ +00008560: 720a 2020 2020 2027 5046 5f49 4e45 5427 r. 'PF_INET' │ │ │ │ │ +00008570: 2e20 2055 7369 6e67 2027 534f 434b 5f53 . Using 'SOCK_S │ │ │ │ │ +00008580: 5452 4541 4d27 2066 6f72 2074 6865 2054 TREAM' for the T │ │ │ │ │ +00008590: 5950 2061 7267 756d 656e 7420 7769 6c6c YP argument will │ │ │ │ │ +000085a0: 2063 7265 6174 6520 610a 2020 2020 2054 create a. T │ │ │ │ │ +000085b0: 4350 2073 6f63 6b65 7420 7768 696c 6520 CP socket while │ │ │ │ │ +000085c0: 6120 2753 4f43 4b5f 4447 5241 4d27 2077 a 'SOCK_DGRAM' w │ │ │ │ │ +000085d0: 696c 6c20 6372 6561 7465 2061 2055 4450 ill create a UDP │ │ │ │ │ +000085e0: 206f 6e65 2e0a 0a45 5841 4d50 4c45 0a20 one...EXAMPLE. │ │ │ │ │ +000085f0: 2020 2020 2020 2020 2064 6563 6c61 7265 declare │ │ │ │ │ +00008600: 0a20 2020 2020 2020 2020 2020 2020 536f . So │ │ │ │ │ +00008610: 636b 203a 2053 6f63 6b65 745f 4644 3b0a ck : Socket_FD;. │ │ │ │ │ +00008620: 2020 2020 2020 2020 2020 6265 6769 6e0a begin. │ │ │ │ │ +00008630: 2020 2020 2020 2020 2020 2020 202d 2d20 -- │ │ │ │ │ +00008640: 4372 6561 7465 2061 2054 4350 2073 6f63 Create a TCP soc │ │ │ │ │ +00008650: 6b65 740a 2020 2020 2020 2020 2020 2020 ket. │ │ │ │ │ +00008660: 2053 6f63 6b65 7420 2853 6f63 6b2c 2050 Socket (Sock, P │ │ │ │ │ +00008670: 465f 494e 4554 2c20 534f 434b 5f53 5452 F_INET, SOCK_STR │ │ │ │ │ +00008680: 4541 4d29 3b0a 2020 2020 2020 2020 2020 EAM);. │ │ │ │ │ +00008690: 2020 202d 2d20 5065 7266 6f72 6d20 736f -- Perform so │ │ │ │ │ +000086a0: 6d65 206f 7065 7261 7469 6f6e 7320 6f6e me operations on │ │ │ │ │ +000086b0: 2073 6f63 6b65 740a 2020 2020 2020 2020 socket. │ │ │ │ │ +000086c0: 2020 2020 205b 2e2e 2e5d 0a20 2020 2020 [...]. │ │ │ │ │ +000086d0: 2020 2020 2020 2020 2d2d 2053 6875 7464 -- Shutd │ │ │ │ │ +000086e0: 6f77 6e20 7468 6520 736f 636b 6574 2069 own the socket i │ │ │ │ │ +000086f0: 6e20 626f 7468 2064 6972 6563 7469 6f6e n both direction │ │ │ │ │ +00008700: 730a 2020 2020 2020 2020 2020 2020 2053 s. S │ │ │ │ │ +00008710: 6875 7464 6f77 6e20 2853 6f63 6b2c 2042 hutdown (Sock, B │ │ │ │ │ +00008720: 6f74 6829 3b0a 2020 2020 2020 2020 2020 oth);. │ │ │ │ │ +00008730: 656e 643b 0a0a 5345 4520 414c 534f 0a20 end;..SEE ALSO. │ │ │ │ │ +00008740: 2020 2020 2a6e 6f74 6520 5368 7574 646f *note Shutdo │ │ │ │ │ +00008750: 776e 2028 7072 6f63 6564 7572 6529 3a3a wn (procedure):: │ │ │ │ │ +00008760: 2e0a 0a1f 0a46 696c 653a 2061 6461 736f .....File: adaso │ │ │ │ │ +00008770: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ +00008780: 653a 2055 6e73 6574 5f42 7566 6665 7220 e: Unset_Buffer │ │ │ │ │ +00008790: 2870 726f 6365 6475 7265 292c 2020 5072 (procedure), Pr │ │ │ │ │ +000087a0: 6576 3a20 536f 636b 6574 2028 7072 6f63 ev: Socket (proc │ │ │ │ │ +000087b0: 6564 7572 6529 2c20 2055 703a 2041 6363 edure), Up: Acc │ │ │ │ │ +000087c0: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +000087d0: 6564 7572 6529 0a0a 556e 7365 745f 4275 edure)..Unset_Bu │ │ │ │ │ +000087e0: 6666 6572 2028 7072 6f63 6564 7572 6529 ffer (procedure) │ │ │ │ │ +000087f0: 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d .--------------- │ │ │ │ │ +00008800: 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f ---------..PURPO │ │ │ │ │ +00008810: 5345 0a20 2020 2020 4465 696e 7374 616c SE. Deinstal │ │ │ │ │ +00008820: 6c20 7468 6520 6c69 6e65 2d6f 7269 656e l the line-orien │ │ │ │ │ +00008830: 7465 6420 6275 6666 6572 206f 6620 7468 ted buffer of th │ │ │ │ │ +00008840: 6520 736f 636b 6574 206f 626a 6563 740a e socket object. │ │ │ │ │ +00008850: 5052 4f54 4f54 5950 450a 2020 2020 2020 PROTOTYPE. │ │ │ │ │ +00008860: 2d2d 2053 6f63 6b65 7473 2e55 6e73 6574 -- Sockets.Unset │ │ │ │ │ +00008870: 5f42 7566 6665 723a 2070 726f 6365 6475 _Buffer: procedu │ │ │ │ │ +00008880: 7265 2055 6e73 6574 5f42 7566 6665 720a re Unset_Buffer. │ │ │ │ │ +00008890: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +000088a0: 534f 434b 4554 203a 2053 6f63 6b65 745f SOCKET : Socket_ │ │ │ │ │ +000088b0: 4644 2743 6c61 7373 293b 0a0a 5041 5241 FD'Class);..PARA │ │ │ │ │ +000088c0: 4d45 5445 5253 0a20 2020 2020 534f 434b METERS. SOCK │ │ │ │ │ +000088d0: 4554 2020 2020 2069 6e20 2020 2020 2020 ET in │ │ │ │ │ +000088e0: 2020 496e 6974 6961 6c69 7a65 6420 616e Initialized an │ │ │ │ │ +000088f0: 6420 636f 6e6e 6563 7465 6420 736f 636b d connected sock │ │ │ │ │ +00008900: 6574 206f 626a 6563 740a 0a44 4553 4352 et object..DESCR │ │ │ │ │ +00008910: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ +00008920: 2070 726f 6365 6475 7265 2064 6569 6e73 procedure deins │ │ │ │ │ +00008930: 7461 6c6c 7320 7468 6520 6275 6666 6572 talls the buffer │ │ │ │ │ +00008940: 2070 7265 7669 6f75 736c 7920 696e 7374 previously inst │ │ │ │ │ +00008950: 616c 6c65 6420 6279 202a 6e6f 7465 0a20 alled by *note. │ │ │ │ │ +00008960: 2020 2020 5365 745f 4275 6666 6572 2028 Set_Buffer ( │ │ │ │ │ +00008970: 7072 6f63 6564 7572 6529 3a3a 2e20 2049 procedure)::. I │ │ │ │ │ +00008980: 6620 616e 7920 6461 7461 2069 7320 7374 f any data is st │ │ │ │ │ +00008990: 696c 6c20 7072 6573 656e 7420 696e 2074 ill present in t │ │ │ │ │ +000089a0: 6865 0a20 2020 2020 6275 6666 6572 2c20 he. buffer, │ │ │ │ │ +000089b0: 6974 2077 696c 6c20 6265 206c 6f73 742e it will be lost. │ │ │ │ │ +000089c0: 2020 546f 2061 766f 6964 2074 6869 7320 To avoid this │ │ │ │ │ +000089d0: 7369 7475 6174 696f 6e2c 2074 6865 2062 situation, the b │ │ │ │ │ +000089e0: 7566 6665 7220 6361 6e0a 2020 2020 2062 uffer can. b │ │ │ │ │ +000089f0: 6520 666c 7573 6865 6420 6279 2063 616c e flushed by cal │ │ │ │ │ +00008a00: 6c69 6e67 202a 6e6f 7465 2047 6574 2028 ling *note Get ( │ │ │ │ │ +00008a10: 6675 6e63 7469 6f6e 293a 3a2e 0a0a 1f0a function)::..... │ │ │ │ │ +00008a20: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ +00008a30: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 536f .info, Node: So │ │ │ │ │ +00008a40: 636b 6574 732e 4d75 6c74 6963 6173 7420 ckets.Multicast │ │ │ │ │ +00008a50: 7061 636b 6167 652c 2020 4e65 7874 3a20 package, Next: │ │ │ │ │ +00008a60: 536f 636b 6574 732e 4e61 6d69 6e67 2070 Sockets.Naming p │ │ │ │ │ +00008a70: 6163 6b61 6765 2c20 2050 7265 763a 2053 ackage, Prev: S │ │ │ │ │ +00008a80: 6f63 6b65 7473 2070 6163 6b61 6765 2c20 ockets package, │ │ │ │ │ +00008a90: 2055 703a 2054 6f70 0a0a 3520 536f 636b Up: Top..5 Sock │ │ │ │ │ +00008aa0: 6574 732e 4d75 6c74 6963 6173 7420 7061 ets.Multicast pa │ │ │ │ │ +00008ab0: 636b 6167 650a 2a2a 2a2a 2a2a 2a2a 2a2a ckage.********** │ │ │ │ │ +00008ac0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ +00008ad0: 2a0a 0a54 6865 2027 536f 636b 6574 732e *..The 'Sockets. │ │ │ │ │ +00008ae0: 4d75 6c74 6963 6173 7427 2061 6c6c 6f77 Multicast' allow │ │ │ │ │ +00008af0: 7320 7468 6520 6372 6561 7469 6f6e 206f s the creation o │ │ │ │ │ +00008b00: 6620 4950 206d 756c 7469 6361 7374 2073 f IP multicast s │ │ │ │ │ +00008b10: 6f63 6b65 7473 2e0a 0a20 2d2d 2053 6f63 ockets... -- Soc │ │ │ │ │ +00008b20: 6b65 7473 2e4d 756c 7469 6361 7374 2e4d kets.Multicast.M │ │ │ │ │ +00008b30: 756c 7469 6361 7374 5f53 6f63 6b65 745f ulticast_Socket_ │ │ │ │ │ +00008b40: 4644 3a20 7479 7065 204d 756c 7469 6361 FD: type Multica │ │ │ │ │ +00008b50: 7374 5f53 6f63 6b65 745f 4644 2069 730a st_Socket_FD is. │ │ │ │ │ +00008b60: 2020 2020 2020 2020 2020 6e65 7720 536f new So │ │ │ │ │ +00008b70: 636b 6574 5f46 4420 7769 7468 2070 7269 cket_FD with pri │ │ │ │ │ +00008b80: 7661 7465 3b0a 2020 2020 2054 6865 2027 vate;. The ' │ │ │ │ │ +00008b90: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ +00008ba0: 5f46 4427 2074 6167 6765 6420 7479 7065 _FD' tagged type │ │ │ │ │ +00008bb0: 2064 6572 6976 6573 2066 726f 6d20 7468 derives from th │ │ │ │ │ +00008bc0: 6520 2753 6f63 6b65 745f 4644 270a 2020 e 'Socket_FD'. │ │ │ │ │ +00008bd0: 2020 2074 7970 652e 2020 4974 2067 6574 type. It get │ │ │ │ │ +00008be0: 7320 696e 6974 6961 6c69 7a65 6420 6279 s initialized by │ │ │ │ │ +00008bf0: 2063 616c 6c69 6e67 202a 6e6f 7465 2043 calling *note C │ │ │ │ │ +00008c00: 7265 6174 655f 4d75 6c74 6963 6173 745f reate_Multicast_ │ │ │ │ │ +00008c10: 536f 636b 6574 0a20 2020 2020 2866 756e Socket. (fun │ │ │ │ │ +00008c20: 6374 696f 6e29 3a3a 2e20 2041 6e20 756e ction)::. An un │ │ │ │ │ +00008c30: 696e 6974 6961 6c69 7a65 6420 274d 756c initialized 'Mul │ │ │ │ │ +00008c40: 7469 6361 7374 5f53 6f63 6b65 745f 4644 ticast_Socket_FD │ │ │ │ │ +00008c50: 2720 6361 6e20 6265 0a20 2020 2020 7375 ' can be. su │ │ │ │ │ +00008c60: 6363 6573 6675 6c6c 7920 636f 6d70 6172 ccesfully compar │ │ │ │ │ +00008c70: 6564 2074 6f20 274e 756c 6c5f 4d75 6c74 ed to 'Null_Mult │ │ │ │ │ +00008c80: 6963 6173 745f 536f 636b 6574 5f46 4427 icast_Socket_FD' │ │ │ │ │ +00008c90: 2e0a 0a2a 204d 656e 753a 0a0a 2a20 4372 ...* Menu:..* Cr │ │ │ │ │ +00008ca0: 6561 7465 5f4d 756c 7469 6361 7374 5f53 eate_Multicast_S │ │ │ │ │ +00008cb0: 6f63 6b65 7420 2866 756e 6374 696f 6e29 ocket (function) │ │ │ │ │ +00008cc0: 3a3a 0a20 2020 2020 2020 2020 2020 2020 ::. │ │ │ │ │ +00008cd0: 2020 2020 2020 2020 2020 2043 7265 6174 Creat │ │ │ │ │ +00008ce0: 6520 616e 2049 5020 6d75 6c74 6963 6173 e an IP multicas │ │ │ │ │ +00008cf0: 7420 736f 636b 6574 0a2a 2043 7265 6174 t socket.* Creat │ │ │ │ │ +00008d00: 655f 4d75 6c74 6963 6173 745f 536f 636b e_Multicast_Sock │ │ │ │ │ +00008d10: 6574 2028 6675 6e63 7469 6f6e 293a 3a0a et (function)::. │ │ │ │ │ +00008d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00008d30: 2020 2020 2020 2020 4372 6561 7465 2061 Create a │ │ │ │ │ +00008d40: 6e20 4950 206d 756c 7469 6361 7374 2073 n IP multicast s │ │ │ │ │ +00008d50: 6f63 6b65 740a 0a1f 0a46 696c 653a 2061 ocket....File: a │ │ │ │ │ +00008d60: 6461 736f 636b 6574 732e 696e 666f 2c20 dasockets.info, │ │ │ │ │ +00008d70: 204e 6f64 653a 2043 7265 6174 655f 4d75 Node: Create_Mu │ │ │ │ │ +00008d80: 6c74 6963 6173 745f 536f 636b 6574 2028 lticast_Socket ( │ │ │ │ │ +00008d90: 6675 6e63 7469 6f6e 292c 2020 4e65 7874 function), Next │ │ │ │ │ +00008da0: 3a20 4372 6561 7465 5f4d 756c 7469 6361 : Create_Multica │ │ │ │ │ +00008db0: 7374 5f53 6f63 6b65 7420 2866 756e 6374 st_Socket (funct │ │ │ │ │ +00008dc0: 696f 6e29 2c20 2050 7265 763a 2043 7265 ion), Prev: Cre │ │ │ │ │ +00008dd0: 6174 655f 4d75 6c74 6963 6173 745f 536f ate_Multicast_So │ │ │ │ │ +00008de0: 636b 6574 2028 6675 6e63 7469 6f6e 292c cket (function), │ │ │ │ │ +00008df0: 2020 5570 3a20 536f 636b 6574 732e 4d75 Up: Sockets.Mu │ │ │ │ │ +00008e00: 6c74 6963 6173 7420 7061 636b 6167 650a lticast package. │ │ │ │ │ +00008e10: 0a43 7265 6174 655f 4d75 6c74 6963 6173 .Create_Multicas │ │ │ │ │ +00008e20: 745f 536f 636b 6574 2028 6675 6e63 7469 t_Socket (functi │ │ │ │ │ +00008e30: 6f6e 290a 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d on).============ │ │ │ │ │ +00008e40: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ │ +00008e50: 3d3d 3d3d 3d3d 0a0a 5055 5250 4f53 450a ======..PURPOSE. │ │ │ │ │ +00008e60: 2020 2020 2043 7265 6174 6520 616e 2049 Create an I │ │ │ │ │ +00008e70: 5020 6d75 6c74 6963 6173 7420 736f 636b P multicast sock │ │ │ │ │ +00008e80: 6574 0a50 524f 544f 5459 5045 0a20 2020 et.PROTOTYPE. │ │ │ │ │ +00008e90: 2020 202d 2d20 536f 636b 6574 732e 4d75 -- Sockets.Mu │ │ │ │ │ +00008ea0: 6c74 6963 6173 742e 4372 6561 7465 5f4d lticast.Create_M │ │ │ │ │ +00008eb0: 756c 7469 6361 7374 5f53 6f63 6b65 743a ulticast_Socket: │ │ │ │ │ +00008ec0: 2066 756e 6374 696f 6e0a 2020 2020 2020 function. │ │ │ │ │ +00008ed0: 2020 2020 2020 2020 2043 7265 6174 655f Create_ │ │ │ │ │ +00008ee0: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ +00008ef0: 2028 4752 4f55 5020 3a20 5374 7269 6e67 (GROUP : String │ │ │ │ │ +00008f00: 3b20 504f 5254 203a 204e 6174 7572 616c ; PORT : Natural │ │ │ │ │ +00008f10: 3b0a 2020 2020 2020 2020 2020 2020 2020 ;. │ │ │ │ │ +00008f20: 2054 544c 203a 2050 6f73 6974 6976 6520 TTL : Positive │ │ │ │ │ +00008f30: 3a3d 2031 363b 2053 454c 465f 4c4f 4f50 := 16; SELF_LOOP │ │ │ │ │ +00008f40: 203a 2042 6f6f 6c65 616e 203a 3d20 5472 : Boolean := Tr │ │ │ │ │ +00008f50: 7565 3b0a 2020 2020 2020 2020 2020 2020 ue;. │ │ │ │ │ +00008f60: 2020 204c 4f43 414c 5f49 4620 3a20 5374 LOCAL_IF : St │ │ │ │ │ +00008f70: 7269 6e67 203a 3d20 302e 302e 302e 3029 ring := 0.0.0.0) │ │ │ │ │ +00008f80: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00008f90: 7265 7475 726e 204d 756c 7469 6361 7374 return Multicast │ │ │ │ │ +00008fa0: 5f53 6f63 6b65 745f 4644 3b0a 0a50 4152 _Socket_FD;..PAR │ │ │ │ │ +00008fb0: 414d 4554 4552 530a 2020 2020 2047 524f AMETERS. GRO │ │ │ │ │ +00008fc0: 5550 2020 2020 2020 696e 2020 2020 2020 UP in │ │ │ │ │ +00008fd0: 2020 2049 5020 6164 6472 6573 7320 6f66 IP address of │ │ │ │ │ +00008fe0: 2074 6865 206d 756c 7469 6361 7374 2067 the multicast g │ │ │ │ │ +00008ff0: 726f 7570 2074 6f0a 2020 2020 2020 2020 roup to. │ │ │ │ │ +00009000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00009010: 2020 206a 6f69 6e0a 2020 2020 2050 4f52 join. POR │ │ │ │ │ +00009020: 5420 2020 2020 2020 696e 2020 2020 2020 T in │ │ │ │ │ +00009030: 2020 2050 6f72 7420 6f66 2074 6865 206d Port of the m │ │ │ │ │ +00009040: 756c 7469 6361 7374 2067 726f 7570 2074 ulticast group t │ │ │ │ │ +00009050: 6f20 6a6f 696e 0a20 2020 2020 5454 4c20 o join. TTL │ │ │ │ │ +00009060: 2020 2020 2020 2069 6e20 2020 2020 2020 in │ │ │ │ │ +00009070: 2020 5469 6d65 2d74 6f2d 6c69 7665 206f Time-to-live o │ │ │ │ │ +00009080: 6620 7365 6e74 2070 6163 6b65 7473 0a20 f sent packets. │ │ │ │ │ +00009090: 2020 2020 5345 4c46 5f4c 4f4f 5020 2069 SELF_LOOP i │ │ │ │ │ +000090a0: 6e20 2020 2020 2020 2020 5368 6f75 6c64 n Should │ │ │ │ │ +000090b0: 2074 6865 2073 6f63 6b65 7420 7265 6365 the socket rece │ │ │ │ │ +000090c0: 6976 6520 7468 6520 7061 636b 6574 730a ive the packets. │ │ │ │ │ +000090d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000090e0: 2020 2020 2020 2020 2020 2073 656e 7420 sent │ │ │ │ │ +000090f0: 6672 6f6d 2074 6865 206c 6f63 616c 2068 from the local h │ │ │ │ │ +00009100: 6f73 743f 0a20 2020 2020 4c4f 4341 4c5f ost?. LOCAL_ │ │ │ │ │ +00009110: 4946 2020 2069 6e20 2020 2020 2020 2020 IF in │ │ │ │ │ +00009120: 4164 6472 6573 7320 6f66 2074 6865 206c Address of the l │ │ │ │ │ +00009130: 6f63 616c 2069 6e74 6572 6661 6365 2074 ocal interface t │ │ │ │ │ +00009140: 6f20 7573 650a 0a52 4554 5552 4e20 5641 o use..RETURN VA │ │ │ │ │ +00009150: 4c55 450a 2020 2020 2054 6865 206e 6577 LUE. The new │ │ │ │ │ +00009160: 2069 6e69 7469 616c 697a 6564 206d 756c initialized mul │ │ │ │ │ +00009170: 7469 6361 7374 2073 6f63 6b65 740a 0a44 ticast socket..D │ │ │ │ │ +00009180: 4553 4352 4950 5449 4f4e 0a20 2020 2020 ESCRIPTION. │ │ │ │ │ +00009190: 5468 6973 2066 756e 6374 696f 6e20 6372 This function cr │ │ │ │ │ +000091a0: 6561 7465 7320 616e 2049 5020 6d75 6c74 eates an IP mult │ │ │ │ │ +000091b0: 6963 6173 7420 736f 636b 6574 2061 7474 icast socket att │ │ │ │ │ +000091c0: 6163 6865 6420 746f 2061 2067 6976 656e ached to a given │ │ │ │ │ +000091d0: 0a20 2020 2020 6772 6f75 702c 2069 6465 . group, ide │ │ │ │ │ +000091e0: 6e74 6966 6965 6420 6279 2069 7473 2063 ntified by its c │ │ │ │ │ +000091f0: 6c61 7373 2045 2049 5020 6164 6472 6573 lass E IP addres │ │ │ │ │ +00009200: 7320 616e 6420 706f 7274 2e0a 0a20 2020 s and port... │ │ │ │ │ +00009210: 2020 4265 2063 6172 6566 756c 2077 6865 Be careful whe │ │ │ │ │ +00009220: 6e20 6368 6f6f 7369 6e67 2074 6865 2054 n choosing the T │ │ │ │ │ +00009230: 544c 2070 6172 616d 6574 6572 206f 6620 TL parameter of │ │ │ │ │ +00009240: 796f 7572 2049 5020 6d75 6c74 6963 6173 your IP multicas │ │ │ │ │ +00009250: 740a 2020 2020 2073 6f63 6b65 742e 2020 t. socket. │ │ │ │ │ +00009260: 4d6f 7374 2049 5020 6d75 6c74 6963 6173 Most IP multicas │ │ │ │ │ +00009270: 7420 726f 7574 6572 7320 646f 2069 6d70 t routers do imp │ │ │ │ │ +00009280: 6c65 6d65 6e74 2074 6872 6573 686f 6c64 lement threshold │ │ │ │ │ +00009290: 2d62 6173 6564 0a20 2020 2020 6669 6c74 -based. filt │ │ │ │ │ +000092a0: 6572 696e 6720 616e 6420 7769 6c6c 206e ering and will n │ │ │ │ │ +000092b0: 6f74 206c 6574 2049 5020 6d75 6c74 6963 ot let IP multic │ │ │ │ │ +000092c0: 6173 7420 7061 636b 6574 7320 6c65 6176 ast packets leav │ │ │ │ │ +000092d0: 6520 796f 7572 0a20 2020 2020 6f72 6761 e your. orga │ │ │ │ │ +000092e0: 6e69 7a61 7469 6f6e 2069 6620 7468 6520 nization if the │ │ │ │ │ +000092f0: 5454 4c20 6f6e 2074 6865 206c 6173 7420 TTL on the last │ │ │ │ │ +00009300: 726f 7574 6572 2069 7320 736d 616c 6c65 router is smalle │ │ │ │ │ +00009310: 7220 7468 616e 2031 362e 0a0a 2020 2020 r than 16... │ │ │ │ │ +00009320: 2049 6620 3020 6973 2067 6976 656e 2066 If 0 is given f │ │ │ │ │ +00009330: 6f72 2074 6865 2050 6f72 742c 2061 206c or the Port, a l │ │ │ │ │ +00009340: 6f63 616c 206f 6e65 2077 696c 6c20 6265 ocal one will be │ │ │ │ │ +00009350: 2063 686f 7365 6e2e 2020 4974 2063 616e chosen. It can │ │ │ │ │ +00009360: 0a20 2020 2020 7468 656e 206c 6174 6572 . then later │ │ │ │ │ +00009370: 2062 6520 7265 7472 6965 7665 6420 7573 be retrieved us │ │ │ │ │ +00009380: 696e 6720 4765 745f 536f 636b 5f50 6f72 ing Get_Sock_Por │ │ │ │ │ +00009390: 742e 0a0a 4558 414d 504c 450a 2020 2020 t...EXAMPLE. │ │ │ │ │ +000093a0: 2020 2020 2020 6465 636c 6172 650a 2020 declare. │ │ │ │ │ +000093b0: 2020 2020 2020 2020 2020 2053 6f63 6b20 Sock │ │ │ │ │ +000093c0: 2020 2020 3a20 536f 636b 6574 5f46 443b : Socket_FD; │ │ │ │ │ +000093d0: 0a20 2020 2020 2020 2020 2020 2020 496e . In │ │ │ │ │ +000093e0: 636f 6d69 6e67 203a 2053 6f63 6b65 745f coming : Socket_ │ │ │ │ │ +000093f0: 4644 3b0a 2020 2020 2020 2020 2020 6265 FD;. be │ │ │ │ │ +00009400: 6769 6e0a 2020 2020 2020 2020 2020 2020 gin. │ │ │ │ │ +00009410: 202d 2d20 4372 6561 7465 2061 2054 4350 -- Create a TCP │ │ │ │ │ +00009420: 2073 6f63 6b65 7420 6c69 7374 656e 696e socket listenin │ │ │ │ │ +00009430: 6720 6f6e 206c 6f63 616c 2070 6f72 7420 g on local port │ │ │ │ │ +00009440: 3431 3631 0a20 2020 2020 2020 2020 2020 4161. │ │ │ │ │ +00009450: 2020 536f 636b 6574 2028 536f 636b 2c20 Socket (Sock, │ │ │ │ │ +00009460: 5046 5f49 4e45 542c 2053 4f43 4b5f 5354 PF_INET, SOCK_ST │ │ │ │ │ +00009470: 5245 414d 293b 0a20 2020 2020 2020 2020 REAM);. │ │ │ │ │ +00009480: 2020 2020 4269 6e64 2028 536f 636b 2c20 Bind (Sock, │ │ │ │ │ +00009490: 3431 3631 293b 0a20 2020 2020 2020 2020 4161);. │ │ │ │ │ +000094a0: 2020 2020 4c69 7374 656e 2028 536f 636b Listen (Sock │ │ │ │ │ +000094b0: 2c20 3329 3b0a 2020 2020 2020 2020 2020 , 3);. │ │ │ │ │ +000094c0: 2020 202d 2d20 4f6e 652d 636f 6e6e 6563 -- One-connec │ │ │ │ │ +000094d0: 7469 6f6e 2d61 742d 612d 7469 6d65 2073 tion-at-a-time s │ │ │ │ │ +000094e0: 6572 7665 7220 2833 206d 6179 2062 6520 erver (3 may be │ │ │ │ │ +000094f0: 7065 6e64 696e 6729 0a20 2020 2020 2020 pending). │ │ │ │ │ +00009500: 2020 2020 2020 6c6f 6f70 0a20 2020 2020 loop. │ │ │ │ │ +00009510: 2020 2020 2020 2020 2020 202d 2d20 5761 -- Wa │ │ │ │ │ +00009520: 6974 2066 6f72 2061 206e 6577 2063 6f6e it for a new con │ │ │ │ │ +00009530: 6e65 6374 696f 6e20 616e 6420 6163 6365 nection and acce │ │ │ │ │ +00009540: 7074 2069 740a 2020 2020 2020 2020 2020 pt it. │ │ │ │ │ +00009550: 2020 2020 2020 4163 6365 7074 5f53 6f63 Accept_Soc │ │ │ │ │ +00009560: 6b65 7420 2853 6f63 6b2c 2049 6e63 6f6d ket (Sock, Incom │ │ │ │ │ +00009570: 696e 6729 3b0a 2020 2020 2020 2020 2020 ing);. │ │ │ │ │ +00009580: 2020 2020 2020 2d2d 2044 6f20 736f 6d65 -- Do some │ │ │ │ │ +00009590: 2064 6961 6c6f 6720 7769 7468 2074 6865 dialog with the │ │ │ │ │ +000095a0: 2072 656d 6f74 6520 686f 7374 0a20 2020 remote host. │ │ │ │ │ +000095b0: 2020 2020 2020 2020 2020 2020 2044 6f5f Do_ │ │ │ │ │ +000095c0: 536f 6d65 5f44 6961 6c6f 6720 2849 6e63 Some_Dialog (Inc │ │ │ │ │ +000095d0: 6f6d 696e 6729 3b0a 2020 2020 2020 2020 oming);. │ │ │ │ │ +000095e0: 2020 2020 2020 2020 2d2d 2043 6c6f 7365 -- Close │ │ │ │ │ +000095f0: 2069 6e63 6f6d 696e 6720 736f 636b 6574 incoming socket │ │ │ │ │ +00009600: 2061 6e64 2077 6169 7420 666f 7220 6e65 and wait for ne │ │ │ │ │ +00009610: 7874 2063 6f6e 6e65 6374 696f 6e0a 2020 xt connection. │ │ │ │ │ +00009620: 2020 2020 2020 2020 2020 2020 2020 5368 Sh │ │ │ │ │ +00009630: 7574 646f 776e 2028 496e 636f 6d69 6e67 utdown (Incoming │ │ │ │ │ +00009640: 293b 0a20 2020 2020 2020 2020 2020 2020 );. │ │ │ │ │ +00009650: 656e 6420 6c6f 6f70 3b0a 2020 2020 2020 end loop;. │ │ │ │ │ +00009660: 2020 2020 656e 643b 0a0a 5345 4520 414c end;..SEE AL │ │ │ │ │ +00009670: 534f 0a20 2020 2020 2a6e 6f74 6520 5365 SO. *note Se │ │ │ │ │ +00009680: 6e64 2028 7072 6f63 6564 7572 6529 3a3a nd (procedure):: │ │ │ │ │ +00009690: 2c0a 2020 2020 202a 6e6f 7465 2053 6875 ,. *note Shu │ │ │ │ │ +000096a0: 7464 6f77 6e20 2870 726f 6365 6475 7265 tdown (procedure │ │ │ │ │ +000096b0: 293a 3a2e 0a0a 2a20 4d65 6e75 3a0a 0a2a )::...* Menu:..* │ │ │ │ │ +000096c0: 203a 3a0a 0a43 7265 6174 655f 4d75 6c74 ::..Create_Mult │ │ │ │ │ +000096d0: 6963 6173 745f 536f 636b 6574 2028 6675 icast_Socket (fu │ │ │ │ │ +000096e0: 6e63 7469 6f6e 290a 2d2d 2d2d 2d2d 2d2d nction).-------- │ │ │ │ │ +000096f0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +00009700: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ +00009710: 4f53 450a 2020 2020 2043 7265 6174 6520 OSE. Create │ │ │ │ │ +00009720: 616e 2049 5020 6d75 6c74 6963 6173 7420 an IP multicast │ │ │ │ │ +00009730: 736f 636b 6574 0a50 524f 544f 5459 5045 socket.PROTOTYPE │ │ │ │ │ +00009740: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +00009750: 732e 4d75 6c74 6963 6173 742e 4372 6561 s.Multicast.Crea │ │ │ │ │ +00009760: 7465 5f4d 756c 7469 6361 7374 5f53 6f63 te_Multicast_Soc │ │ │ │ │ +00009770: 6b65 743a 2066 756e 6374 696f 6e0a 2020 ket: function. │ │ │ │ │ +00009780: 2020 2020 2020 2020 2020 2020 2043 7265 Cre │ │ │ │ │ +00009790: 6174 655f 4d75 6c74 6963 6173 745f 536f ate_Multicast_So │ │ │ │ │ +000097a0: 636b 6574 2028 4752 4f55 5020 3a20 5374 cket (GROUP : St │ │ │ │ │ +000097b0: 7269 6e67 3b20 504f 5254 203a 2050 6f73 ring; PORT : Pos │ │ │ │ │ +000097c0: 6974 6976 653b 0a20 2020 2020 2020 2020 itive;. │ │ │ │ │ +000097d0: 2020 2020 2020 4c4f 4341 4c5f 504f 5254 LOCAL_PORT │ │ │ │ │ +000097e0: 203a 204e 6174 7572 616c 3b20 5454 4c20 : Natural; TTL │ │ │ │ │ +000097f0: 3a20 506f 7369 7469 7665 203a 3d20 3136 : Positive := 16 │ │ │ │ │ +00009800: 3b0a 2020 2020 2020 2020 2020 2020 2020 ;. │ │ │ │ │ +00009810: 204c 4f43 414c 5f49 4620 3a20 5374 7269 LOCAL_IF : Stri │ │ │ │ │ +00009820: 6e67 203a 3d20 302e 302e 302e 3029 0a20 ng := 0.0.0.0). │ │ │ │ │ +00009830: 2020 2020 2020 2020 2020 2020 2020 7265 re │ │ │ │ │ +00009840: 7475 726e 204d 756c 7469 6361 7374 5f53 turn Multicast_S │ │ │ │ │ +00009850: 6f63 6b65 745f 4644 3b0a 0a50 4152 414d ocket_FD;..PARAM │ │ │ │ │ +00009860: 4554 4552 530a 2020 2020 2047 524f 5550 ETERS. GROUP │ │ │ │ │ +00009870: 2020 2020 2020 696e 2020 2020 2020 2020 in │ │ │ │ │ +00009880: 2049 5020 6164 6472 6573 7320 6f66 2074 IP address of t │ │ │ │ │ +00009890: 6865 206d 756c 7469 6361 7374 2067 726f he multicast gro │ │ │ │ │ +000098a0: 7570 2074 6f0a 2020 2020 2020 2020 2020 up to. │ │ │ │ │ +000098b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000098c0: 206a 6f69 6e0a 2020 2020 2050 4f52 5420 join. PORT │ │ │ │ │ +000098d0: 2020 2020 2020 696e 2020 2020 2020 2020 in │ │ │ │ │ +000098e0: 2050 6f72 7420 6f66 2074 6865 206d 756c Port of the mul │ │ │ │ │ +000098f0: 7469 6361 7374 2067 726f 7570 2074 6f20 ticast group to │ │ │ │ │ +00009900: 6a6f 696e 0a20 2020 2020 4c4f 4341 4c5f join. LOCAL_ │ │ │ │ │ +00009910: 504f 5254 2069 6e20 2020 2020 2020 2020 PORT in │ │ │ │ │ +00009920: 4c6f 6361 6c20 706f 7274 206e 756d 6265 Local port numbe │ │ │ │ │ +00009930: 7220 746f 2075 7365 0a20 2020 2020 5454 r to use. TT │ │ │ │ │ +00009940: 4c20 2020 2020 2020 2069 6e20 2020 2020 L in │ │ │ │ │ +00009950: 2020 2020 5469 6d65 2d74 6f2d 6c69 7665 Time-to-live │ │ │ │ │ +00009960: 206f 6620 7365 6e74 2070 6163 6b65 7473 of sent packets │ │ │ │ │ +00009970: 0a20 2020 2020 4c4f 4341 4c5f 4946 2020 . LOCAL_IF │ │ │ │ │ +00009980: 2069 6e20 2020 2020 2020 2020 4164 6472 in Addr │ │ │ │ │ +00009990: 6573 7320 6f66 2074 6865 206c 6f63 616c ess of the local │ │ │ │ │ +000099a0: 2069 6e74 6572 6661 6365 2074 6f20 7573 interface to us │ │ │ │ │ +000099b0: 650a 0a52 4554 5552 4e20 5641 4c55 450a e..RETURN VALUE. │ │ │ │ │ +000099c0: 2020 2020 2054 6865 206e 6577 2069 6e69 The new ini │ │ │ │ │ +000099d0: 7469 616c 697a 6564 206d 756c 7469 6361 tialized multica │ │ │ │ │ +000099e0: 7374 2073 6f63 6b65 740a 0a44 4553 4352 st socket..DESCR │ │ │ │ │ +000099f0: 4950 5449 4f4e 0a20 2020 2020 5468 6973 IPTION. This │ │ │ │ │ +00009a00: 2066 756e 6374 696f 6e20 6372 6561 7465 function create │ │ │ │ │ +00009a10: 7320 616e 2049 5020 6d75 6c74 6963 6173 s an IP multicas │ │ │ │ │ +00009a20: 7420 736f 636b 6574 2061 7474 6163 6865 t socket attache │ │ │ │ │ +00009a30: 6420 746f 2061 2067 6976 656e 0a20 2020 d to a given. │ │ │ │ │ +00009a40: 2020 6772 6f75 702c 2069 6465 6e74 6966 group, identif │ │ │ │ │ +00009a50: 6965 6420 6279 2069 7473 2063 6c61 7373 ied by its class │ │ │ │ │ +00009a60: 2045 2049 5020 6164 6472 6573 7320 616e E IP address an │ │ │ │ │ +00009a70: 6420 706f 7274 2e20 2049 660a 2020 2020 d port. If. │ │ │ │ │ +00009a80: 204c 6f63 616c 5f50 6f72 7420 6973 2030 Local_Port is 0 │ │ │ │ │ +00009a90: 2c20 6120 6672 6565 2070 6f72 7420 7769 , a free port wi │ │ │ │ │ +00009aa0: 6c6c 2061 7574 6f6d 6174 6963 616c 6c79 ll automatically │ │ │ │ │ +00009ab0: 2062 6520 6368 6f73 656e 2062 7920 796f be chosen by yo │ │ │ │ │ +00009ac0: 7572 0a20 2020 2020 6f70 6572 6174 696e ur. operatin │ │ │ │ │ +00009ad0: 6720 7379 7374 656d 2e0a 0a20 2020 2020 g system... │ │ │ │ │ +00009ae0: 5468 6973 2066 756e 6374 696f 6e20 7368 This function sh │ │ │ │ │ +00009af0: 6f75 6c64 2062 6520 7573 6564 2077 6865 ould be used whe │ │ │ │ │ +00009b00: 6e20 796f 7520 7761 6e74 2074 6f20 7365 n you want to se │ │ │ │ │ +00009b10: 6e64 2070 6163 6b65 7473 2074 6f20 610a nd packets to a. │ │ │ │ │ +00009b20: 2020 2020 206d 756c 7469 6361 7374 2067 multicast g │ │ │ │ │ +00009b30: 726f 7570 2077 6974 686f 7574 2072 6563 roup without rec │ │ │ │ │ +00009b40: 6569 7669 6e67 2061 6e79 2070 6163 6b65 eiving any packe │ │ │ │ │ +00009b50: 7420 796f 7572 7365 6c66 2e0a 0a45 5841 t yourself...EXA │ │ │ │ │ +00009b60: 4d50 4c45 0a20 2020 2020 2020 2020 2064 MPLE. d │ │ │ │ │ +00009b70: 6563 6c61 7265 0a20 2020 2020 2020 2020 eclare. │ │ │ │ │ +00009b80: 2020 2020 536f 636b 203a 2053 6f63 6b65 Sock : Socke │ │ │ │ │ +00009b90: 745f 4644 3b0a 2020 2020 2020 2020 2020 t_FD;. │ │ │ │ │ +00009ba0: 6265 6769 6e0a 2020 2020 2020 2020 2020 begin. │ │ │ │ │ +00009bb0: 2020 202d 2d20 4372 6561 7465 2061 2054 -- Create a T │ │ │ │ │ +00009bc0: 4350 2073 6f63 6b65 740a 2020 2020 2020 CP socket. │ │ │ │ │ +00009bd0: 2020 2020 2020 2053 6f63 6b65 7420 2853 Socket (S │ │ │ │ │ +00009be0: 6f63 6b2c 2050 465f 494e 4554 2c20 534f ock, PF_INET, SO │ │ │ │ │ +00009bf0: 434b 5f53 5452 4541 4d29 3b0a 2020 2020 CK_STREAM);. │ │ │ │ │ +00009c00: 2020 2020 2020 2020 202d 2d20 436f 6e6e -- Conn │ │ │ │ │ +00009c10: 6563 7420 6974 2074 6f20 7266 6331 3134 ect it to rfc114 │ │ │ │ │ +00009c20: 392e 6e65 7427 7320 6d61 696c 2073 6572 9.net's mail ser │ │ │ │ │ +00009c30: 7665 720a 2020 2020 2020 2020 2020 2020 ver. │ │ │ │ │ +00009c40: 2043 6f6e 6e65 6374 2028 536f 636b 2c20 Connect (Sock, │ │ │ │ │ +00009c50: 226d 6169 6c2e 7266 6331 3134 392e 6e65 "mail.rfc1149.ne │ │ │ │ │ +00009c60: 7422 2c20 3235 293b 0a20 2020 2020 2020 t", 25);. │ │ │ │ │ +00009c70: 2020 2020 2020 2d2d 2044 6f20 6120 6d61 -- Do a ma │ │ │ │ │ +00009c80: 696c 2074 7261 6e73 6163 7469 6f6e 2074 il transaction t │ │ │ │ │ +00009c90: 6865 6e20 636c 6f73 6520 7468 6520 736f hen close the so │ │ │ │ │ +00009ca0: 636b 6574 0a20 2020 2020 2020 2020 2020 cket. │ │ │ │ │ +00009cb0: 2020 5b2e 2e2e 5d0a 2020 2020 2020 2020 [...]. │ │ │ │ │ +00009cc0: 2020 656e 643b 0a0a 5345 4520 414c 534f end;..SEE ALSO │ │ │ │ │ +00009cd0: 0a20 2020 2020 2a6e 6f74 6520 5365 6e64 . *note Send │ │ │ │ │ +00009ce0: 2028 7072 6f63 6564 7572 6529 3a3a 2c0a (procedure)::,. │ │ │ │ │ +00009cf0: 2020 2020 202a 6e6f 7465 2053 6875 7464 *note Shutd │ │ │ │ │ +00009d00: 6f77 6e20 2870 726f 6365 6475 7265 293a own (procedure): │ │ │ │ │ +00009d10: 3a2e 0a0a 1f0a 4669 6c65 3a20 6164 6173 :.....File: adas │ │ │ │ │ +00009d20: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ +00009d30: 6465 3a20 536f 636b 6574 732e 4e61 6d69 de: Sockets.Nami │ │ │ │ │ +00009d40: 6e67 2070 6163 6b61 6765 2c20 204e 6578 ng package, Nex │ │ │ │ │ +00009d50: 743a 2043 6f6e 7472 6962 7574 6f72 732c t: Contributors, │ │ │ │ │ +00009d60: 2020 5072 6576 3a20 536f 636b 6574 732e Prev: Sockets. │ │ │ │ │ +00009d70: 4d75 6c74 6963 6173 7420 7061 636b 6167 Multicast packag │ │ │ │ │ +00009d80: 652c 2020 5570 3a20 546f 700a 0a36 2053 e, Up: Top..6 S │ │ │ │ │ +00009d90: 6f63 6b65 7473 2e4e 616d 696e 6720 7061 ockets.Naming pa │ │ │ │ │ +00009da0: 636b 6167 650a 2a2a 2a2a 2a2a 2a2a 2a2a ckage.********** │ │ │ │ │ +00009db0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 0a0a **************.. │ │ │ │ │ +00009dc0: 5468 6520 2753 6f63 6b65 7473 2e4e 616d The 'Sockets.Nam │ │ │ │ │ +00009dd0: 696e 6727 2070 6163 6b61 6765 2063 6f6e ing' package con │ │ │ │ │ +00009de0: 7461 696e 7320 7479 7065 7320 616e 6420 tains types and │ │ │ │ │ +00009df0: 6865 6c70 6572 2066 756e 6374 696f 6e73 helper functions │ │ │ │ │ +00009e00: 206e 6565 6465 640a 746f 206d 616e 6970 needed.to manip │ │ │ │ │ +00009e10: 756c 6174 6520 496e 7465 726e 6574 2068 ulate Internet h │ │ │ │ │ +00009e20: 6f73 7420 6e61 6d65 7320 616e 6420 6164 ost names and ad │ │ │ │ │ +00009e30: 6472 6573 7365 732e 0a0a 202d 2d20 536f dresses... -- So │ │ │ │ │ +00009e40: 636b 6574 732e 4e61 6d69 6e67 2e41 6464 ckets.Naming.Add │ │ │ │ │ +00009e50: 7265 7373 3a20 7479 7065 2041 6464 7265 ress: type Addre │ │ │ │ │ +00009e60: 7373 2069 7320 7265 636f 7264 0a20 2020 ss is record. │ │ │ │ │ +00009e70: 2020 2020 2020 2020 2048 312c 2048 322c H1, H2, │ │ │ │ │ +00009e80: 2048 332c 2048 3420 3a20 4164 6472 6573 H3, H4 : Addres │ │ │ │ │ +00009e90: 735f 436f 6d70 6f6e 656e 743b 0a20 2020 s_Component;. │ │ │ │ │ +00009ea0: 2020 2020 2020 2065 6e64 2072 6563 6f72 end recor │ │ │ │ │ +00009eb0: 643b 0a20 2020 2020 5468 6973 2074 7970 d;. This typ │ │ │ │ │ +00009ec0: 6520 7265 7072 6573 656e 7473 2061 6e20 e represents an │ │ │ │ │ +00009ed0: 4950 7634 2061 6464 7265 7373 2077 6974 IPv4 address wit │ │ │ │ │ +00009ee0: 6820 2748 3127 2062 6569 6e67 2074 6865 h 'H1' being the │ │ │ │ │ +00009ef0: 2066 6972 7374 0a20 2020 2020 6f63 7465 first. octe │ │ │ │ │ +00009f00: 7420 616e 6420 2748 3427 2074 6865 206c t and 'H4' the l │ │ │ │ │ +00009f10: 6173 7420 6f6e 652e 2020 466f 7220 6578 ast one. For ex │ │ │ │ │ +00009f20: 616d 706c 652c 2031 3337 2e31 3934 2e31 ample, 137.194.1 │ │ │ │ │ +00009f30: 3631 2e32 2069 730a 2020 2020 2072 6570 61.2 is. rep │ │ │ │ │ +00009f40: 7265 7365 6e74 6564 2062 7920 2748 313d resented by 'H1= │ │ │ │ │ +00009f50: 3133 372c 2048 323d 3139 342c 2048 333d 137, H2=194, H3= │ │ │ │ │ +00009f60: 3136 312c 2048 343d 3227 2e0a 0a20 2d2d 161, H4=2'... -- │ │ │ │ │ +00009f70: 2053 6f63 6b65 7473 2e4e 616d 696e 672e Sockets.Naming. │ │ │ │ │ +00009f80: 4164 6472 6573 735f 4172 7261 793a 2074 Address_Array: t │ │ │ │ │ +00009f90: 7970 6520 4164 6472 6573 735f 4172 7261 ype Address_Arra │ │ │ │ │ +00009fa0: 7920 6973 2061 7272 6179 2028 506f 7369 y is array (Posi │ │ │ │ │ +00009fb0: 7469 7665 0a20 2020 2020 2020 2020 2072 tive. r │ │ │ │ │ +00009fc0: 616e 6765 203c 3e29 206f 6620 4164 6472 ange <>) of Addr │ │ │ │ │ +00009fd0: 6573 733b 0a20 2020 2020 4865 6c70 6572 ess;. Helper │ │ │ │ │ +00009fe0: 2074 7970 650a 0a20 2d2d 2053 6f63 6b65 type.. -- Socke │ │ │ │ │ +00009ff0: 7473 2e4e 616d 696e 672e 4164 6472 6573 ts.Naming.Addres │ │ │ │ │ +0000a000: 735f 436f 6d70 6f6e 656e 743a 2074 7970 s_Component: typ │ │ │ │ │ +0000a010: 6520 4164 6472 6573 735f 436f 6d70 6f6e e Address_Compon │ │ │ │ │ +0000a020: 656e 7420 6973 204e 6174 7572 616c 0a20 ent is Natural. │ │ │ │ │ +0000a030: 2020 2020 2020 2020 2072 616e 6765 2030 range 0 │ │ │ │ │ +0000a040: 202e 2e20 3235 353b 0a20 2020 2020 4865 .. 255;. He │ │ │ │ │ +0000a050: 6c70 6572 2074 7970 650a 0a20 2d2d 2053 lper type.. -- S │ │ │ │ │ +0000a060: 6f63 6b65 7473 2e4e 616d 696e 672e 486f ockets.Naming.Ho │ │ │ │ │ +0000a070: 7374 5f45 6e74 7279 3a20 7479 7065 2048 st_Entry: type H │ │ │ │ │ +0000a080: 6f73 745f 456e 7472 7920 284e 5f41 6c69 ost_Entry (N_Ali │ │ │ │ │ +0000a090: 6173 6573 2c20 4e5f 4164 6472 6573 7365 ases, N_Addresse │ │ │ │ │ +0000a0a0: 7320 3a0a 2020 2020 2020 2020 2020 4e61 s :. Na │ │ │ │ │ +0000a0b0: 7475 7261 6c29 2069 7320 6e65 7720 4164 tural) is new Ad │ │ │ │ │ +0000a0c0: 612e 4669 6e61 6c69 7a61 7469 6f6e 2e43 a.Finalization.C │ │ │ │ │ +0000a0d0: 6f6e 7472 6f6c 6c65 6420 7769 7468 2072 ontrolled with r │ │ │ │ │ +0000a0e0: 6563 6f72 640a 2020 2020 2020 2020 2020 ecord. │ │ │ │ │ +0000a0f0: 2020 204e 616d 6520 3a20 5374 7269 6e67 Name : String │ │ │ │ │ +0000a100: 5f41 6363 6573 733b 0a20 2020 2020 2020 _Access;. │ │ │ │ │ +0000a110: 2020 2020 2020 416c 6961 7365 7320 3a20 Aliases : │ │ │ │ │ +0000a120: 5374 7269 6e67 5f41 7272 6179 2028 3120 String_Array (1 │ │ │ │ │ +0000a130: 2e2e 204e 5f41 6c69 6173 6573 293b 0a20 .. N_Aliases);. │ │ │ │ │ +0000a140: 2020 2020 2020 2020 2020 2020 4164 6472 Addr │ │ │ │ │ +0000a150: 6573 7365 7320 3a20 4164 6472 6573 735f esses : Address_ │ │ │ │ │ +0000a160: 4172 7261 7920 2831 202e 2e20 4e5f 4164 Array (1 .. N_Ad │ │ │ │ │ +0000a170: 6472 6573 7365 7329 3b0a 2020 2020 2020 dresses);. │ │ │ │ │ +0000a180: 2020 2020 656e 6420 7265 636f 7264 3b0a end record;. │ │ │ │ │ +0000a190: 2020 2020 2054 6865 2027 486f 7374 5f45 The 'Host_E │ │ │ │ │ +0000a1a0: 6e74 7279 2720 7479 7065 2068 6f6c 6473 ntry' type holds │ │ │ │ │ +0000a1b0: 2061 2073 6574 206f 6620 6e61 6d65 7320 a set of names │ │ │ │ │ +0000a1c0: 616e 6420 4950 2061 6464 7265 7373 6573 and IP addresses │ │ │ │ │ +0000a1d0: 0a20 2020 2020 6173 736f 6369 6174 6564 . associated │ │ │ │ │ +0000a1e0: 2077 6974 6820 6120 686f 7374 2e20 2045 with a host. E │ │ │ │ │ +0000a1f0: 6163 6820 686f 7374 2063 616e 2068 6176 ach host can hav │ │ │ │ │ +0000a200: 6520 7365 7665 7261 6c20 4950 2061 6464 e several IP add │ │ │ │ │ +0000a210: 7265 7373 2061 730a 2020 2020 2077 656c ress as. wel │ │ │ │ │ +0000a220: 6c20 6173 2073 6576 6572 616c 2061 6c69 l as several ali │ │ │ │ │ +0000a230: 6173 6573 2e0a 0a20 2d2d 2053 6f63 6b65 ases... -- Socke │ │ │ │ │ +0000a240: 7473 2e4e 616d 696e 672e 5374 7269 6e67 ts.Naming.String │ │ │ │ │ +0000a250: 5f41 6363 6573 733a 2074 7970 6520 5374 _Access: type St │ │ │ │ │ +0000a260: 7269 6e67 5f41 6363 6573 7320 6973 2061 ring_Access is a │ │ │ │ │ +0000a270: 6363 6573 7320 5374 7269 6e67 3b0a 2020 ccess String;. │ │ │ │ │ +0000a280: 2020 2048 656c 7065 7220 7479 7065 0a0a Helper type.. │ │ │ │ │ +0000a290: 202d 2d20 536f 636b 6574 732e 4e61 6d69 -- Sockets.Nami │ │ │ │ │ +0000a2a0: 6e67 2e53 7472 696e 675f 4172 7261 793a ng.String_Array: │ │ │ │ │ +0000a2b0: 2074 7970 6520 5374 7269 6e67 5f41 7272 type String_Arr │ │ │ │ │ +0000a2c0: 6179 2069 7320 6172 7261 7920 2850 6f73 ay is array (Pos │ │ │ │ │ +0000a2d0: 6974 6976 650a 2020 2020 2020 2020 2020 itive. │ │ │ │ │ +0000a2e0: 7261 6e67 6520 3c3e 2920 6f66 2053 7472 range <>) of Str │ │ │ │ │ +0000a2f0: 696e 675f 4163 6365 7373 3b0a 2020 2020 ing_Access;. │ │ │ │ │ +0000a300: 2048 656c 7065 7220 7479 7065 0a0a 2a20 Helper type..* │ │ │ │ │ +0000a310: 4d65 6e75 3a0a 0a2a 2041 6464 7265 7373 Menu:..* Address │ │ │ │ │ +0000a320: 5f4f 6620 2866 756e 6374 696f 6e29 3a3a _Of (function):: │ │ │ │ │ +0000a330: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000a340: 2020 2020 2020 2020 2047 6574 2074 6865 Get the │ │ │ │ │ +0000a350: 2049 5020 6164 6472 6573 7320 6f66 2061 IP address of a │ │ │ │ │ +0000a360: 2068 6f73 740a 2a20 416e 795f 4164 6472 host.* Any_Addr │ │ │ │ │ +0000a370: 6573 7320 2866 756e 6374 696f 6e29 3a3a ess (function):: │ │ │ │ │ +0000a380: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000a390: 2020 2020 2020 2020 2053 7065 6369 616c Special │ │ │ │ │ +0000a3a0: 2061 6464 7265 7373 2072 6570 7265 7365 address represe │ │ │ │ │ +0000a3b0: 6e74 696e 6720 616e 7920 6164 6472 6573 nting any addres │ │ │ │ │ +0000a3c0: 7320 6f6e 2074 6865 206c 6f63 616c 2068 s on the local h │ │ │ │ │ +0000a3d0: 6f73 740a 2a20 4765 745f 5065 6572 5f41 ost.* Get_Peer_A │ │ │ │ │ +0000a3e0: 6464 7220 2866 756e 6374 696f 6e29 3a3a ddr (function):: │ │ │ │ │ +0000a3f0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000a400: 2020 2020 2020 2020 2052 6574 7269 6576 Retriev │ │ │ │ │ +0000a410: 6520 4950 2061 6464 7265 7373 206f 6620 e IP address of │ │ │ │ │ +0000a420: 7265 6d6f 7465 2068 6f73 740a 2a20 4765 remote host.* Ge │ │ │ │ │ +0000a430: 745f 5065 6572 5f50 6f72 7420 2866 756e t_Peer_Port (fun │ │ │ │ │ +0000a440: 6374 696f 6e29 3a3a 0a20 2020 2020 2020 ction)::. │ │ │ │ │ +0000a450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a460: 2052 6574 7269 6576 6520 706f 7274 2075 Retrieve port u │ │ │ │ │ +0000a470: 7365 6420 6279 2072 656d 6f74 6520 686f sed by remote ho │ │ │ │ │ +0000a480: 7374 0a2a 2047 6574 5f53 6f63 6b5f 4164 st.* Get_Sock_Ad │ │ │ │ │ +0000a490: 6472 2028 6675 6e63 7469 6f6e 293a 3a0a dr (function)::. │ │ │ │ │ +0000a4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a4b0: 2020 2020 2020 2020 5265 7472 6965 7665 Retrieve │ │ │ │ │ +0000a4c0: 2049 5020 6164 6472 6573 7320 6f66 206c IP address of l │ │ │ │ │ +0000a4d0: 6f63 616c 2068 6f73 740a 2a20 4765 745f ocal host.* Get_ │ │ │ │ │ +0000a4e0: 536f 636b 5f50 6f72 7420 2866 756e 6374 Sock_Port (funct │ │ │ │ │ +0000a4f0: 696f 6e29 3a3a 0a20 2020 2020 2020 2020 ion)::. │ │ │ │ │ +0000a500: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ │ +0000a510: 6574 7269 6576 6520 706f 7274 2075 7365 etrieve port use │ │ │ │ │ +0000a520: 6420 6279 206c 6f63 616c 2068 6f73 740a d by local host. │ │ │ │ │ +0000a530: 2a20 486f 7374 5f4e 616d 6520 2866 756e * Host_Name (fun │ │ │ │ │ +0000a540: 6374 696f 6e29 3a3a 0a20 2020 2020 2020 ction)::. │ │ │ │ │ +0000a550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a560: 2047 6574 2074 6865 206e 616d 6520 6f66 Get the name of │ │ │ │ │ +0000a570: 2074 6865 2063 7572 7265 6e74 2068 6f73 the current hos │ │ │ │ │ +0000a580: 740a 2a20 496d 6167 6520 2866 756e 6374 t.* Image (funct │ │ │ │ │ +0000a590: 696f 6e29 3a3a 2020 2020 4d61 6b65 2061 ion):: Make a │ │ │ │ │ +0000a5a0: 2073 7472 696e 6720 6672 6f6d 2061 6e20 string from an │ │ │ │ │ +0000a5b0: 6164 6472 6573 730a 2a20 496e 666f 5f4f address.* Info_O │ │ │ │ │ +0000a5c0: 665f 4e61 6d65 5f4f 725f 4950 2028 6675 f_Name_Or_IP (fu │ │ │ │ │ +0000a5d0: 6e63 7469 6f6e 293a 3a0a 2020 2020 2020 nction)::. │ │ │ │ │ +0000a5e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a5f0: 2020 4765 7420 6164 6472 6573 7365 7320 Get addresses │ │ │ │ │ +0000a600: 616e 6420 6e61 6d65 7320 6f66 2061 2068 and names of a h │ │ │ │ │ +0000a610: 6f73 740a 2a20 4973 5f49 505f 4164 6472 ost.* Is_IP_Addr │ │ │ │ │ +0000a620: 6573 7320 2866 756e 6374 696f 6e29 3a3a ess (function):: │ │ │ │ │ +0000a630: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000a640: 2020 2020 2020 2020 2043 6865 636b 2069 Check i │ │ │ │ │ +0000a650: 6620 6769 7665 6e20 7374 7269 6e67 2069 f given string i │ │ │ │ │ +0000a660: 7320 6120 7661 6c69 6420 4950 2061 6464 s a valid IP add │ │ │ │ │ +0000a670: 7265 7373 0a2a 204e 616d 655f 4f66 2028 ress.* Name_Of ( │ │ │ │ │ +0000a680: 6675 6e63 7469 6f6e 293a 3a20 204f 6666 function):: Off │ │ │ │ │ +0000a690: 6963 6961 6c20 6e61 6d65 206f 6620 7468 icial name of th │ │ │ │ │ +0000a6a0: 6520 686f 7374 0a2a 2056 616c 7565 2028 e host.* Value ( │ │ │ │ │ +0000a6b0: 6675 6e63 7469 6f6e 293a 3a20 2020 2054 function):: T │ │ │ │ │ +0000a6c0: 7261 6e73 666f 726d 2061 2073 7472 696e ransform a strin │ │ │ │ │ +0000a6d0: 6720 696e 746f 2061 6e20 6164 6472 6573 g into an addres │ │ │ │ │ +0000a6e0: 730a 0a1f 0a46 696c 653a 2061 6461 736f s....File: adaso │ │ │ │ │ +0000a6f0: 636b 6574 732e 696e 666f 2c20 204e 6f64 ckets.info, Nod │ │ │ │ │ +0000a700: 653a 2041 6464 7265 7373 5f4f 6620 2866 e: Address_Of (f │ │ │ │ │ +0000a710: 756e 6374 696f 6e29 2c20 204e 6578 743a unction), Next: │ │ │ │ │ +0000a720: 2041 6e79 5f41 6464 7265 7373 2028 6675 Any_Address (fu │ │ │ │ │ +0000a730: 6e63 7469 6f6e 292c 2020 5570 3a20 536f nction), Up: So │ │ │ │ │ +0000a740: 636b 6574 732e 4e61 6d69 6e67 2070 6163 ckets.Naming pac │ │ │ │ │ +0000a750: 6b61 6765 0a0a 4164 6472 6573 735f 4f66 kage..Address_Of │ │ │ │ │ +0000a760: 2028 6675 6e63 7469 6f6e 290a 3d3d 3d3d (function).==== │ │ │ │ │ +0000a770: 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d 3d3d ================ │ │ │ │ │ +0000a780: 3d0a 0a50 5552 504f 5345 0a20 2020 2020 =..PURPOSE. │ │ │ │ │ +0000a790: 4765 7420 7468 6520 4950 2061 6464 7265 Get the IP addre │ │ │ │ │ +0000a7a0: 7373 206f 6620 6120 686f 7374 0a50 524f ss of a host.PRO │ │ │ │ │ +0000a7b0: 544f 5459 5045 0a20 2020 2020 202d 2d20 TOTYPE. -- │ │ │ │ │ +0000a7c0: 536f 636b 6574 732e 4e61 6d69 6e67 2e41 Sockets.Naming.A │ │ │ │ │ +0000a7d0: 6464 7265 7373 5f4f 663a 2066 756e 6374 ddress_Of: funct │ │ │ │ │ +0000a7e0: 696f 6e20 4164 6472 6573 735f 4f66 0a20 ion Address_Of. │ │ │ │ │ +0000a7f0: 2020 2020 2020 2020 2020 2020 2020 2853 (S │ │ │ │ │ +0000a800: 4f4d 4554 4849 4e47 203a 2053 7472 696e OMETHING : Strin │ │ │ │ │ +0000a810: 6729 0a20 2020 2020 2020 2020 2020 2020 g). │ │ │ │ │ +0000a820: 2020 7265 7475 726e 2041 6464 7265 7373 return Address │ │ │ │ │ +0000a830: 3b0a 0a50 4152 414d 4554 4552 530a 2020 ;..PARAMETERS. │ │ │ │ │ +0000a840: 2020 2053 4f4d 4554 4849 4e47 2020 696e SOMETHING in │ │ │ │ │ +0000a850: 2020 2020 2020 2020 2048 6f73 7420 6e61 Host na │ │ │ │ │ +0000a860: 6d65 206f 7220 4950 2061 6464 7265 7373 me or IP address │ │ │ │ │ +0000a870: 0a0a 5245 5455 524e 2056 414c 5545 0a20 ..RETURN VALUE. │ │ │ │ │ +0000a880: 2020 2020 4950 7634 2061 6464 7265 7373 IPv4 address │ │ │ │ │ +0000a890: 0a0a 4558 4345 5054 494f 4e53 0a20 2020 ..EXCEPTIONS. │ │ │ │ │ +0000a8a0: 2020 274e 616d 696e 675f 4572 726f 7227 'Naming_Error' │ │ │ │ │ +0000a8b0: 2020 2020 204e 6f20 696e 666f 726d 6174 No informat │ │ │ │ │ +0000a8c0: 696f 6e20 6176 6169 6c61 626c 6520 666f ion available fo │ │ │ │ │ +0000a8d0: 7220 7468 6973 206e 616d 6520 6f72 0a20 r this name or. │ │ │ │ │ +0000a8e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000a8f0: 2020 2020 2020 2061 6464 7265 7373 0a0a address.. │ │ │ │ │ +0000a900: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ +0000a910: 6f74 6520 4e61 6d65 5f4f 6620 2866 756e ote Name_Of (fun │ │ │ │ │ +0000a920: 6374 696f 6e29 3a3a 2e0a 0a2a 204d 656e ction)::...* Men │ │ │ │ │ +0000a930: 753a 0a0a 2a20 416e 795f 4164 6472 6573 u:..* Any_Addres │ │ │ │ │ +0000a940: 7320 2866 756e 6374 696f 6e29 3a3a 0a2a s (function)::.* │ │ │ │ │ +0000a950: 2047 6574 5f50 6565 725f 4164 6472 2028 Get_Peer_Addr ( │ │ │ │ │ +0000a960: 6675 6e63 7469 6f6e 293a 3a0a 2a20 4765 function)::.* Ge │ │ │ │ │ +0000a970: 745f 5065 6572 5f50 6f72 7420 2866 756e t_Peer_Port (fun │ │ │ │ │ +0000a980: 6374 696f 6e29 3a3a 0a2a 2047 6574 5f53 ction)::.* Get_S │ │ │ │ │ +0000a990: 6f63 6b5f 4164 6472 2028 6675 6e63 7469 ock_Addr (functi │ │ │ │ │ +0000a9a0: 6f6e 293a 3a0a 2a20 4765 745f 536f 636b on)::.* Get_Sock │ │ │ │ │ +0000a9b0: 5f50 6f72 7420 2866 756e 6374 696f 6e29 _Port (function) │ │ │ │ │ +0000a9c0: 3a3a 0a2a 2048 6f73 745f 4e61 6d65 2028 ::.* Host_Name ( │ │ │ │ │ +0000a9d0: 6675 6e63 7469 6f6e 293a 3a0a 2a20 496d function)::.* Im │ │ │ │ │ +0000a9e0: 6167 6520 2866 756e 6374 696f 6e29 3a3a age (function):: │ │ │ │ │ +0000a9f0: 0a2a 2049 6e66 6f5f 4f66 5f4e 616d 655f .* Info_Of_Name_ │ │ │ │ │ +0000aa00: 4f72 5f49 5020 2866 756e 6374 696f 6e29 Or_IP (function) │ │ │ │ │ +0000aa10: 3a3a 0a2a 2049 735f 4950 5f41 6464 7265 ::.* Is_IP_Addre │ │ │ │ │ +0000aa20: 7373 2028 6675 6e63 7469 6f6e 293a 3a0a ss (function)::. │ │ │ │ │ +0000aa30: 2a20 4e61 6d65 5f4f 6620 2866 756e 6374 * Name_Of (funct │ │ │ │ │ +0000aa40: 696f 6e29 3a3a 0a2a 2056 616c 7565 2028 ion)::.* Value ( │ │ │ │ │ +0000aa50: 6675 6e63 7469 6f6e 293a 3a0a 0a1f 0a46 function)::....F │ │ │ │ │ +0000aa60: 696c 653a 2061 6461 736f 636b 6574 732e ile: adasockets. │ │ │ │ │ +0000aa70: 696e 666f 2c20 204e 6f64 653a 2041 6e79 info, Node: Any │ │ │ │ │ +0000aa80: 5f41 6464 7265 7373 2028 6675 6e63 7469 _Address (functi │ │ │ │ │ +0000aa90: 6f6e 292c 2020 4e65 7874 3a20 4765 745f on), Next: Get_ │ │ │ │ │ +0000aaa0: 5065 6572 5f41 6464 7220 2866 756e 6374 Peer_Addr (funct │ │ │ │ │ +0000aab0: 696f 6e29 2c20 2050 7265 763a 2041 6464 ion), Prev: Add │ │ │ │ │ +0000aac0: 7265 7373 5f4f 6620 2866 756e 6374 696f ress_Of (functio │ │ │ │ │ +0000aad0: 6e29 2c20 2055 703a 2041 6464 7265 7373 n), Up: Address │ │ │ │ │ +0000aae0: 5f4f 6620 2866 756e 6374 696f 6e29 0a0a _Of (function).. │ │ │ │ │ +0000aaf0: 416e 795f 4164 6472 6573 7320 2866 756e Any_Address (fun │ │ │ │ │ +0000ab00: 6374 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d ction).--------- │ │ │ │ │ +0000ab10: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ +0000ab20: 5552 504f 5345 0a20 2020 2020 5370 6563 URPOSE. Spec │ │ │ │ │ +0000ab30: 6961 6c20 6164 6472 6573 7320 7265 7072 ial address repr │ │ │ │ │ +0000ab40: 6573 656e 7469 6e67 2061 6e79 2061 6464 esenting any add │ │ │ │ │ +0000ab50: 7265 7373 206f 6e20 7468 6520 6c6f 6361 ress on the loca │ │ │ │ │ +0000ab60: 6c20 686f 7374 0a50 524f 544f 5459 5045 l host.PROTOTYPE │ │ │ │ │ +0000ab70: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +0000ab80: 732e 4e61 6d69 6e67 2e41 6e79 5f41 6464 s.Naming.Any_Add │ │ │ │ │ +0000ab90: 7265 7373 3a20 6675 6e63 7469 6f6e 2041 ress: function A │ │ │ │ │ +0000aba0: 6e79 5f41 6464 7265 7373 0a0a 5245 5455 ny_Address..RETU │ │ │ │ │ +0000abb0: 524e 2056 414c 5545 0a20 2020 2020 4571 RN VALUE. Eq │ │ │ │ │ +0000abc0: 7569 7661 6c65 6e74 2074 6f20 2749 4e41 uivalent to 'INA │ │ │ │ │ +0000abd0: 4444 525f 414e 5927 2069 6e20 7468 6520 DDR_ANY' in the │ │ │ │ │ +0000abe0: 4320 7072 6f67 7261 6d6d 696e 6720 6c61 C programming la │ │ │ │ │ +0000abf0: 6e67 7561 6765 0a0a 1f0a 4669 6c65 3a20 nguage....File: │ │ │ │ │ +0000ac00: 6164 6173 6f63 6b65 7473 2e69 6e66 6f2c adasockets.info, │ │ │ │ │ +0000ac10: 2020 4e6f 6465 3a20 4765 745f 5065 6572 Node: Get_Peer │ │ │ │ │ +0000ac20: 5f41 6464 7220 2866 756e 6374 696f 6e29 _Addr (function) │ │ │ │ │ +0000ac30: 2c20 204e 6578 743a 2047 6574 5f50 6565 , Next: Get_Pee │ │ │ │ │ +0000ac40: 725f 506f 7274 2028 6675 6e63 7469 6f6e r_Port (function │ │ │ │ │ +0000ac50: 292c 2020 5072 6576 3a20 416e 795f 4164 ), Prev: Any_Ad │ │ │ │ │ +0000ac60: 6472 6573 7320 2866 756e 6374 696f 6e29 dress (function) │ │ │ │ │ +0000ac70: 2c20 2055 703a 2041 6464 7265 7373 5f4f , Up: Address_O │ │ │ │ │ +0000ac80: 6620 2866 756e 6374 696f 6e29 0a0a 4765 f (function)..Ge │ │ │ │ │ +0000ac90: 745f 5065 6572 5f41 6464 7220 2866 756e t_Peer_Addr (fun │ │ │ │ │ +0000aca0: 6374 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d ction).--------- │ │ │ │ │ +0000acb0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ │ +0000acc0: 0a50 5552 504f 5345 0a20 2020 2020 5265 .PURPOSE. Re │ │ │ │ │ +0000acd0: 7472 6965 7665 2049 5020 6164 6472 6573 trieve IP addres │ │ │ │ │ +0000ace0: 7320 6f66 2072 656d 6f74 6520 686f 7374 s of remote host │ │ │ │ │ +0000acf0: 0a50 524f 544f 5459 5045 0a20 2020 2020 .PROTOTYPE. │ │ │ │ │ +0000ad00: 202d 2d20 536f 636b 6574 732e 4e61 6d69 -- Sockets.Nami │ │ │ │ │ +0000ad10: 6e67 2e47 6574 5f50 6565 725f 4164 6472 ng.Get_Peer_Addr │ │ │ │ │ +0000ad20: 3a20 6675 6e63 7469 6f6e 2047 6574 5f50 : function Get_P │ │ │ │ │ +0000ad30: 6565 725f 4164 6472 0a20 2020 2020 2020 eer_Addr. │ │ │ │ │ +0000ad40: 2020 2020 2020 2020 2853 4f43 4b45 5420 (SOCKET │ │ │ │ │ +0000ad50: 3a20 536f 636b 6574 5f46 4429 0a20 2020 : Socket_FD). │ │ │ │ │ +0000ad60: 2020 2020 2020 2020 2020 2020 7265 7475 retu │ │ │ │ │ +0000ad70: 726e 2041 6464 7265 7373 3b0a 0a50 4152 rn Address;..PAR │ │ │ │ │ +0000ad80: 414d 4554 4552 530a 2020 2020 2053 4f43 AMETERS. SOC │ │ │ │ │ +0000ad90: 4b45 5420 2020 2020 696e 2020 2020 2020 KET in │ │ │ │ │ +0000ada0: 2020 2043 6f6e 6e65 6374 6564 2073 6f63 Connected soc │ │ │ │ │ +0000adb0: 6b65 7420 6f62 6a65 6374 0a0a 5245 5455 ket object..RETU │ │ │ │ │ +0000adc0: 524e 2056 414c 5545 0a20 2020 2020 5065 RN VALUE. Pe │ │ │ │ │ +0000add0: 6572 2061 6464 7265 7373 0a0a 5345 4520 er address..SEE │ │ │ │ │ +0000ade0: 414c 534f 0a20 2020 2020 2a6e 6f74 6520 ALSO. *note │ │ │ │ │ +0000adf0: 4765 745f 5065 6572 5f50 6f72 7420 2866 Get_Peer_Port (f │ │ │ │ │ +0000ae00: 756e 6374 696f 6e29 3a3a 2c0a 2020 2020 unction)::,. │ │ │ │ │ +0000ae10: 202a 6e6f 7465 2047 6574 5f53 6f63 6b5f *note Get_Sock_ │ │ │ │ │ +0000ae20: 4164 6472 2028 6675 6e63 7469 6f6e 293a Addr (function): │ │ │ │ │ +0000ae30: 3a2e 0a0a 1f0a 4669 6c65 3a20 6164 6173 :.....File: adas │ │ │ │ │ +0000ae40: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ +0000ae50: 6465 3a20 4765 745f 5065 6572 5f50 6f72 de: Get_Peer_Por │ │ │ │ │ +0000ae60: 7420 2866 756e 6374 696f 6e29 2c20 204e t (function), N │ │ │ │ │ +0000ae70: 6578 743a 2047 6574 5f53 6f63 6b5f 4164 ext: Get_Sock_Ad │ │ │ │ │ +0000ae80: 6472 2028 6675 6e63 7469 6f6e 292c 2020 dr (function), │ │ │ │ │ +0000ae90: 5072 6576 3a20 4765 745f 5065 6572 5f41 Prev: Get_Peer_A │ │ │ │ │ +0000aea0: 6464 7220 2866 756e 6374 696f 6e29 2c20 ddr (function), │ │ │ │ │ +0000aeb0: 2055 703a 2041 6464 7265 7373 5f4f 6620 Up: Address_Of │ │ │ │ │ +0000aec0: 2866 756e 6374 696f 6e29 0a0a 4765 745f (function)..Get_ │ │ │ │ │ +0000aed0: 5065 6572 5f50 6f72 7420 2866 756e 6374 Peer_Port (funct │ │ │ │ │ +0000aee0: 696f 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d ion).----------- │ │ │ │ │ +0000aef0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ +0000af00: 5552 504f 5345 0a20 2020 2020 5265 7472 URPOSE. Retr │ │ │ │ │ +0000af10: 6965 7665 2070 6f72 7420 7573 6564 2062 ieve port used b │ │ │ │ │ +0000af20: 7920 7265 6d6f 7465 2068 6f73 740a 5052 y remote host.PR │ │ │ │ │ +0000af30: 4f54 4f54 5950 450a 2020 2020 2020 2d2d OTOTYPE. -- │ │ │ │ │ +0000af40: 2053 6f63 6b65 7473 2e4e 616d 696e 672e Sockets.Naming. │ │ │ │ │ +0000af50: 4765 745f 5065 6572 5f50 6f72 743a 2066 Get_Peer_Port: f │ │ │ │ │ +0000af60: 756e 6374 696f 6e20 4765 745f 5065 6572 unction Get_Peer │ │ │ │ │ +0000af70: 5f50 6f72 740a 2020 2020 2020 2020 2020 _Port. │ │ │ │ │ +0000af80: 2020 2020 2028 534f 434b 4554 203a 2053 (SOCKET : S │ │ │ │ │ +0000af90: 6f63 6b65 745f 4644 290a 2020 2020 2020 ocket_FD). │ │ │ │ │ +0000afa0: 2020 2020 2020 2020 2072 6574 7572 6e20 return │ │ │ │ │ +0000afb0: 506f 7369 7469 7665 3b0a 0a50 4152 414d Positive;..PARAM │ │ │ │ │ +0000afc0: 4554 4552 530a 2020 2020 2053 4f43 4b45 ETERS. SOCKE │ │ │ │ │ +0000afd0: 5420 2020 2020 696e 2020 2020 2020 2020 T in │ │ │ │ │ +0000afe0: 2043 6f6e 6e65 6374 6564 2073 6f63 6b65 Connected socke │ │ │ │ │ +0000aff0: 7420 6f62 6a65 6374 0a0a 5245 5455 524e t object..RETURN │ │ │ │ │ +0000b000: 2056 414c 5545 0a20 2020 2020 506f 7274 VALUE. Port │ │ │ │ │ +0000b010: 2075 7365 6420 6f6e 2074 6865 2072 656d used on the rem │ │ │ │ │ +0000b020: 6f74 6520 686f 7374 0a0a 5345 4520 414c ote host..SEE AL │ │ │ │ │ +0000b030: 534f 0a20 2020 2020 2a6e 6f74 6520 4765 SO. *note Ge │ │ │ │ │ +0000b040: 745f 536f 636b 5f50 6f72 7420 2866 756e t_Sock_Port (fun │ │ │ │ │ +0000b050: 6374 696f 6e29 3a3a 2c0a 2020 2020 202a ction)::,. * │ │ │ │ │ +0000b060: 6e6f 7465 2047 6574 5f50 6565 725f 4164 note Get_Peer_Ad │ │ │ │ │ +0000b070: 6472 2028 6675 6e63 7469 6f6e 293a 3a2e dr (function)::. │ │ │ │ │ +0000b080: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ +0000b090: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ +0000b0a0: 3a20 4765 745f 536f 636b 5f41 6464 7220 : Get_Sock_Addr │ │ │ │ │ +0000b0b0: 2866 756e 6374 696f 6e29 2c20 204e 6578 (function), Nex │ │ │ │ │ +0000b0c0: 743a 2047 6574 5f53 6f63 6b5f 506f 7274 t: Get_Sock_Port │ │ │ │ │ +0000b0d0: 2028 6675 6e63 7469 6f6e 292c 2020 5072 (function), Pr │ │ │ │ │ +0000b0e0: 6576 3a20 4765 745f 5065 6572 5f50 6f72 ev: Get_Peer_Por │ │ │ │ │ +0000b0f0: 7420 2866 756e 6374 696f 6e29 2c20 2055 t (function), U │ │ │ │ │ +0000b100: 703a 2041 6464 7265 7373 5f4f 6620 2866 p: Address_Of (f │ │ │ │ │ +0000b110: 756e 6374 696f 6e29 0a0a 4765 745f 536f unction)..Get_So │ │ │ │ │ +0000b120: 636b 5f41 6464 7220 2866 756e 6374 696f ck_Addr (functio │ │ │ │ │ +0000b130: 6e29 0a2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d n).------------- │ │ │ │ │ +0000b140: 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 5552 -----------..PUR │ │ │ │ │ +0000b150: 504f 5345 0a20 2020 2020 5265 7472 6965 POSE. Retrie │ │ │ │ │ +0000b160: 7665 2049 5020 6164 6472 6573 7320 6f66 ve IP address of │ │ │ │ │ +0000b170: 206c 6f63 616c 2068 6f73 740a 5052 4f54 local host.PROT │ │ │ │ │ +0000b180: 4f54 5950 450a 2020 2020 2020 2d2d 2053 OTYPE. -- S │ │ │ │ │ +0000b190: 6f63 6b65 7473 2e4e 616d 696e 672e 4765 ockets.Naming.Ge │ │ │ │ │ +0000b1a0: 745f 536f 636b 5f41 6464 723a 2066 756e t_Sock_Addr: fun │ │ │ │ │ +0000b1b0: 6374 696f 6e20 4765 745f 536f 636b 5f41 ction Get_Sock_A │ │ │ │ │ +0000b1c0: 6464 720a 2020 2020 2020 2020 2020 2020 ddr. │ │ │ │ │ +0000b1d0: 2020 2028 534f 434b 4554 203a 2053 6f63 (SOCKET : Soc │ │ │ │ │ +0000b1e0: 6b65 745f 4644 290a 2020 2020 2020 2020 ket_FD). │ │ │ │ │ +0000b1f0: 2020 2020 2020 2072 6574 7572 6e20 4164 return Ad │ │ │ │ │ +0000b200: 6472 6573 733b 0a0a 5041 5241 4d45 5445 dress;..PARAMETE │ │ │ │ │ +0000b210: 5253 0a20 2020 2020 534f 434b 4554 2020 RS. SOCKET │ │ │ │ │ +0000b220: 2020 2069 6e20 2020 2020 2020 2020 436f in Co │ │ │ │ │ +0000b230: 6e6e 6563 7465 6420 736f 636b 6574 206f nnected socket o │ │ │ │ │ +0000b240: 626a 6563 740a 0a52 4554 5552 4e20 5641 bject..RETURN VA │ │ │ │ │ +0000b250: 4c55 450a 2020 2020 2041 6464 7265 7373 LUE. Address │ │ │ │ │ +0000b260: 206f 6620 6c6f 6361 6c20 696e 7465 7266 of local interf │ │ │ │ │ +0000b270: 6163 6520 7573 6564 0a0a 5345 4520 414c ace used..SEE AL │ │ │ │ │ +0000b280: 534f 0a20 2020 2020 2a6e 6f74 6520 4765 SO. *note Ge │ │ │ │ │ +0000b290: 745f 536f 636b 5f50 6f72 7420 2866 756e t_Sock_Port (fun │ │ │ │ │ +0000b2a0: 6374 696f 6e29 3a3a 2c0a 2020 2020 202a ction)::,. * │ │ │ │ │ +0000b2b0: 6e6f 7465 2047 6574 5f50 6565 725f 4164 note Get_Peer_Ad │ │ │ │ │ +0000b2c0: 6472 2028 6675 6e63 7469 6f6e 293a 3a2e dr (function)::. │ │ │ │ │ +0000b2d0: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ +0000b2e0: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ +0000b2f0: 3a20 4765 745f 536f 636b 5f50 6f72 7420 : Get_Sock_Port │ │ │ │ │ +0000b300: 2866 756e 6374 696f 6e29 2c20 204e 6578 (function), Nex │ │ │ │ │ +0000b310: 743a 2048 6f73 745f 4e61 6d65 2028 6675 t: Host_Name (fu │ │ │ │ │ +0000b320: 6e63 7469 6f6e 292c 2020 5072 6576 3a20 nction), Prev: │ │ │ │ │ +0000b330: 4765 745f 536f 636b 5f41 6464 7220 2866 Get_Sock_Addr (f │ │ │ │ │ +0000b340: 756e 6374 696f 6e29 2c20 2055 703a 2041 unction), Up: A │ │ │ │ │ +0000b350: 6464 7265 7373 5f4f 6620 2866 756e 6374 ddress_Of (funct │ │ │ │ │ +0000b360: 696f 6e29 0a0a 4765 745f 536f 636b 5f50 ion)..Get_Sock_P │ │ │ │ │ +0000b370: 6f72 7420 2866 756e 6374 696f 6e29 0a2d ort (function).- │ │ │ │ │ +0000b380: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000b390: 2d2d 2d2d 2d2d 2d0a 0a50 5552 504f 5345 -------..PURPOSE │ │ │ │ │ +0000b3a0: 0a20 2020 2020 5265 7472 6965 7665 2070 . Retrieve p │ │ │ │ │ +0000b3b0: 6f72 7420 7573 6564 2062 7920 6c6f 6361 ort used by loca │ │ │ │ │ +0000b3c0: 6c20 686f 7374 0a50 524f 544f 5459 5045 l host.PROTOTYPE │ │ │ │ │ +0000b3d0: 0a20 2020 2020 202d 2d20 536f 636b 6574 . -- Socket │ │ │ │ │ +0000b3e0: 732e 4e61 6d69 6e67 2e47 6574 5f53 6f63 s.Naming.Get_Soc │ │ │ │ │ +0000b3f0: 6b5f 506f 7274 3a20 6675 6e63 7469 6f6e k_Port: function │ │ │ │ │ +0000b400: 2047 6574 5f53 6f63 6b5f 506f 7274 0a20 Get_Sock_Port. │ │ │ │ │ +0000b410: 2020 2020 2020 2020 2020 2020 2020 2853 (S │ │ │ │ │ +0000b420: 4f43 4b45 5420 3a20 536f 636b 6574 5f46 OCKET : Socket_F │ │ │ │ │ +0000b430: 4429 0a20 2020 2020 2020 2020 2020 2020 D). │ │ │ │ │ +0000b440: 2020 7265 7475 726e 2050 6f73 6974 6976 return Positiv │ │ │ │ │ +0000b450: 653b 0a0a 5041 5241 4d45 5445 5253 0a20 e;..PARAMETERS. │ │ │ │ │ +0000b460: 2020 2020 534f 434b 4554 2020 2020 2069 SOCKET i │ │ │ │ │ +0000b470: 6e20 2020 2020 2020 2020 436f 6e6e 6563 n Connec │ │ │ │ │ +0000b480: 7465 6420 736f 636b 6574 206f 626a 6563 ted socket objec │ │ │ │ │ +0000b490: 740a 0a52 4554 5552 4e20 5641 4c55 450a t..RETURN VALUE. │ │ │ │ │ +0000b4a0: 2020 2020 2050 6f72 7420 7573 6564 206f Port used o │ │ │ │ │ +0000b4b0: 6e20 7468 6520 6c6f 6361 6c20 686f 7374 n the local host │ │ │ │ │ +0000b4c0: 0a0a 5345 4520 414c 534f 0a20 2020 2020 ..SEE ALSO. │ │ │ │ │ +0000b4d0: 2a6e 6f74 6520 4765 745f 5065 6572 5f50 *note Get_Peer_P │ │ │ │ │ +0000b4e0: 6f72 7420 2866 756e 6374 696f 6e29 3a3a ort (function):: │ │ │ │ │ +0000b4f0: 2c0a 2020 2020 202a 6e6f 7465 2047 6574 ,. *note Get │ │ │ │ │ +0000b500: 5f53 6f63 6b5f 4164 6472 2028 6675 6e63 _Sock_Addr (func │ │ │ │ │ +0000b510: 7469 6f6e 293a 3a2e 0a0a 1f0a 4669 6c65 tion)::.....File │ │ │ │ │ +0000b520: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ +0000b530: 6f2c 2020 4e6f 6465 3a20 486f 7374 5f4e o, Node: Host_N │ │ │ │ │ +0000b540: 616d 6520 2866 756e 6374 696f 6e29 2c20 ame (function), │ │ │ │ │ +0000b550: 204e 6578 743a 2049 6d61 6765 2028 6675 Next: Image (fu │ │ │ │ │ +0000b560: 6e63 7469 6f6e 292c 2020 5072 6576 3a20 nction), Prev: │ │ │ │ │ +0000b570: 4765 745f 536f 636b 5f50 6f72 7420 2866 Get_Sock_Port (f │ │ │ │ │ +0000b580: 756e 6374 696f 6e29 2c20 2055 703a 2041 unction), Up: A │ │ │ │ │ +0000b590: 6464 7265 7373 5f4f 6620 2866 756e 6374 ddress_Of (funct │ │ │ │ │ +0000b5a0: 696f 6e29 0a0a 486f 7374 5f4e 616d 6520 ion)..Host_Name │ │ │ │ │ +0000b5b0: 2866 756e 6374 696f 6e29 0a2d 2d2d 2d2d (function).----- │ │ │ │ │ +0000b5c0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ │ +0000b5d0: 0a50 5552 504f 5345 0a20 2020 2020 4765 .PURPOSE. Ge │ │ │ │ │ +0000b5e0: 7420 7468 6520 6e61 6d65 206f 6620 7468 t the name of th │ │ │ │ │ +0000b5f0: 6520 6375 7272 656e 7420 686f 7374 0a50 e current host.P │ │ │ │ │ +0000b600: 524f 544f 5459 5045 0a20 2020 2020 202d ROTOTYPE. - │ │ │ │ │ +0000b610: 2d20 536f 636b 6574 732e 4e61 6d69 6e67 - Sockets.Naming │ │ │ │ │ +0000b620: 2e48 6f73 745f 4e61 6d65 3a20 6675 6e63 .Host_Name: func │ │ │ │ │ +0000b630: 7469 6f6e 2048 6f73 745f 4e61 6d65 0a0a tion Host_Name.. │ │ │ │ │ +0000b640: 5245 5455 524e 2056 414c 5545 0a20 2020 RETURN VALUE. │ │ │ │ │ +0000b650: 2020 4e61 6d65 206f 6620 7468 6520 6375 Name of the cu │ │ │ │ │ +0000b660: 7272 656e 7420 686f 7374 0a0a 4445 5343 rrent host..DESC │ │ │ │ │ +0000b670: 5249 5054 494f 4e0a 2020 2020 2054 6869 RIPTION. Thi │ │ │ │ │ +0000b680: 7320 6675 6e63 7469 6f6e 2072 6574 7572 s function retur │ │ │ │ │ +0000b690: 6e73 2074 6865 206e 616d 6520 6f66 2074 ns the name of t │ │ │ │ │ +0000b6a0: 6865 2063 7572 7265 6e74 2068 6f73 742e he current host. │ │ │ │ │ +0000b6b0: 2020 4465 7065 6e64 696e 6720 6f6e 0a20 Depending on. │ │ │ │ │ +0000b6c0: 2020 2020 7468 6520 6c6f 6361 6c20 636f the local co │ │ │ │ │ +0000b6d0: 6e66 6967 7572 6174 696f 6e2c 2069 7420 nfiguration, it │ │ │ │ │ +0000b6e0: 6d61 7920 6f72 206d 6179 206e 6f74 2062 may or may not b │ │ │ │ │ +0000b6f0: 6520 6120 6675 6c6c 7920 7175 616c 6966 e a fully qualif │ │ │ │ │ +0000b700: 6965 640a 2020 2020 2064 6f6d 6169 6e20 ied. domain │ │ │ │ │ +0000b710: 6e61 6d65 2028 4651 444e 292e 0a0a 1f0a name (FQDN)..... │ │ │ │ │ +0000b720: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ +0000b730: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 496d .info, Node: Im │ │ │ │ │ +0000b740: 6167 6520 2866 756e 6374 696f 6e29 2c20 age (function), │ │ │ │ │ +0000b750: 204e 6578 743a 2049 6e66 6f5f 4f66 5f4e Next: Info_Of_N │ │ │ │ │ +0000b760: 616d 655f 4f72 5f49 5020 2866 756e 6374 ame_Or_IP (funct │ │ │ │ │ +0000b770: 696f 6e29 2c20 2050 7265 763a 2048 6f73 ion), Prev: Hos │ │ │ │ │ +0000b780: 745f 4e61 6d65 2028 6675 6e63 7469 6f6e t_Name (function │ │ │ │ │ +0000b790: 292c 2020 5570 3a20 4164 6472 6573 735f ), Up: Address_ │ │ │ │ │ +0000b7a0: 4f66 2028 6675 6e63 7469 6f6e 290a 0a49 Of (function)..I │ │ │ │ │ +0000b7b0: 6d61 6765 2028 6675 6e63 7469 6f6e 290a mage (function). │ │ │ │ │ +0000b7c0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000b7d0: 0a0a 5055 5250 4f53 450a 2020 2020 204d ..PURPOSE. M │ │ │ │ │ +0000b7e0: 616b 6520 6120 7374 7269 6e67 2066 726f ake a string fro │ │ │ │ │ +0000b7f0: 6d20 616e 2061 6464 7265 7373 0a50 524f m an address.PRO │ │ │ │ │ +0000b800: 544f 5459 5045 0a20 2020 2020 202d 2d20 TOTYPE. -- │ │ │ │ │ +0000b810: 536f 636b 6574 732e 4e61 6d69 6e67 2e49 Sockets.Naming.I │ │ │ │ │ +0000b820: 6d61 6765 3a20 6675 6e63 7469 6f6e 2049 mage: function I │ │ │ │ │ +0000b830: 6d61 6765 2028 4144 4420 3a20 4164 6472 mage (ADD : Addr │ │ │ │ │ +0000b840: 6573 7329 0a20 2020 2020 2020 2020 2020 ess). │ │ │ │ │ +0000b850: 2020 2020 7265 7475 726e 2053 7472 696e return Strin │ │ │ │ │ +0000b860: 673b 0a0a 5041 5241 4d45 5445 5253 0a20 g;..PARAMETERS. │ │ │ │ │ +0000b870: 2020 2020 4144 4420 2020 2020 2020 2069 ADD i │ │ │ │ │ +0000b880: 6e20 2020 2020 2020 2020 4950 2061 6464 n IP add │ │ │ │ │ +0000b890: 7265 7373 0a0a 5245 5455 524e 2056 414c ress..RETURN VAL │ │ │ │ │ +0000b8a0: 5545 0a20 2020 2020 5374 7269 6e67 2072 UE. String r │ │ │ │ │ +0000b8b0: 6570 7265 7365 6e74 6174 696f 6e20 6f66 epresentation of │ │ │ │ │ +0000b8c0: 2074 6865 2049 5020 6164 6472 6573 730a the IP address. │ │ │ │ │ +0000b8d0: 0a53 4545 2041 4c53 4f0a 2020 2020 202a .SEE ALSO. * │ │ │ │ │ +0000b8e0: 6e6f 7465 2056 616c 7565 2028 6675 6e63 note Value (func │ │ │ │ │ +0000b8f0: 7469 6f6e 293a 3a2e 0a0a 1f0a 4669 6c65 tion)::.....File │ │ │ │ │ +0000b900: 3a20 6164 6173 6f63 6b65 7473 2e69 6e66 : adasockets.inf │ │ │ │ │ +0000b910: 6f2c 2020 4e6f 6465 3a20 496e 666f 5f4f o, Node: Info_O │ │ │ │ │ +0000b920: 665f 4e61 6d65 5f4f 725f 4950 2028 6675 f_Name_Or_IP (fu │ │ │ │ │ +0000b930: 6e63 7469 6f6e 292c 2020 4e65 7874 3a20 nction), Next: │ │ │ │ │ +0000b940: 4973 5f49 505f 4164 6472 6573 7320 2866 Is_IP_Address (f │ │ │ │ │ +0000b950: 756e 6374 696f 6e29 2c20 2050 7265 763a unction), Prev: │ │ │ │ │ +0000b960: 2049 6d61 6765 2028 6675 6e63 7469 6f6e Image (function │ │ │ │ │ +0000b970: 292c 2020 5570 3a20 4164 6472 6573 735f ), Up: Address_ │ │ │ │ │ +0000b980: 4f66 2028 6675 6e63 7469 6f6e 290a 0a49 Of (function)..I │ │ │ │ │ +0000b990: 6e66 6f5f 4f66 5f4e 616d 655f 4f72 5f49 nfo_Of_Name_Or_I │ │ │ │ │ +0000b9a0: 5020 2866 756e 6374 696f 6e29 0a2d 2d2d P (function).--- │ │ │ │ │ +0000b9b0: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000b9c0: 2d2d 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 ----------..PURP │ │ │ │ │ +0000b9d0: 4f53 450a 2020 2020 2047 6574 2061 6464 OSE. Get add │ │ │ │ │ +0000b9e0: 7265 7373 6573 2061 6e64 206e 616d 6573 resses and names │ │ │ │ │ +0000b9f0: 206f 6620 6120 686f 7374 0a50 524f 544f of a host.PROTO │ │ │ │ │ +0000ba00: 5459 5045 0a20 2020 2020 202d 2d20 536f TYPE. -- So │ │ │ │ │ +0000ba10: 636b 6574 732e 4e61 6d69 6e67 2e49 6e66 ckets.Naming.Inf │ │ │ │ │ +0000ba20: 6f5f 4f66 5f4e 616d 655f 4f72 5f49 503a o_Of_Name_Or_IP: │ │ │ │ │ +0000ba30: 2066 756e 6374 696f 6e20 496e 666f 5f4f function Info_O │ │ │ │ │ +0000ba40: 665f 4e61 6d65 5f4f 725f 4950 0a20 2020 f_Name_Or_IP. │ │ │ │ │ +0000ba50: 2020 2020 2020 2020 2020 2020 2853 4f4d (SOM │ │ │ │ │ +0000ba60: 4554 4849 4e47 203a 2053 7472 696e 6729 ETHING : String) │ │ │ │ │ +0000ba70: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000ba80: 7265 7475 726e 2048 6f73 745f 456e 7472 return Host_Entr │ │ │ │ │ +0000ba90: 793b 0a0a 5041 5241 4d45 5445 5253 0a20 y;..PARAMETERS. │ │ │ │ │ +0000baa0: 2020 2020 534f 4d45 5448 494e 4720 2069 SOMETHING i │ │ │ │ │ +0000bab0: 6e20 2020 2020 2020 2020 486f 7374 206e n Host n │ │ │ │ │ +0000bac0: 616d 6520 6f72 2049 5020 6164 6472 6573 ame or IP addres │ │ │ │ │ +0000bad0: 730a 0a52 4554 5552 4e20 5641 4c55 450a s..RETURN VALUE. │ │ │ │ │ +0000bae0: 2020 2020 2043 6f72 7265 7370 6f6e 6469 Correspondi │ │ │ │ │ +0000baf0: 6e67 2068 6f73 7420 656e 7472 790a 0a44 ng host entry..D │ │ │ │ │ +0000bb00: 4553 4352 4950 5449 4f4e 0a20 2020 2020 ESCRIPTION. │ │ │ │ │ +0000bb10: 5468 6973 2066 756e 6374 696f 6e20 6578 This function ex │ │ │ │ │ +0000bb20: 7472 6163 7473 2061 6c6c 2074 6865 206e tracts all the n │ │ │ │ │ +0000bb30: 616d 6573 2061 6e64 2061 6464 7265 7373 ames and address │ │ │ │ │ +0000bb40: 6573 2066 726f 6d20 7468 6520 6e61 6d69 es from the nami │ │ │ │ │ +0000bb50: 6e67 0a20 2020 2020 7365 7276 6963 652e ng. service. │ │ │ │ │ +0000bb60: 0a0a 4558 4345 5054 494f 4e53 0a20 2020 ..EXCEPTIONS. │ │ │ │ │ +0000bb70: 2020 274e 616d 696e 675f 4572 726f 7227 'Naming_Error' │ │ │ │ │ +0000bb80: 2020 2020 204e 6f20 696e 666f 726d 6174 No informat │ │ │ │ │ +0000bb90: 696f 6e20 6176 6169 6c61 626c 6520 666f ion available fo │ │ │ │ │ +0000bba0: 7220 7468 6973 206e 616d 6520 6f72 0a20 r this name or. │ │ │ │ │ +0000bbb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000bbc0: 2020 2020 2020 2061 6464 7265 7373 0a0a address.. │ │ │ │ │ +0000bbd0: 1f0a 4669 6c65 3a20 6164 6173 6f63 6b65 ..File: adasocke │ │ │ │ │ +0000bbe0: 7473 2e69 6e66 6f2c 2020 4e6f 6465 3a20 ts.info, Node: │ │ │ │ │ +0000bbf0: 4973 5f49 505f 4164 6472 6573 7320 2866 Is_IP_Address (f │ │ │ │ │ +0000bc00: 756e 6374 696f 6e29 2c20 204e 6578 743a unction), Next: │ │ │ │ │ +0000bc10: 204e 616d 655f 4f66 2028 6675 6e63 7469 Name_Of (functi │ │ │ │ │ +0000bc20: 6f6e 292c 2020 5072 6576 3a20 496e 666f on), Prev: Info │ │ │ │ │ +0000bc30: 5f4f 665f 4e61 6d65 5f4f 725f 4950 2028 _Of_Name_Or_IP ( │ │ │ │ │ +0000bc40: 6675 6e63 7469 6f6e 292c 2020 5570 3a20 function), Up: │ │ │ │ │ +0000bc50: 4164 6472 6573 735f 4f66 2028 6675 6e63 Address_Of (func │ │ │ │ │ +0000bc60: 7469 6f6e 290a 0a49 735f 4950 5f41 6464 tion)..Is_IP_Add │ │ │ │ │ +0000bc70: 7265 7373 2028 6675 6e63 7469 6f6e 290a ress (function). │ │ │ │ │ +0000bc80: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d ---------------- │ │ │ │ │ +0000bc90: 2d2d 2d2d 2d2d 2d2d 0a0a 5055 5250 4f53 --------..PURPOS │ │ │ │ │ +0000bca0: 450a 2020 2020 2043 6865 636b 2069 6620 E. Check if │ │ │ │ │ +0000bcb0: 6769 7665 6e20 7374 7269 6e67 2069 7320 given string is │ │ │ │ │ +0000bcc0: 6120 7661 6c69 6420 4950 2061 6464 7265 a valid IP addre │ │ │ │ │ +0000bcd0: 7373 0a50 524f 544f 5459 5045 0a20 2020 ss.PROTOTYPE. │ │ │ │ │ +0000bce0: 2020 202d 2d20 536f 636b 6574 732e 4e61 -- Sockets.Na │ │ │ │ │ +0000bcf0: 6d69 6e67 2e49 735f 4950 5f41 6464 7265 ming.Is_IP_Addre │ │ │ │ │ +0000bd00: 7373 3a20 6675 6e63 7469 6f6e 2049 735f ss: function Is_ │ │ │ │ │ +0000bd10: 4950 5f41 6464 7265 7373 0a20 2020 2020 IP_Address. │ │ │ │ │ +0000bd20: 2020 2020 2020 2020 2020 2853 4f4d 4554 (SOMET │ │ │ │ │ +0000bd30: 4849 4e47 203a 2053 7472 696e 6729 0a20 HING : String). │ │ │ │ │ +0000bd40: 2020 2020 2020 2020 2020 2020 2020 7265 re │ │ │ │ │ +0000bd50: 7475 726e 2042 6f6f 6c65 616e 3b0a 0a50 turn Boolean;..P │ │ │ │ │ +0000bd60: 4152 414d 4554 4552 530a 2020 2020 2053 ARAMETERS. S │ │ │ │ │ +0000bd70: 4f4d 4554 4849 4e47 2020 696e 2020 2020 OMETHING in │ │ │ │ │ +0000bd80: 2020 2020 2053 7472 696e 6720 746f 2063 String to c │ │ │ │ │ +0000bd90: 6865 636b 0a0a 5245 5455 524e 2056 414c heck..RETURN VAL │ │ │ │ │ +0000bda0: 5545 0a20 2020 2020 2754 7275 6527 2069 UE. 'True' i │ │ │ │ │ +0000bdb0: 6620 534f 4d45 5448 494e 4720 6973 2061 f SOMETHING is a │ │ │ │ │ +0000bdc0: 6e20 4950 2061 6464 7265 7373 0a0a 1f0a n IP address.... │ │ │ │ │ +0000bdd0: 4669 6c65 3a20 6164 6173 6f63 6b65 7473 File: adasockets │ │ │ │ │ +0000bde0: 2e69 6e66 6f2c 2020 4e6f 6465 3a20 4e61 .info, Node: Na │ │ │ │ │ +0000bdf0: 6d65 5f4f 6620 2866 756e 6374 696f 6e29 me_Of (function) │ │ │ │ │ +0000be00: 2c20 204e 6578 743a 2056 616c 7565 2028 , Next: Value ( │ │ │ │ │ +0000be10: 6675 6e63 7469 6f6e 292c 2020 5072 6576 function), Prev │ │ │ │ │ +0000be20: 3a20 4973 5f49 505f 4164 6472 6573 7320 : Is_IP_Address │ │ │ │ │ +0000be30: 2866 756e 6374 696f 6e29 2c20 2055 703a (function), Up: │ │ │ │ │ +0000be40: 2041 6464 7265 7373 5f4f 6620 2866 756e Address_Of (fun │ │ │ │ │ +0000be50: 6374 696f 6e29 0a0a 4e61 6d65 5f4f 6620 ction)..Name_Of │ │ │ │ │ +0000be60: 2866 756e 6374 696f 6e29 0a2d 2d2d 2d2d (function).----- │ │ │ │ │ +0000be70: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a 0a50 -------------..P │ │ │ │ │ +0000be80: 5552 504f 5345 0a20 2020 2020 4f66 6669 URPOSE. Offi │ │ │ │ │ +0000be90: 6369 616c 206e 616d 6520 6f66 2074 6865 cial name of the │ │ │ │ │ +0000bea0: 2068 6f73 740a 5052 4f54 4f54 5950 450a host.PROTOTYPE. │ │ │ │ │ +0000beb0: 2020 2020 2020 2d2d 2053 6f63 6b65 7473 -- Sockets │ │ │ │ │ +0000bec0: 2e4e 616d 696e 672e 4e61 6d65 5f4f 663a .Naming.Name_Of: │ │ │ │ │ +0000bed0: 2066 756e 6374 696f 6e20 4e61 6d65 5f4f function Name_O │ │ │ │ │ +0000bee0: 6620 2853 4f4d 4554 4849 4e47 203a 2053 f (SOMETHING : S │ │ │ │ │ +0000bef0: 7472 696e 6729 0a20 2020 2020 2020 2020 tring). │ │ │ │ │ +0000bf00: 2020 2020 2020 7265 7475 726e 2053 7472 return Str │ │ │ │ │ +0000bf10: 696e 673b 0a0a 5041 5241 4d45 5445 5253 ing;..PARAMETERS │ │ │ │ │ +0000bf20: 0a20 2020 2020 534f 4d45 5448 494e 4720 . SOMETHING │ │ │ │ │ +0000bf30: 2069 6e20 2020 2020 2020 2020 486f 7374 in Host │ │ │ │ │ +0000bf40: 206e 616d 6520 6f72 2049 5020 6164 6472 name or IP addr │ │ │ │ │ +0000bf50: 6573 730a 0a52 4554 5552 4e20 5641 4c55 ess..RETURN VALU │ │ │ │ │ +0000bf60: 450a 2020 2020 204e 616d 6520 6f66 2074 E. Name of t │ │ │ │ │ +0000bf70: 6865 2068 6f73 740a 0a45 5843 4550 5449 he host..EXCEPTI │ │ │ │ │ +0000bf80: 4f4e 530a 2020 2020 2027 4e61 6d69 6e67 ONS. 'Naming │ │ │ │ │ +0000bf90: 5f45 7272 6f72 2720 2020 2020 4e6f 2069 _Error' No i │ │ │ │ │ +0000bfa0: 6e66 6f72 6d61 7469 6f6e 2061 7661 696c nformation avail │ │ │ │ │ +0000bfb0: 6162 6c65 2066 6f72 2074 6869 7320 6e61 able for this na │ │ │ │ │ +0000bfc0: 6d65 206f 720a 2020 2020 2020 2020 2020 me or. │ │ │ │ │ +0000bfd0: 2020 2020 2020 2020 2020 2020 2020 6164 ad │ │ │ │ │ +0000bfe0: 6472 6573 730a 0a53 4545 2041 4c53 4f0a dress..SEE ALSO. │ │ │ │ │ +0000bff0: 2020 2020 202a 6e6f 7465 2041 6464 7265 *note Addre │ │ │ │ │ +0000c000: 7373 5f4f 6620 2866 756e 6374 696f 6e29 ss_Of (function) │ │ │ │ │ +0000c010: 3a3a 2e0a 0a1f 0a46 696c 653a 2061 6461 ::.....File: ada │ │ │ │ │ +0000c020: 736f 636b 6574 732e 696e 666f 2c20 204e sockets.info, N │ │ │ │ │ +0000c030: 6f64 653a 2056 616c 7565 2028 6675 6e63 ode: Value (func │ │ │ │ │ +0000c040: 7469 6f6e 292c 2020 5072 6576 3a20 4e61 tion), Prev: Na │ │ │ │ │ +0000c050: 6d65 5f4f 6620 2866 756e 6374 696f 6e29 me_Of (function) │ │ │ │ │ +0000c060: 2c20 2055 703a 2041 6464 7265 7373 5f4f , Up: Address_O │ │ │ │ │ +0000c070: 6620 2866 756e 6374 696f 6e29 0a0a 5661 f (function)..Va │ │ │ │ │ +0000c080: 6c75 6520 2866 756e 6374 696f 6e29 0a2d lue (function).- │ │ │ │ │ +0000c090: 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d2d 2d0a ---------------. │ │ │ │ │ +0000c0a0: 0a50 5552 504f 5345 0a20 2020 2020 5472 .PURPOSE. Tr │ │ │ │ │ +0000c0b0: 616e 7366 6f72 6d20 6120 7374 7269 6e67 ansform a string │ │ │ │ │ +0000c0c0: 2069 6e74 6f20 616e 2061 6464 7265 7373 into an address │ │ │ │ │ +0000c0d0: 0a50 524f 544f 5459 5045 0a20 2020 2020 .PROTOTYPE. │ │ │ │ │ +0000c0e0: 202d 2d20 536f 636b 6574 732e 4e61 6d69 -- Sockets.Nami │ │ │ │ │ +0000c0f0: 6e67 2e56 616c 7565 3a20 6675 6e63 7469 ng.Value: functi │ │ │ │ │ +0000c100: 6f6e 2056 616c 7565 2028 4144 4420 3a20 on Value (ADD : │ │ │ │ │ +0000c110: 5374 7269 6e67 290a 2020 2020 2020 2020 String). │ │ │ │ │ +0000c120: 2020 2020 2020 2072 6574 7572 6e20 4164 return Ad │ │ │ │ │ +0000c130: 6472 6573 733b 0a0a 5041 5241 4d45 5445 dress;..PARAMETE │ │ │ │ │ +0000c140: 5253 0a20 2020 2020 4144 4420 2020 2020 RS. ADD │ │ │ │ │ +0000c150: 2020 2069 6e20 2020 2020 2020 2020 5465 in Te │ │ │ │ │ +0000c160: 7874 7561 6c20 7265 7072 6573 656e 7461 xtual representa │ │ │ │ │ +0000c170: 7469 6f6e 206f 6620 616e 2049 5020 6164 tion of an IP ad │ │ │ │ │ +0000c180: 6472 6573 730a 0a52 4554 5552 4e20 5641 dress..RETURN VA │ │ │ │ │ +0000c190: 4c55 450a 2020 2020 2043 6f72 7265 7370 LUE. Corresp │ │ │ │ │ +0000c1a0: 6f6e 6469 6e67 2041 6464 7265 7373 0a0a onding Address.. │ │ │ │ │ +0000c1b0: 5345 4520 414c 534f 0a20 2020 2020 2a6e SEE ALSO. *n │ │ │ │ │ +0000c1c0: 6f74 6520 496d 6167 6520 2866 756e 6374 ote Image (funct │ │ │ │ │ +0000c1d0: 696f 6e29 3a3a 2e0a 0a1f 0a46 696c 653a ion)::.....File: │ │ │ │ │ +0000c1e0: 2061 6461 736f 636b 6574 732e 696e 666f adasockets.info │ │ │ │ │ +0000c1f0: 2c20 204e 6f64 653a 2043 6f6e 7472 6962 , Node: Contrib │ │ │ │ │ +0000c200: 7574 6f72 732c 2020 4e65 7874 3a20 5265 utors, Next: Re │ │ │ │ │ +0000c210: 736f 7572 6365 7320 6f6e 2074 6865 2049 sources on the I │ │ │ │ │ +0000c220: 6e74 6572 6e65 742c 2020 5072 6576 3a20 nternet, Prev: │ │ │ │ │ +0000c230: 536f 636b 6574 732e 4e61 6d69 6e67 2070 Sockets.Naming p │ │ │ │ │ +0000c240: 6163 6b61 6765 2c20 2055 703a 2054 6f70 ackage, Up: Top │ │ │ │ │ +0000c250: 0a0a 4170 7065 6e64 6978 2041 2043 6f6e ..Appendix A Con │ │ │ │ │ +0000c260: 7472 6962 7574 6f72 730a 2a2a 2a2a 2a2a tributors.****** │ │ │ │ │ +0000c270: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ +0000c280: 2a0a 0a41 6461 536f 636b 6574 7320 6861 *..AdaSockets ha │ │ │ │ │ +0000c290: 7320 6265 656e 206f 7269 6769 6e61 6c6c s been originall │ │ │ │ │ +0000c2a0: 7920 6465 7665 6c6f 7070 6564 2062 7920 y developped by │ │ │ │ │ +0000c2b0: 5361 6d75 656c 2054 6172 6469 6575 2077 Samuel Tardieu w │ │ │ │ │ +0000c2c0: 686f 2073 7469 6c6c 0a6d 6169 6e74 6169 ho still.maintai │ │ │ │ │ +0000c2d0: 6e73 2069 742e 2020 486f 7765 7665 722c ns it. However, │ │ │ │ │ +0000c2e0: 2074 6865 2066 6f6c 6c6f 7769 6e67 2070 the following p │ │ │ │ │ +0000c2f0: 656f 706c 6520 6861 7665 206d 6164 6520 eople have made │ │ │ │ │ +0000c300: 6372 7563 6961 6c0a 636f 6e74 7269 6275 crucial.contribu │ │ │ │ │ +0000c310: 7469 6f6e 7320 746f 2041 6461 536f 636b tions to AdaSock │ │ │ │ │ +0000c320: 6574 732c 2062 6520 7468 6579 206e 6577 ets, be they new │ │ │ │ │ +0000c330: 2063 6f64 652c 2062 7567 2066 6978 6573 code, bug fixes │ │ │ │ │ +0000c340: 206f 7220 706f 7274 696e 6720 746f 0a6e or porting to.n │ │ │ │ │ +0000c350: 6577 206f 7065 7261 7469 6e67 2073 7973 ew operating sys │ │ │ │ │ +0000c360: 7465 6d73 3a0a 0a20 2020 2a20 446d 6974 tems:.. * Dmit │ │ │ │ │ +0000c370: 7269 7920 416e 6973 696d 6b6f 7620 283c riy Anisimkov (< │ │ │ │ │ +0000c380: 616e 6973 696d 6b6f 7640 7961 686f 6f2e anisimkov@yahoo. │ │ │ │ │ +0000c390: 636f 6d3e 290a 2020 202a 2041 6c61 6e20 com>). * Alan │ │ │ │ │ +0000c3a0: 4261 726e 6573 2028 3c62 6172 6e65 7361 Barnes (). │ │ │ │ │ +0000c3c0: 2020 2a20 4a75 616e 6d61 2042 6172 7261 * Juanma Barra │ │ │ │ │ +0000c3d0: 6e71 7565 726f 2028 3c6c 656b 7475 4074 nquero (). * B │ │ │ │ │ +0000c3f0: 6f62 6279 2044 2e20 4272 7961 6e74 2028 obby D. Bryant ( │ │ │ │ │ +0000c400: 3c62 6462 7279 616e 7440 6d61 696c 2e75 ). * │ │ │ │ │ +0000c420: 2053 616e 6465 7220 436f 7820 283c 7361 Sander Cox (). * Sune │ │ │ │ │ +0000c450: 2046 616c 6b20 283c 7375 6e65 2e66 616c Falk (). │ │ │ │ │ +0000c470: 2020 2a20 4775 696c 6c61 756d 6520 466f * Guillaume Fo │ │ │ │ │ +0000c480: 6c69 6172 6420 283c 6775 6966 6f40 7761 liard (). * │ │ │ │ │ +0000c4a0: 4c61 7572 656e 7420 4775 6572 6279 2028 Laurent Guerby ( │ │ │ │ │ +0000c4b0: 3c67 7565 7262 7940 636c 7562 2d69 6e74 ). * │ │ │ │ │ +0000c4d0: 4461 7669 6420 4a2e 204b 7269 7374 6f6c David J. Kristol │ │ │ │ │ +0000c4e0: 6120 283c 4461 7669 6439 3530 3337 4061 a (). * Do │ │ │ │ │ +0000c500: 6d69 6e69 6b20 4d61 646f 6e20 283c 646f minik Madon (). │ │ │ │ │ +0000c520: 2020 202a 2050 6173 6361 6c20 4f62 7279 * Pascal Obry │ │ │ │ │ +0000c530: 2028 3c70 2e6f 6272 7940 7761 6e61 646f (). * Nico │ │ │ │ │ +0000c550: 6c61 7320 4f6c 6c69 6e67 6572 2028 3c4e las Ollinger (). │ │ │ │ │ +0000c580: 202a 2053 7470 6861 6e65 2050 6174 7572 * Stphane Patur │ │ │ │ │ +0000c590: 6561 7520 283c 7370 6174 7572 6561 406d eau (). │ │ │ │ │ +0000c5c0: 2a20 5468 6f6d 6173 2051 7569 6e6f 7420 * Thomas Quinot │ │ │ │ │ +0000c5d0: 283c 7468 6f6d 6173 4063 7569 7672 652e (). * │ │ │ │ │ +0000c5f0: 2050 7265 6265 6e20 5261 6e64 686f 6c20 Preben Randhol │ │ │ │ │ +0000c600: 283c 7261 6e64 686f 6c40 7076 762e 6f72 (). * Maxim R │ │ │ │ │ +0000c620: 657a 6e69 6b20 283c 6d61 7831 406d 6261 eznik (). * │ │ │ │ │ +0000c640: 204a 6f65 6c20 5368 6572 7269 6c6c 2028 Joel Sherrill ( │ │ │ │ │ +0000c650: 3c6a 6f65 6c2e 7368 6572 7269 6c6c 406f ). │ │ │ │ │ +0000c670: 2a20 5361 6d75 656c 2054 6172 6469 6575 * Samuel Tardieu │ │ │ │ │ +0000c680: 2028 3c73 616d 4072 6663 3131 3439 2e6e ().. If you │ │ │ │ │ +0000c6a0: 6665 656c 2074 6861 7420 796f 7520 6861 feel that you ha │ │ │ │ │ +0000c6b0: 7665 2062 6565 6e20 666f 7267 6f74 7465 ve been forgotte │ │ │ │ │ +0000c6c0: 6e2c 2070 6c65 6173 6520 7365 6e64 206d n, please send m │ │ │ │ │ +0000c6d0: 6520 6120 6d61 696c 2073 6f0a 7468 6174 e a mail so.that │ │ │ │ │ +0000c6e0: 2049 2063 616e 2066 6978 2069 7420 696e I can fix it in │ │ │ │ │ +0000c6f0: 2074 6865 206e 6578 7420 7665 7273 696f the next versio │ │ │ │ │ +0000c700: 6e2e 0a0a 2020 202a 4e6f 7465 2052 6573 n... *Note Res │ │ │ │ │ +0000c710: 6f75 7263 6573 206f 6e20 7468 6520 496e ources on the In │ │ │ │ │ +0000c720: 7465 726e 6574 3a3a 2c20 666f 7220 686f ternet::, for ho │ │ │ │ │ +0000c730: 7720 746f 2063 6f6e 7472 6962 7574 652e w to contribute. │ │ │ │ │ +0000c740: 0a0a 1f0a 4669 6c65 3a20 6164 6173 6f63 ....File: adasoc │ │ │ │ │ +0000c750: 6b65 7473 2e69 6e66 6f2c 2020 4e6f 6465 kets.info, Node │ │ │ │ │ +0000c760: 3a20 5265 736f 7572 6365 7320 6f6e 2074 : Resources on t │ │ │ │ │ +0000c770: 6865 2049 6e74 6572 6e65 742c 2020 4e65 he Internet, Ne │ │ │ │ │ +0000c780: 7874 3a20 496e 6465 782c 2020 5072 6576 xt: Index, Prev │ │ │ │ │ +0000c790: 3a20 436f 6e74 7269 6275 746f 7273 2c20 : Contributors, │ │ │ │ │ +0000c7a0: 2055 703a 2054 6f70 0a0a 4170 7065 6e64 Up: Top..Append │ │ │ │ │ +0000c7b0: 6978 2042 2052 6573 6f75 7263 6573 206f ix B Resources o │ │ │ │ │ +0000c7c0: 6e20 7468 6520 496e 7465 726e 6574 0a2a n the Internet.* │ │ │ │ │ +0000c7d0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ +0000c7e0: 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a 2a2a **************** │ │ │ │ │ +0000c7f0: 2a2a 2a0a 0a54 6865 206c 6174 6573 7420 ***..The latest │ │ │ │ │ +0000c800: 7665 7273 696f 6e20 6f66 2041 6461 536f version of AdaSo │ │ │ │ │ +0000c810: 636b 6574 7320 6361 6e20 616c 7761 7973 ckets can always │ │ │ │ │ +0000c820: 2062 6520 666f 756e 6420 6174 3a0a 0a20 be found at:.. │ │ │ │ │ +0000c830: 2020 2020 2020 2020 2020 2020 2020 3c68 .. You │ │ │ │ │ +0000c870: 6361 6e20 7265 706f 7274 2069 7373 7565 can report issue │ │ │ │ │ +0000c880: 7320 6f72 2073 7562 6d69 7420 7175 6573 s or submit ques │ │ │ │ │ +0000c890: 7469 6f6e 7320 6f6e 2047 6974 4875 6227 tions on GitHub' │ │ │ │ │ +0000c8a0: 7320 6973 7375 6520 7472 6163 6b65 720a s issue tracker. │ │ │ │ │ +0000c8b0: 6174 3a0a 0a20 2020 2020 2020 2020 3c68 at:.. ....File: adas │ │ │ │ │ +0000c900: 6f63 6b65 7473 2e69 6e66 6f2c 2020 4e6f ockets.info, No │ │ │ │ │ +0000c910: 6465 3a20 496e 6465 782c 2020 5072 6576 de: Index, Prev │ │ │ │ │ +0000c920: 3a20 5265 736f 7572 6365 7320 6f6e 2074 : Resources on t │ │ │ │ │ +0000c930: 6865 2049 6e74 6572 6e65 742c 2020 5570 he Internet, Up │ │ │ │ │ +0000c940: 3a20 546f 700a 0a49 6e64 6578 0a2a 2a2a : Top..Index.*** │ │ │ │ │ +0000c950: 2a2a 0a0a 0008 5b69 6e64 6578 0008 5d0a **....[index..]. │ │ │ │ │ +0000c960: 2a20 4d65 6e75 3a0a 0a2a 2041 6363 6570 * Menu:..* Accep │ │ │ │ │ +0000c970: 7469 6e67 2061 206e 6577 2063 6f6e 6e65 ting a new conne │ │ │ │ │ +0000c980: 6374 696f 6e3a 2020 2020 2020 2020 2020 ction: │ │ │ │ │ +0000c990: 2020 4163 6365 7074 5f53 6f63 6b65 7420 Accept_Socket │ │ │ │ │ +0000c9a0: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +0000c9b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000c9c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000c9d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c9e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000c9f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ca00: 2020 2028 6c69 6e65 2020 3929 0a2a 2041 (line 9).* A │ │ │ │ │ -0000ca10: 465f 494e 4554 3a20 2020 2020 2020 2020 F_INET: │ │ │ │ │ -0000ca20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ca30: 2020 2020 2020 536f 636b 6574 2028 7072 Socket (pr │ │ │ │ │ -0000ca40: 6f63 6564 7572 6529 2e20 2020 286c 696e ocedure). (lin │ │ │ │ │ -0000ca50: 6520 3139 290a 2a20 416e 795f 4164 6472 e 19).* Any_Addr │ │ │ │ │ -0000ca60: 6573 733a 2020 2020 2020 2020 2020 2020 ess: │ │ │ │ │ -0000ca70: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ │ -0000ca80: 6e79 5f41 6464 7265 7373 2028 6675 6e63 ny_Address (func │ │ │ │ │ -0000ca90: 7469 6f6e 292e 0a20 2020 2020 2020 2020 tion).. │ │ │ │ │ -0000caa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cad0: 2020 2020 2020 286c 696e 6520 2039 290a (line 9). │ │ │ │ │ -0000cae0: 2a20 4173 7369 676e 696e 6720 6120 6c6f * Assigning a lo │ │ │ │ │ -0000caf0: 6361 6c20 706f 7274 3a20 2020 2020 2020 cal port: │ │ │ │ │ -0000cb00: 2020 2020 2020 2020 2042 696e 6420 2870 Bind (p │ │ │ │ │ -0000cb10: 726f 6365 6475 7265 292e 2020 2020 2028 rocedure). ( │ │ │ │ │ -0000cb20: 6c69 6e65 2020 3629 0a2a 2042 696e 643a line 6).* Bind: │ │ │ │ │ -0000cb30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cb40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cb50: 2020 4269 6e64 2028 7072 6f63 6564 7572 Bind (procedur │ │ │ │ │ -0000cb60: 6529 2e20 2020 2020 286c 696e 6520 2039 e). (line 9 │ │ │ │ │ -0000cb70: 290a 2a20 4269 6e64 696e 6720 6120 736f ).* Binding a so │ │ │ │ │ -0000cb80: 636b 6574 3a20 2020 2020 2020 2020 2020 cket: │ │ │ │ │ -0000cb90: 2020 2020 2020 2020 2020 2042 696e 6420 Bind │ │ │ │ │ -0000cba0: 2870 726f 6365 6475 7265 292e 2020 2020 (procedure). │ │ │ │ │ -0000cbb0: 2028 6c69 6e65 2020 3629 0a2a 2042 6f74 (line 6).* Bot │ │ │ │ │ -0000cbc0: 683a 2020 2020 2020 2020 2020 2020 2020 h: │ │ │ │ │ -0000cbd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cbe0: 2020 2020 5368 7574 646f 776e 2028 7072 Shutdown (pr │ │ │ │ │ -0000cbf0: 6f63 6564 7572 6529 2e20 286c 696e 6520 ocedure). (line │ │ │ │ │ -0000cc00: 3137 290a 2a20 436c 6f73 696e 6720 6120 17).* Closing a │ │ │ │ │ -0000cc10: 736f 636b 6574 3a20 2020 2020 2020 2020 socket: │ │ │ │ │ -0000cc20: 2020 2020 2020 2020 2020 2020 2053 6875 Shu │ │ │ │ │ -0000cc30: 7464 6f77 6e20 2870 726f 6365 6475 7265 tdown (procedure │ │ │ │ │ -0000cc40: 292e 2028 6c69 6e65 2020 3629 0a2a 2043 ). (line 6).* C │ │ │ │ │ -0000cc50: 6f6d 7061 7261 6973 6f6e 2077 6974 6820 omparaison with │ │ │ │ │ -0000cc60: 474e 4154 2e53 6f63 6b65 7473 3a20 2020 GNAT.Sockets: │ │ │ │ │ -0000cc70: 2020 2020 2020 5768 6174 2069 7320 4164 What is Ad │ │ │ │ │ -0000cc80: 6153 6f63 6b65 7473 3f2e 2020 286c 696e aSockets?. (lin │ │ │ │ │ -0000cc90: 6520 2036 290a 2a20 436f 6e6e 6563 743a e 6).* Connect: │ │ │ │ │ -0000cca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ccb0: 2020 2020 2020 2020 2020 2020 2020 2043 C │ │ │ │ │ -0000ccc0: 6f6e 6e65 6374 2028 7072 6f63 6564 7572 onnect (procedur │ │ │ │ │ -0000ccd0: 6529 2e20 2028 6c69 6e65 2020 3929 0a2a e). (line 9).* │ │ │ │ │ -0000cce0: 2043 6f6e 6e65 6374 696e 6720 6120 736f Connecting a so │ │ │ │ │ -0000ccf0: 636b 6574 3a20 2020 2020 2020 2020 2020 cket: │ │ │ │ │ -0000cd00: 2020 2020 2020 2020 436f 6e6e 6563 7420 Connect │ │ │ │ │ -0000cd10: 2870 726f 6365 6475 7265 292e 2020 286c (procedure). (l │ │ │ │ │ -0000cd20: 696e 6520 2036 290a 2a20 436f 6e6e 6563 ine 6).* Connec │ │ │ │ │ -0000cd30: 7469 6f6e 5f43 6c6f 7365 643a 2020 2020 tion_Closed: │ │ │ │ │ -0000cd40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cd50: 2047 6574 2028 6675 6e63 7469 6f6e 292e Get (function). │ │ │ │ │ -0000cd60: 2020 2020 2020 2028 6c69 6e65 2033 3429 (line 34) │ │ │ │ │ -0000cd70: 0a2a 2043 6f6e 6e65 6374 696f 6e5f 436c .* Connection_Cl │ │ │ │ │ -0000cd80: 6f73 6564 203c 313e 3a20 2020 2020 2020 osed <1>: │ │ │ │ │ -0000cd90: 2020 2020 2020 2020 2020 4765 745f 4368 Get_Ch │ │ │ │ │ -0000cda0: 6172 2028 6675 6e63 7469 6f6e 292e 2020 ar (function). │ │ │ │ │ -0000cdb0: 286c 696e 6520 3233 290a 2a20 436f 6e6e (line 23).* Conn │ │ │ │ │ -0000cdc0: 6563 7469 6f6e 5f43 6c6f 7365 6420 3c32 ection_Closed <2 │ │ │ │ │ -0000cdd0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ -0000cde0: 2020 2047 6574 5f4c 696e 6520 2866 756e Get_Line (fun │ │ │ │ │ -0000cdf0: 6374 696f 6e29 2e20 2028 6c69 6e65 2033 ction). (line 3 │ │ │ │ │ -0000ce00: 3229 0a2a 2043 6f6e 6e65 6374 696f 6e5f 2).* Connection_ │ │ │ │ │ -0000ce10: 436c 6f73 6564 203c 333e 3a20 2020 2020 Closed <3>: │ │ │ │ │ -0000ce20: 2020 2020 2020 2020 2020 2020 4765 745f Get_ │ │ │ │ │ -0000ce30: 4c69 6e65 2028 7072 6f63 6564 7572 6529 Line (procedure) │ │ │ │ │ -0000ce40: 2e20 286c 696e 6520 3237 290a 2a20 436f . (line 27).* Co │ │ │ │ │ -0000ce50: 6e6e 6563 7469 6f6e 5f43 6c6f 7365 6420 nnection_Closed │ │ │ │ │ -0000ce60: 3c34 3e3a 2020 2020 2020 2020 2020 2020 <4>: │ │ │ │ │ -0000ce70: 2020 2020 204e 6577 5f4c 696e 6520 2870 New_Line (p │ │ │ │ │ -0000ce80: 726f 6365 6475 7265 292e 2028 6c69 6e65 rocedure). (line │ │ │ │ │ -0000ce90: 2032 3029 0a2a 2043 6f6e 6e65 6374 696f 20).* Connectio │ │ │ │ │ -0000cea0: 6e5f 436c 6f73 6564 203c 353e 3a20 2020 n_Closed <5>: │ │ │ │ │ -0000ceb0: 2020 2020 2020 2020 2020 2020 2020 5075 Pu │ │ │ │ │ -0000cec0: 7420 2870 726f 6365 6475 7265 292e 2020 t (procedure). │ │ │ │ │ -0000ced0: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ -0000cee0: 436f 6e6e 6563 7469 6f6e 5f43 6c6f 7365 Connection_Close │ │ │ │ │ -0000cef0: 6420 3c36 3e3a 2020 2020 2020 2020 2020 d <6>: │ │ │ │ │ -0000cf00: 2020 2020 2020 2050 7574 5f4c 696e 6520 Put_Line │ │ │ │ │ -0000cf10: 2870 726f 6365 6475 7265 292e 2028 6c69 (procedure). (li │ │ │ │ │ -0000cf20: 6e65 2032 3129 0a2a 2043 6f6e 6e65 6374 ne 21).* Connect │ │ │ │ │ -0000cf30: 696f 6e5f 436c 6f73 6564 203c 373e 3a20 ion_Closed <7>: │ │ │ │ │ +0000c9e0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000c9f0: 6520 2036 290a 2a20 4163 6365 7074 5f53 e 6).* Accept_S │ │ │ │ │ +0000ca00: 6f63 6b65 743a 2020 2020 2020 2020 2020 ocket: │ │ │ │ │ +0000ca10: 2020 2020 2020 2020 2020 2020 2020 2041 A │ │ │ │ │ +0000ca20: 6363 6570 745f 536f 636b 6574 2028 7072 ccept_Socket (pr │ │ │ │ │ +0000ca30: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ +0000ca40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ca50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ca60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ca70: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ +0000ca80: 3929 0a2a 2041 6461 2e53 7472 6561 6d73 9).* Ada.Streams │ │ │ │ │ +0000ca90: 2e53 7472 6561 6d5f 456c 656d 656e 745f .Stream_Element_ │ │ │ │ │ +0000caa0: 4172 7261 793a 2020 2020 2020 5261 7720 Array: Raw │ │ │ │ │ +0000cab0: 6461 7461 206d 616e 6970 756c 6174 696f data manipulatio │ │ │ │ │ +0000cac0: 6e2e 0a20 2020 2020 2020 2020 2020 2020 n.. │ │ │ │ │ +0000cad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000caf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cb00: 2020 286c 696e 6520 2036 290a 2a20 4164 (line 6).* Ad │ │ │ │ │ +0000cb10: 612e 5374 7265 616d 732e 5374 7265 616d a.Streams.Stream │ │ │ │ │ +0000cb20: 5f45 6c65 6d65 6e74 5f41 7272 6179 203c _Element_Array < │ │ │ │ │ +0000cb30: 313e 3a20 2052 6563 6569 7665 2028 6675 1>: Receive (fu │ │ │ │ │ +0000cb40: 6e63 7469 6f6e 292e 2020 2028 6c69 6e65 nction). (line │ │ │ │ │ +0000cb50: 2032 3229 0a2a 2041 6461 2e53 7472 6561 22).* Ada.Strea │ │ │ │ │ +0000cb60: 6d73 2e53 7472 6561 6d5f 456c 656d 656e ms.Stream_Elemen │ │ │ │ │ +0000cb70: 745f 4172 7261 7920 3c32 3e3a 2020 5265 t_Array <2>: Re │ │ │ │ │ +0000cb80: 6365 6976 6520 2870 726f 6365 6475 7265 ceive (procedure │ │ │ │ │ +0000cb90: 292e 2020 286c 696e 6520 3138 290a 2a20 ). (line 18).* │ │ │ │ │ +0000cba0: 4164 612e 5374 7265 616d 732e 5374 7265 Ada.Streams.Stre │ │ │ │ │ +0000cbb0: 616d 5f45 6c65 6d65 6e74 5f41 7272 6179 am_Element_Array │ │ │ │ │ +0000cbc0: 203c 333e 3a20 2052 6563 6569 7665 5f53 <3>: Receive_S │ │ │ │ │ +0000cbd0: 6f6d 6520 2870 726f 6365 6475 7265 292e ome (procedure). │ │ │ │ │ +0000cbe0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000cbf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cc00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cc10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cc20: 286c 696e 6520 3231 290a 2a20 4164 612e (line 21).* Ada. │ │ │ │ │ +0000cc30: 5374 7265 616d 732e 5374 7265 616d 5f45 Streams.Stream_E │ │ │ │ │ +0000cc40: 6c65 6d65 6e74 5f41 7272 6179 203c 343e lement_Array <4> │ │ │ │ │ +0000cc50: 3a20 2053 656e 6420 2870 726f 6365 6475 : Send (procedu │ │ │ │ │ +0000cc60: 7265 292e 2020 2020 2028 6c69 6e65 2031 re). (line 1 │ │ │ │ │ +0000cc70: 3729 0a2a 2041 6461 2e53 7472 6561 6d73 7).* Ada.Streams │ │ │ │ │ +0000cc80: 2e53 7472 6561 6d5f 456c 656d 656e 745f .Stream_Element_ │ │ │ │ │ +0000cc90: 436f 756e 743a 2020 2020 2020 5265 6365 Count: Rece │ │ │ │ │ +0000cca0: 6976 6520 2866 756e 6374 696f 6e29 2e20 ive (function). │ │ │ │ │ +0000ccb0: 2020 286c 696e 6520 3232 290a 2a20 4164 (line 22).* Ad │ │ │ │ │ +0000ccc0: 612e 5374 7265 616d 732e 5374 7265 616d a.Streams.Stream │ │ │ │ │ +0000ccd0: 5f45 6c65 6d65 6e74 5f43 6f75 6e74 203c _Element_Count < │ │ │ │ │ +0000cce0: 313e 3a20 2052 6563 6569 7665 5f53 6f6d 1>: Receive_Som │ │ │ │ │ +0000ccf0: 6520 2870 726f 6365 6475 7265 292e 0a20 e (procedure).. │ │ │ │ │ +0000cd00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cd10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cd20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cd30: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000cd40: 696e 6520 3231 290a 2a20 4164 6153 6f63 ine 21).* AdaSoc │ │ │ │ │ +0000cd50: 6b65 7473 2070 7265 7365 6e74 6174 696f kets presentatio │ │ │ │ │ +0000cd60: 6e3a 2020 2020 2020 2020 2020 2020 2020 n: │ │ │ │ │ +0000cd70: 2057 6861 7420 6973 2041 6461 536f 636b What is AdaSock │ │ │ │ │ +0000cd80: 6574 733f 2e20 2028 6c69 6e65 2020 3629 ets?. (line 6) │ │ │ │ │ +0000cd90: 0a2a 2041 6464 7265 7373 3a20 2020 2020 .* Address: │ │ │ │ │ +0000cda0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cdb0: 2020 2020 2020 2020 2020 536f 636b 6574 Socket │ │ │ │ │ +0000cdc0: 732e 4e61 6d69 6e67 2070 6163 6b61 6765 s.Naming package │ │ │ │ │ +0000cdd0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +0000cde0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cdf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce10: 2028 6c69 6e65 2020 3929 0a2a 2041 6464 (line 9).* Add │ │ │ │ │ +0000ce20: 7265 7373 5f41 7272 6179 3a20 2020 2020 ress_Array: │ │ │ │ │ +0000ce30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce40: 2020 2020 536f 636b 6574 732e 4e61 6d69 Sockets.Nami │ │ │ │ │ +0000ce50: 6e67 2070 6163 6b61 6765 2e0a 2020 2020 ng package.. │ │ │ │ │ +0000ce60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ce90: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000cea0: 2031 3629 0a2a 2041 6464 7265 7373 5f43 16).* Address_C │ │ │ │ │ +0000ceb0: 6f6d 706f 6e65 6e74 3a20 2020 2020 2020 omponent: │ │ │ │ │ +0000cec0: 2020 2020 2020 2020 2020 2020 2020 536f So │ │ │ │ │ +0000ced0: 636b 6574 732e 4e61 6d69 6e67 2070 6163 ckets.Naming pac │ │ │ │ │ +0000cee0: 6b61 6765 2e0a 2020 2020 2020 2020 2020 kage.. │ │ │ │ │ +0000cef0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf20: 2020 2020 2028 6c69 6e65 2032 3029 0a2a (line 20).* │ │ │ │ │ +0000cf30: 2041 6464 7265 7373 5f4f 663a 2020 2020 Address_Of: │ │ │ │ │ 0000cf40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000cf50: 5265 6365 6976 6520 2866 756e 6374 696f Receive (functio │ │ │ │ │ -0000cf60: 6e29 2e20 2020 286c 696e 6520 3330 290a n). (line 30). │ │ │ │ │ -0000cf70: 2a20 436f 6e6e 6563 7469 6f6e 5f43 6c6f * Connection_Clo │ │ │ │ │ -0000cf80: 7365 6420 3c38 3e3a 2020 2020 2020 2020 sed <8>: │ │ │ │ │ -0000cf90: 2020 2020 2020 2020 2052 6563 6569 7665 Receive │ │ │ │ │ -0000cfa0: 2028 7072 6f63 6564 7572 6529 2e20 2028 (procedure). ( │ │ │ │ │ -0000cfb0: 6c69 6e65 2032 3529 0a2a 2043 6f6e 6e65 line 25).* Conne │ │ │ │ │ -0000cfc0: 6374 696f 6e5f 436c 6f73 6564 203c 393e ction_Closed <9> │ │ │ │ │ -0000cfd0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -0000cfe0: 2020 5265 6365 6976 655f 536f 6d65 2028 Receive_Some ( │ │ │ │ │ -0000cff0: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ -0000d000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf50: 2020 2020 2020 2020 4164 6472 6573 735f Address_ │ │ │ │ │ +0000cf60: 4f66 2028 6675 6e63 7469 6f6e 292e 0a20 Of (function).. │ │ │ │ │ +0000cf70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cf90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cfa0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000cfb0: 696e 6520 2039 290a 2a20 4146 5f49 4e45 ine 9).* AF_INE │ │ │ │ │ +0000cfc0: 543a 2020 2020 2020 2020 2020 2020 2020 T: │ │ │ │ │ +0000cfd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000cfe0: 2053 6f63 6b65 7420 2870 726f 6365 6475 Socket (procedu │ │ │ │ │ +0000cff0: 7265 292e 2020 2028 6c69 6e65 2031 3929 re). (line 19) │ │ │ │ │ +0000d000: 0a2a 2041 6e79 5f41 6464 7265 7373 3a20 .* Any_Address: │ │ │ │ │ 0000d010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d030: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -0000d040: 2032 3729 0a2a 2043 6f6e 6e65 6374 696f 27).* Connectio │ │ │ │ │ -0000d050: 6e5f 436c 6f73 6564 203c 3130 3e3a 2020 n_Closed <10>: │ │ │ │ │ -0000d060: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ -0000d070: 6e64 2028 7072 6f63 6564 7572 6529 2e20 nd (procedure). │ │ │ │ │ -0000d080: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ -0000d090: 436f 6e6e 6563 7469 6f6e 5f52 6566 7573 Connection_Refus │ │ │ │ │ -0000d0a0: 6564 3a20 2020 2020 2020 2020 2020 2020 ed: │ │ │ │ │ -0000d0b0: 2020 2020 2020 2043 6f6e 6e65 6374 2028 Connect ( │ │ │ │ │ -0000d0c0: 7072 6f63 6564 7572 6529 2e20 2028 6c69 procedure). (li │ │ │ │ │ -0000d0d0: 6e65 2032 3529 0a2a 2043 6f6e 7472 6962 ne 25).* Contrib │ │ │ │ │ -0000d0e0: 7574 696e 673a 2020 2020 2020 2020 2020 uting: │ │ │ │ │ -0000d0f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d100: 436f 6e74 7269 6275 746f 7273 2e20 2020 Contributors. │ │ │ │ │ -0000d110: 2020 2020 2020 286c 696e 6520 2036 290a (line 6). │ │ │ │ │ -0000d120: 2a20 436f 6e74 7269 6275 7469 6e67 203c * Contributing < │ │ │ │ │ -0000d130: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ -0000d140: 2020 2020 2020 2020 2052 6573 6f75 7263 Resourc │ │ │ │ │ -0000d150: 6573 206f 6e20 7468 6520 496e 7465 726e es on the Intern │ │ │ │ │ -0000d160: 6574 2e0a 2020 2020 2020 2020 2020 2020 et.. │ │ │ │ │ +0000d020: 2020 2020 2020 2020 2020 416e 795f 4164 Any_Ad │ │ │ │ │ +0000d030: 6472 6573 7320 2866 756e 6374 696f 6e29 dress (function) │ │ │ │ │ +0000d040: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +0000d050: 2020 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: 2028 6c69 6e65 2020 3929 0a2a 2041 7373 (line 9).* Ass │ │ │ │ │ +0000d090: 6967 6e69 6e67 2061 206c 6f63 616c 2070 igning a local p │ │ │ │ │ +0000d0a0: 6f72 743a 2020 2020 2020 2020 2020 2020 ort: │ │ │ │ │ +0000d0b0: 2020 2020 4269 6e64 2028 7072 6f63 6564 Bind (proced │ │ │ │ │ +0000d0c0: 7572 6529 2e20 2020 2020 286c 696e 6520 ure). (line │ │ │ │ │ +0000d0d0: 2036 290a 2a20 4269 6e64 3a20 2020 2020 6).* Bind: │ │ │ │ │ +0000d0e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d0f0: 2020 2020 2020 2020 2020 2020 2042 696e Bin │ │ │ │ │ +0000d100: 6420 2870 726f 6365 6475 7265 292e 2020 d (procedure). │ │ │ │ │ +0000d110: 2020 2028 6c69 6e65 2020 3929 0a2a 2042 (line 9).* B │ │ │ │ │ +0000d120: 696e 6469 6e67 2061 2073 6f63 6b65 743a inding a socket: │ │ │ │ │ +0000d130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d140: 2020 2020 2020 4269 6e64 2028 7072 6f63 Bind (proc │ │ │ │ │ +0000d150: 6564 7572 6529 2e20 2020 2020 286c 696e edure). (lin │ │ │ │ │ +0000d160: 6520 2036 290a 2a20 426f 7468 3a20 2020 e 6).* Both: │ │ │ │ │ 0000d170: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d1a0: 2020 2028 6c69 6e65 2020 3629 0a2a 2043 (line 6).* C │ │ │ │ │ -0000d1b0: 523a 2020 2020 2020 2020 2020 2020 2020 R: │ │ │ │ │ -0000d1c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d1d0: 2020 2020 2020 4765 745f 4c69 6e65 2028 Get_Line ( │ │ │ │ │ -0000d1e0: 6675 6e63 7469 6f6e 292e 2020 286c 696e function). (lin │ │ │ │ │ -0000d1f0: 6520 3231 290a 2a20 4352 203c 313e 3a20 e 21).* CR <1>: │ │ │ │ │ -0000d200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d210: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ -0000d220: 6574 5f4c 696e 6520 2870 726f 6365 6475 et_Line (procedu │ │ │ │ │ -0000d230: 7265 292e 2028 6c69 6e65 2031 3829 0a2a re). (line 18).* │ │ │ │ │ -0000d240: 2043 5220 3c32 3e3a 2020 2020 2020 2020 CR <2>: │ │ │ │ │ +0000d180: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +0000d190: 6875 7464 6f77 6e20 2870 726f 6365 6475 hutdown (procedu │ │ │ │ │ +0000d1a0: 7265 292e 2028 6c69 6e65 2031 3729 0a2a re). (line 17).* │ │ │ │ │ +0000d1b0: 2043 6c6f 7369 6e67 2061 2073 6f63 6b65 Closing a socke │ │ │ │ │ +0000d1c0: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ │ +0000d1d0: 2020 2020 2020 2020 5368 7574 646f 776e Shutdown │ │ │ │ │ +0000d1e0: 2028 7072 6f63 6564 7572 6529 2e20 286c (procedure). (l │ │ │ │ │ +0000d1f0: 696e 6520 2036 290a 2a20 436f 6d70 6172 ine 6).* Compar │ │ │ │ │ +0000d200: 6169 736f 6e20 7769 7468 2047 4e41 542e aison with GNAT. │ │ │ │ │ +0000d210: 536f 636b 6574 733a 2020 2020 2020 2020 Sockets: │ │ │ │ │ +0000d220: 2057 6861 7420 6973 2041 6461 536f 636b What is AdaSock │ │ │ │ │ +0000d230: 6574 733f 2e20 2028 6c69 6e65 2020 3629 ets?. (line 6) │ │ │ │ │ +0000d240: 0a2a 2043 6f6e 6e65 6374 3a20 2020 2020 .* Connect: │ │ │ │ │ 0000d250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d260: 2020 2020 2020 2020 4e65 775f 4c69 6e65 New_Line │ │ │ │ │ -0000d270: 2028 7072 6f63 6564 7572 6529 2e20 286c (procedure). (l │ │ │ │ │ -0000d280: 696e 6520 3137 290a 2a20 4372 6561 7465 ine 17).* Create │ │ │ │ │ -0000d290: 5f4d 756c 7469 6361 7374 5f53 6f63 6b65 _Multicast_Socke │ │ │ │ │ -0000d2a0: 743a 2020 2020 2020 2020 2020 2020 2020 t: │ │ │ │ │ -0000d2b0: 2053 6574 7469 6e67 2075 7020 6d75 6c74 Setting up mult │ │ │ │ │ -0000d2c0: 6963 6173 7420 736f 636b 6574 732e 0a20 icast sockets.. │ │ │ │ │ -0000d2d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d2e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d2f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d300: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -0000d310: 696e 6520 3136 290a 2a20 4372 6561 7465 ine 16).* Create │ │ │ │ │ -0000d320: 5f4d 756c 7469 6361 7374 5f53 6f63 6b65 _Multicast_Socke │ │ │ │ │ -0000d330: 7420 3c31 3e3a 2020 2020 2020 2020 2020 t <1>: │ │ │ │ │ -0000d340: 2043 7265 6174 655f 4d75 6c74 6963 6173 Create_Multicas │ │ │ │ │ -0000d350: 745f 536f 636b 6574 2028 6675 6e63 7469 t_Socket (functi │ │ │ │ │ -0000d360: 6f6e 292e 0a20 2020 2020 2020 2020 2020 on).. │ │ │ │ │ -0000d370: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d3a0: 2020 2020 286c 696e 6520 2039 290a 2a20 (line 9).* │ │ │ │ │ -0000d3b0: 4372 6561 7465 5f4d 756c 7469 6361 7374 Create_Multicast │ │ │ │ │ -0000d3c0: 5f53 6f63 6b65 7420 3c32 3e3a 2020 2020 _Socket <2>: │ │ │ │ │ -0000d3d0: 2020 2020 2020 202e 2020 2020 2020 2020 . │ │ │ │ │ -0000d3e0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -0000d3f0: 6e65 2035 3629 0a2a 2043 7265 6174 696e ne 56).* Creatin │ │ │ │ │ -0000d400: 6720 6120 6d75 6c74 6963 6173 7420 736f g a multicast so │ │ │ │ │ -0000d410: 636b 6574 3a20 2020 2020 2020 2020 2020 cket: │ │ │ │ │ -0000d420: 5365 7474 696e 6720 7570 206d 756c 7469 Setting up multi │ │ │ │ │ -0000d430: 6361 7374 2073 6f63 6b65 7473 2e0a 2020 cast sockets.. │ │ │ │ │ -0000d440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d470: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -0000d480: 6e65 2020 3629 0a2a 2043 7265 6174 696e ne 6).* Creatin │ │ │ │ │ -0000d490: 6720 6120 6d75 6c74 6963 6173 7420 736f g a multicast so │ │ │ │ │ -0000d4a0: 636b 6574 203c 313e 3a20 2020 2020 2020 cket <1>: │ │ │ │ │ -0000d4b0: 4372 6561 7465 5f4d 756c 7469 6361 7374 Create_Multicast │ │ │ │ │ -0000d4c0: 5f53 6f63 6b65 7420 2866 756e 6374 696f _Socket (functio │ │ │ │ │ -0000d4d0: 6e29 2e0a 2020 2020 2020 2020 2020 2020 n).. │ │ │ │ │ -0000d4e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d4f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d510: 2020 2028 6c69 6e65 2020 3629 0a2a 2043 (line 6).* C │ │ │ │ │ -0000d520: 7265 6174 696e 6720 6120 6d75 6c74 6963 reating a multic │ │ │ │ │ -0000d530: 6173 7420 736f 636b 6574 203c 323e 3a20 ast socket <2>: │ │ │ │ │ -0000d540: 2020 2020 2020 2e20 2020 2020 2020 2020 . │ │ │ │ │ -0000d550: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -0000d560: 6520 3533 290a 2a20 4372 6561 7469 6e67 e 53).* Creating │ │ │ │ │ -0000d570: 2061 2073 6572 7665 723a 2020 2020 2020 a server: │ │ │ │ │ -0000d580: 2020 2020 2020 2020 2020 2020 2020 2042 B │ │ │ │ │ -0000d590: 696e 6420 2870 726f 6365 6475 7265 292e ind (procedure). │ │ │ │ │ -0000d5a0: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ │ -0000d5b0: 2043 7265 6174 696e 6720 6120 736f 636b Creating a sock │ │ │ │ │ -0000d5c0: 6574 3a20 2020 2020 2020 2020 2020 2020 et: │ │ │ │ │ -0000d5d0: 2020 2020 2020 2020 5365 7474 696e 6720 Setting │ │ │ │ │ -0000d5e0: 7570 2075 6e69 6361 7374 2073 6f63 6b65 up unicast socke │ │ │ │ │ -0000d5f0: 7473 2e0a 2020 2020 2020 2020 2020 2020 ts.. │ │ │ │ │ -0000d600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d610: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d620: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d630: 2020 2028 6c69 6e65 2020 3629 0a2a 2043 (line 6).* C │ │ │ │ │ -0000d640: 7265 6174 696e 6720 6120 736f 636b 6574 reating a socket │ │ │ │ │ -0000d650: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ -0000d660: 2020 2020 2020 536f 636b 6574 2028 7072 Socket (pr │ │ │ │ │ -0000d670: 6f63 6564 7572 6529 2e20 2020 286c 696e ocedure). (lin │ │ │ │ │ -0000d680: 6520 2036 290a 2a20 4372 6561 7469 6e67 e 6).* Creating │ │ │ │ │ -0000d690: 2061 2073 6f63 6b65 7420 3c32 3e3a 2020 a socket <2>: │ │ │ │ │ -0000d6a0: 2020 2020 2020 2020 2020 2020 2020 2043 C │ │ │ │ │ -0000d6b0: 7265 6174 655f 4d75 6c74 6963 6173 745f reate_Multicast_ │ │ │ │ │ -0000d6c0: 536f 636b 6574 2028 6675 6e63 7469 6f6e Socket (function │ │ │ │ │ -0000d6d0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +0000d260: 2020 2020 2020 2020 2020 436f 6e6e 6563 Connec │ │ │ │ │ +0000d270: 7420 2870 726f 6365 6475 7265 292e 2020 t (procedure). │ │ │ │ │ +0000d280: 286c 696e 6520 2039 290a 2a20 436f 6e6e (line 9).* Conn │ │ │ │ │ +0000d290: 6563 7469 6e67 2061 2073 6f63 6b65 743a ecting a socket: │ │ │ │ │ +0000d2a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d2b0: 2020 2043 6f6e 6e65 6374 2028 7072 6f63 Connect (proc │ │ │ │ │ +0000d2c0: 6564 7572 6529 2e20 2028 6c69 6e65 2020 edure). (line │ │ │ │ │ +0000d2d0: 3629 0a2a 2043 6f6e 6e65 6374 696f 6e5f 6).* Connection_ │ │ │ │ │ +0000d2e0: 436c 6f73 6564 3a20 2020 2020 2020 2020 Closed: │ │ │ │ │ +0000d2f0: 2020 2020 2020 2020 2020 2020 4765 7420 Get │ │ │ │ │ +0000d300: 2866 756e 6374 696f 6e29 2e20 2020 2020 (function). │ │ │ │ │ +0000d310: 2020 286c 696e 6520 3334 290a 2a20 436f (line 34).* Co │ │ │ │ │ +0000d320: 6e6e 6563 7469 6f6e 5f43 6c6f 7365 6420 nnection_Closed │ │ │ │ │ +0000d330: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ +0000d340: 2020 2020 2047 6574 5f43 6861 7220 2866 Get_Char (f │ │ │ │ │ +0000d350: 756e 6374 696f 6e29 2e20 2028 6c69 6e65 unction). (line │ │ │ │ │ +0000d360: 2032 3329 0a2a 2043 6f6e 6e65 6374 696f 23).* Connectio │ │ │ │ │ +0000d370: 6e5f 436c 6f73 6564 203c 323e 3a20 2020 n_Closed <2>: │ │ │ │ │ +0000d380: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ +0000d390: 745f 4c69 6e65 2028 6675 6e63 7469 6f6e t_Line (function │ │ │ │ │ +0000d3a0: 292e 2020 286c 696e 6520 3332 290a 2a20 ). (line 32).* │ │ │ │ │ +0000d3b0: 436f 6e6e 6563 7469 6f6e 5f43 6c6f 7365 Connection_Close │ │ │ │ │ +0000d3c0: 6420 3c33 3e3a 2020 2020 2020 2020 2020 d <3>: │ │ │ │ │ +0000d3d0: 2020 2020 2020 2047 6574 5f4c 696e 6520 Get_Line │ │ │ │ │ +0000d3e0: 2870 726f 6365 6475 7265 292e 2028 6c69 (procedure). (li │ │ │ │ │ +0000d3f0: 6e65 2032 3729 0a2a 2043 6f6e 6e65 6374 ne 27).* Connect │ │ │ │ │ +0000d400: 696f 6e5f 436c 6f73 6564 203c 343e 3a20 ion_Closed <4>: │ │ │ │ │ +0000d410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d420: 4e65 775f 4c69 6e65 2028 7072 6f63 6564 New_Line (proced │ │ │ │ │ +0000d430: 7572 6529 2e20 286c 696e 6520 3230 290a ure). (line 20). │ │ │ │ │ +0000d440: 2a20 436f 6e6e 6563 7469 6f6e 5f43 6c6f * Connection_Clo │ │ │ │ │ +0000d450: 7365 6420 3c35 3e3a 2020 2020 2020 2020 sed <5>: │ │ │ │ │ +0000d460: 2020 2020 2020 2020 2050 7574 2028 7072 Put (pr │ │ │ │ │ +0000d470: 6f63 6564 7572 6529 2e20 2020 2020 2028 ocedure). ( │ │ │ │ │ +0000d480: 6c69 6e65 2032 3129 0a2a 2043 6f6e 6e65 line 21).* Conne │ │ │ │ │ +0000d490: 6374 696f 6e5f 436c 6f73 6564 203c 363e ction_Closed <6> │ │ │ │ │ +0000d4a0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000d4b0: 2020 5075 745f 4c69 6e65 2028 7072 6f63 Put_Line (proc │ │ │ │ │ +0000d4c0: 6564 7572 6529 2e20 286c 696e 6520 3231 edure). (line 21 │ │ │ │ │ +0000d4d0: 290a 2a20 436f 6e6e 6563 7469 6f6e 5f43 ).* Connection_C │ │ │ │ │ +0000d4e0: 6c6f 7365 6420 3c37 3e3a 2020 2020 2020 losed <7>: │ │ │ │ │ +0000d4f0: 2020 2020 2020 2020 2020 2052 6563 6569 Recei │ │ │ │ │ +0000d500: 7665 2028 6675 6e63 7469 6f6e 292e 2020 ve (function). │ │ │ │ │ +0000d510: 2028 6c69 6e65 2033 3029 0a2a 2043 6f6e (line 30).* Con │ │ │ │ │ +0000d520: 6e65 6374 696f 6e5f 436c 6f73 6564 203c nection_Closed < │ │ │ │ │ +0000d530: 383e 3a20 2020 2020 2020 2020 2020 2020 8>: │ │ │ │ │ +0000d540: 2020 2020 5265 6365 6976 6520 2870 726f Receive (pro │ │ │ │ │ +0000d550: 6365 6475 7265 292e 2020 286c 696e 6520 cedure). (line │ │ │ │ │ +0000d560: 3235 290a 2a20 436f 6e6e 6563 7469 6f6e 25).* Connection │ │ │ │ │ +0000d570: 5f43 6c6f 7365 6420 3c39 3e3a 2020 2020 _Closed <9>: │ │ │ │ │ +0000d580: 2020 2020 2020 2020 2020 2020 2052 6563 Rec │ │ │ │ │ +0000d590: 6569 7665 5f53 6f6d 6520 2870 726f 6365 eive_Some (proce │ │ │ │ │ +0000d5a0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +0000d5b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d5c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d5d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d5e0: 2020 2020 2020 286c 696e 6520 3237 290a (line 27). │ │ │ │ │ +0000d5f0: 2a20 436f 6e6e 6563 7469 6f6e 5f43 6c6f * Connection_Clo │ │ │ │ │ +0000d600: 7365 6420 3c31 303e 3a20 2020 2020 2020 sed <10>: │ │ │ │ │ +0000d610: 2020 2020 2020 2020 2053 656e 6420 2870 Send (p │ │ │ │ │ +0000d620: 726f 6365 6475 7265 292e 2020 2020 2028 rocedure). ( │ │ │ │ │ +0000d630: 6c69 6e65 2032 3129 0a2a 2043 6f6e 6e65 line 21).* Conne │ │ │ │ │ +0000d640: 6374 696f 6e5f 5265 6675 7365 643a 2020 ction_Refused: │ │ │ │ │ +0000d650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d660: 2020 436f 6e6e 6563 7420 2870 726f 6365 Connect (proce │ │ │ │ │ +0000d670: 6475 7265 292e 2020 286c 696e 6520 3235 dure). (line 25 │ │ │ │ │ +0000d680: 290a 2a20 436f 6e74 7269 6275 7469 6e67 ).* Contributing │ │ │ │ │ +0000d690: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000d6a0: 2020 2020 2020 2020 2020 2043 6f6e 7472 Contr │ │ │ │ │ +0000d6b0: 6962 7574 6f72 732e 2020 2020 2020 2020 ibutors. │ │ │ │ │ +0000d6c0: 2028 6c69 6e65 2020 3629 0a2a 2043 6f6e (line 6).* Con │ │ │ │ │ +0000d6d0: 7472 6962 7574 696e 6720 3c31 3e3a 2020 tributing <1>: │ │ │ │ │ 0000d6e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d6f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d710: 2020 286c 696e 6520 2036 290a 2a20 4372 (line 6).* Cr │ │ │ │ │ -0000d720: 6561 7469 6e67 2061 2073 6f63 6b65 7420 eating a socket │ │ │ │ │ -0000d730: 3c33 3e3a 2020 2020 2020 2020 2020 2020 <3>: │ │ │ │ │ -0000d740: 2020 2020 202e 2020 2020 2020 2020 2020 . │ │ │ │ │ -0000d750: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -0000d760: 2035 3329 0a2a 2043 7265 6174 696e 6720 53).* Creating │ │ │ │ │ -0000d770: 6120 5443 5020 736f 636b 6574 3a20 2020 a TCP socket: │ │ │ │ │ -0000d780: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ -0000d790: 7474 696e 6720 7570 2075 6e69 6361 7374 tting up unicast │ │ │ │ │ -0000d7a0: 2073 6f63 6b65 7473 2e0a 2020 2020 2020 sockets.. │ │ │ │ │ +0000d6f0: 2020 2020 5265 736f 7572 6365 7320 6f6e Resources on │ │ │ │ │ +0000d700: 2074 6865 2049 6e74 6572 6e65 742e 0a20 the Internet.. │ │ │ │ │ +0000d710: 2020 2020 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 286c (l │ │ │ │ │ +0000d750: 696e 6520 2036 290a 2a20 4352 3a20 2020 ine 6).* CR: │ │ │ │ │ +0000d760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d780: 2047 6574 5f4c 696e 6520 2866 756e 6374 Get_Line (funct │ │ │ │ │ +0000d790: 696f 6e29 2e20 2028 6c69 6e65 2032 3129 ion). (line 21) │ │ │ │ │ +0000d7a0: 0a2a 2043 5220 3c31 3e3a 2020 2020 2020 .* CR <1>: │ │ │ │ │ 0000d7b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d7c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d7d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d7e0: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ -0000d7f0: 3629 0a2a 2043 7265 6174 696e 6720 6120 6).* Creating a │ │ │ │ │ -0000d800: 5544 5020 736f 636b 6574 3a20 2020 2020 UDP socket: │ │ │ │ │ -0000d810: 2020 2020 2020 2020 2020 2020 5365 7474 Sett │ │ │ │ │ -0000d820: 696e 6720 7570 2075 6e69 6361 7374 2073 ing up unicast s │ │ │ │ │ -0000d830: 6f63 6b65 7473 2e0a 2020 2020 2020 2020 ockets.. │ │ │ │ │ -0000d840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d870: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ │ -0000d880: 0a2a 2043 7265 6174 696e 6720 6120 756e .* Creating a un │ │ │ │ │ -0000d890: 6963 6173 7420 736f 636b 6574 3a20 2020 icast socket: │ │ │ │ │ -0000d8a0: 2020 2020 2020 2020 2020 5365 7474 696e Settin │ │ │ │ │ -0000d8b0: 6720 7570 2075 6e69 6361 7374 2073 6f63 g up unicast soc │ │ │ │ │ -0000d8c0: 6b65 7473 2e0a 2020 2020 2020 2020 2020 kets.. │ │ │ │ │ -0000d8d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d8e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d8f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d900: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ │ -0000d910: 2045 7374 6162 6c69 7368 696e 6720 6120 Establishing a │ │ │ │ │ -0000d920: 6c69 7374 656e 2071 7565 7565 3a20 2020 listen queue: │ │ │ │ │ -0000d930: 2020 2020 2020 2020 4c69 7374 656e 2028 Listen ( │ │ │ │ │ -0000d940: 7072 6f63 6564 7572 6529 2e20 2020 286c procedure). (l │ │ │ │ │ -0000d950: 696e 6520 2036 290a 2a20 4669 6e64 696e ine 6).* Findin │ │ │ │ │ -0000d960: 6720 4164 6153 6f63 6b65 7473 206f 6e20 g AdaSockets on │ │ │ │ │ -0000d970: 7468 6520 496e 7465 726e 6574 3a20 2020 the Internet: │ │ │ │ │ -0000d980: 2052 6573 6f75 7263 6573 206f 6e20 7468 Resources on th │ │ │ │ │ -0000d990: 6520 496e 7465 726e 6574 2e0a 2020 2020 e Internet.. │ │ │ │ │ -0000d9a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d9b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d9c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000d9d0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -0000d9e0: 2020 3629 0a2a 2047 6574 3a20 2020 2020 6).* Get: │ │ │ │ │ +0000d7c0: 2020 2020 2020 2020 2020 4765 745f 4c69 Get_Li │ │ │ │ │ +0000d7d0: 6e65 2028 7072 6f63 6564 7572 6529 2e20 ne (procedure). │ │ │ │ │ +0000d7e0: 286c 696e 6520 3138 290a 2a20 4352 203c (line 18).* CR < │ │ │ │ │ +0000d7f0: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ │ +0000d800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d810: 2020 204e 6577 5f4c 696e 6520 2870 726f New_Line (pro │ │ │ │ │ +0000d820: 6365 6475 7265 292e 2028 6c69 6e65 2031 cedure). (line 1 │ │ │ │ │ +0000d830: 3729 0a2a 2043 7265 6174 655f 4d75 6c74 7).* Create_Mult │ │ │ │ │ +0000d840: 6963 6173 745f 536f 636b 6574 3a20 2020 icast_Socket: │ │ │ │ │ +0000d850: 2020 2020 2020 2020 2020 2020 5365 7474 Sett │ │ │ │ │ +0000d860: 696e 6720 7570 206d 756c 7469 6361 7374 ing up multicast │ │ │ │ │ +0000d870: 2073 6f63 6b65 7473 2e0a 2020 2020 2020 sockets.. │ │ │ │ │ +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 2028 6c69 6e65 2031 (line 1 │ │ │ │ │ +0000d8c0: 3629 0a2a 2043 7265 6174 655f 4d75 6c74 6).* Create_Mult │ │ │ │ │ +0000d8d0: 6963 6173 745f 536f 636b 6574 203c 313e icast_Socket <1> │ │ │ │ │ +0000d8e0: 3a20 2020 2020 2020 2020 2020 4372 6561 : Crea │ │ │ │ │ +0000d8f0: 7465 5f4d 756c 7469 6361 7374 5f53 6f63 te_Multicast_Soc │ │ │ │ │ +0000d900: 6b65 7420 2866 756e 6374 696f 6e29 2e0a ket (function).. │ │ │ │ │ +0000d910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000d940: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000d950: 6c69 6e65 2020 3929 0a2a 2043 7265 6174 line 9).* Creat │ │ │ │ │ +0000d960: 655f 4d75 6c74 6963 6173 745f 536f 636b e_Multicast_Sock │ │ │ │ │ +0000d970: 6574 203c 323e 3a20 2020 2020 2020 2020 et <2>: │ │ │ │ │ +0000d980: 2020 2e20 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000d990: 2020 2020 2020 2020 286c 696e 6520 3733 (line 73 │ │ │ │ │ +0000d9a0: 290a 2a20 4372 6561 7469 6e67 2061 206d ).* Creating a m │ │ │ │ │ +0000d9b0: 756c 7469 6361 7374 2073 6f63 6b65 743a ulticast socket: │ │ │ │ │ +0000d9c0: 2020 2020 2020 2020 2020 2053 6574 7469 Setti │ │ │ │ │ +0000d9d0: 6e67 2075 7020 6d75 6c74 6963 6173 7420 ng up multicast │ │ │ │ │ +0000d9e0: 736f 636b 6574 732e 0a20 2020 2020 2020 sockets.. │ │ │ │ │ 0000d9f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000da00: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ -0000da10: 7420 2866 756e 6374 696f 6e29 2e20 2020 t (function). │ │ │ │ │ -0000da20: 2020 2020 286c 696e 6520 2039 290a 2a20 (line 9).* │ │ │ │ │ -0000da30: 4765 7473 6f63 6b6f 7074 3a20 2020 2020 Getsockopt: │ │ │ │ │ -0000da40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000da50: 2020 2020 2020 2047 6574 736f 636b 6f70 Getsockop │ │ │ │ │ -0000da60: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ -0000da70: 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 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ │ +0000da30: 290a 2a20 4372 6561 7469 6e67 2061 206d ).* Creating a m │ │ │ │ │ +0000da40: 756c 7469 6361 7374 2073 6f63 6b65 7420 ulticast socket │ │ │ │ │ +0000da50: 3c31 3e3a 2020 2020 2020 2043 7265 6174 <1>: Creat │ │ │ │ │ +0000da60: 655f 4d75 6c74 6963 6173 745f 536f 636b e_Multicast_Sock │ │ │ │ │ +0000da70: 6574 2028 6675 6e63 7469 6f6e 292e 0a20 et (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 286c (l │ │ │ │ │ -0000dab0: 696e 6520 2039 290a 2a20 4765 745f 4368 ine 9).* Get_Ch │ │ │ │ │ -0000dac0: 6172 3a20 2020 2020 2020 2020 2020 2020 ar: │ │ │ │ │ -0000dad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dae0: 2047 6574 5f43 6861 7220 2866 756e 6374 Get_Char (funct │ │ │ │ │ -0000daf0: 696f 6e29 2e20 2028 6c69 6e65 2020 3929 ion). (line 9) │ │ │ │ │ -0000db00: 0a2a 2047 6574 5f4c 696e 653a 2020 2020 .* Get_Line: │ │ │ │ │ -0000db10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000db20: 2020 2020 2020 2020 2020 4765 745f 4c69 Get_Li │ │ │ │ │ -0000db30: 6e65 2028 6675 6e63 7469 6f6e 292e 2020 ne (function). │ │ │ │ │ -0000db40: 286c 696e 6520 2039 290a 2a20 4765 745f (line 9).* Get_ │ │ │ │ │ -0000db50: 4c69 6e65 203c 313e 3a20 2020 2020 2020 Line <1>: │ │ │ │ │ -0000db60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000db70: 2020 2047 6574 5f4c 696e 6520 2870 726f Get_Line (pro │ │ │ │ │ -0000db80: 6365 6475 7265 292e 2028 6c69 6e65 2020 cedure). (line │ │ │ │ │ -0000db90: 3929 0a2a 2047 6574 5f50 6565 725f 4164 9).* Get_Peer_Ad │ │ │ │ │ -0000dba0: 6472 3a20 2020 2020 2020 2020 2020 2020 dr: │ │ │ │ │ -0000dbb0: 2020 2020 2020 2020 2020 2020 4765 745f Get_ │ │ │ │ │ -0000dbc0: 5065 6572 5f41 6464 7220 2866 756e 6374 Peer_Addr (funct │ │ │ │ │ -0000dbd0: 696f 6e29 2e0a 2020 2020 2020 2020 2020 ion).. │ │ │ │ │ -0000dbe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dbf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000daa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dab0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000dac0: 696e 6520 2036 290a 2a20 4372 6561 7469 ine 6).* Creati │ │ │ │ │ +0000dad0: 6e67 2061 206d 756c 7469 6361 7374 2073 ng a multicast s │ │ │ │ │ +0000dae0: 6f63 6b65 7420 3c32 3e3a 2020 2020 2020 ocket <2>: │ │ │ │ │ +0000daf0: 202e 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000db00: 2020 2020 2020 2028 6c69 6e65 2037 3029 (line 70) │ │ │ │ │ +0000db10: 0a2a 2043 7265 6174 696e 6720 6120 7365 .* Creating a se │ │ │ │ │ +0000db20: 7276 6572 3a20 2020 2020 2020 2020 2020 rver: │ │ │ │ │ +0000db30: 2020 2020 2020 2020 2020 4269 6e64 2028 Bind ( │ │ │ │ │ +0000db40: 7072 6f63 6564 7572 6529 2e20 2020 2020 procedure). │ │ │ │ │ +0000db50: 286c 696e 6520 2036 290a 2a20 4372 6561 (line 6).* Crea │ │ │ │ │ +0000db60: 7469 6e67 2061 2073 6f63 6b65 743a 2020 ting a socket: │ │ │ │ │ +0000db70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000db80: 2020 2053 6574 7469 6e67 2075 7020 756e Setting up un │ │ │ │ │ +0000db90: 6963 6173 7420 736f 636b 6574 732e 0a20 icast sockets.. │ │ │ │ │ +0000dba0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dbb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dbc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dbd0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000dbe0: 696e 6520 2036 290a 2a20 4372 6561 7469 ine 6).* Creati │ │ │ │ │ +0000dbf0: 6e67 2061 2073 6f63 6b65 7420 3c31 3e3a ng a socket <1>: │ │ │ │ │ 0000dc00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dc10: 2020 2020 2028 6c69 6e65 2020 3929 0a2a (line 9).* │ │ │ │ │ -0000dc20: 2047 6574 5f50 6565 725f 506f 7274 3a20 Get_Peer_Port: │ │ │ │ │ -0000dc30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dc40: 2020 2020 2020 2020 4765 745f 5065 6572 Get_Peer │ │ │ │ │ -0000dc50: 5f50 6f72 7420 2866 756e 6374 696f 6e29 _Port (function) │ │ │ │ │ -0000dc60: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -0000dc70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dc10: 2053 6f63 6b65 7420 2870 726f 6365 6475 Socket (procedu │ │ │ │ │ +0000dc20: 7265 292e 2020 2028 6c69 6e65 2020 3629 re). (line 6) │ │ │ │ │ +0000dc30: 0a2a 2043 7265 6174 696e 6720 6120 736f .* Creating a so │ │ │ │ │ +0000dc40: 636b 6574 203c 323e 3a20 2020 2020 2020 cket <2>: │ │ │ │ │ +0000dc50: 2020 2020 2020 2020 2020 4372 6561 7465 Create │ │ │ │ │ +0000dc60: 5f4d 756c 7469 6361 7374 5f53 6f63 6b65 _Multicast_Socke │ │ │ │ │ +0000dc70: 7420 2866 756e 6374 696f 6e29 2e0a 2020 t (function).. │ │ │ │ │ 0000dc80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000dc90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dca0: 2028 6c69 6e65 2020 3929 0a2a 2047 6574 (line 9).* Get │ │ │ │ │ -0000dcb0: 5f52 6563 6569 7665 5f51 7565 7565 5f53 _Receive_Queue_S │ │ │ │ │ -0000dcc0: 697a 653a 2020 2020 2020 2020 2020 2020 ize: │ │ │ │ │ -0000dcd0: 2020 2020 4765 745f 5265 6365 6976 655f Get_Receive_ │ │ │ │ │ -0000dce0: 5175 6575 655f 5369 7a65 2028 6675 6e63 Queue_Size (func │ │ │ │ │ -0000dcf0: 7469 6f6e 292e 0a20 2020 2020 2020 2020 tion).. │ │ │ │ │ -0000dd00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dd10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dd20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dd30: 2020 2020 2020 286c 696e 6520 2039 290a (line 9). │ │ │ │ │ -0000dd40: 2a20 4765 745f 5365 6e64 5f51 7565 7565 * Get_Send_Queue │ │ │ │ │ -0000dd50: 5f53 697a 653a 2020 2020 2020 2020 2020 _Size: │ │ │ │ │ -0000dd60: 2020 2020 2020 2020 2047 6574 5f53 656e Get_Sen │ │ │ │ │ -0000dd70: 645f 5175 6575 655f 5369 7a65 2028 6675 d_Queue_Size (fu │ │ │ │ │ -0000dd80: 6e63 7469 6f6e 292e 0a20 2020 2020 2020 nction).. │ │ │ │ │ -0000dd90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dda0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ddb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ddc0: 2020 2020 2020 2020 286c 696e 6520 2039 (line 9 │ │ │ │ │ -0000ddd0: 290a 2a20 4765 745f 536f 636b 5f41 6464 ).* Get_Sock_Add │ │ │ │ │ -0000dde0: 723a 2020 2020 2020 2020 2020 2020 2020 r: │ │ │ │ │ -0000ddf0: 2020 2020 2020 2020 2020 2047 6574 5f53 Get_S │ │ │ │ │ -0000de00: 6f63 6b5f 4164 6472 2028 6675 6e63 7469 ock_Addr (functi │ │ │ │ │ -0000de10: 6f6e 292e 0a20 2020 2020 2020 2020 2020 on).. │ │ │ │ │ -0000de20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000de30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000de40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000de50: 2020 2020 286c 696e 6520 2039 290a 2a20 (line 9).* │ │ │ │ │ -0000de60: 4765 745f 536f 636b 5f50 6f72 743a 2020 Get_Sock_Port: │ │ │ │ │ -0000de70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000de80: 2020 2020 2020 2047 6574 5f53 6f63 6b5f Get_Sock_ │ │ │ │ │ -0000de90: 506f 7274 2028 6675 6e63 7469 6f6e 292e Port (function). │ │ │ │ │ -0000dea0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -0000deb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ded0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dee0: 286c 696e 6520 2039 290a 2a20 4772 6f75 (line 9).* Grou │ │ │ │ │ -0000def0: 7020 636f 6d6d 756e 6963 6174 696f 6e3a p communication: │ │ │ │ │ -0000df00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000df10: 2020 2053 6574 7469 6e67 2075 7020 6d75 Setting up mu │ │ │ │ │ -0000df20: 6c74 6963 6173 7420 736f 636b 6574 732e lticast sockets. │ │ │ │ │ -0000df30: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -0000df40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dcb0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +0000dcc0: 6e65 2020 3629 0a2a 2043 7265 6174 696e ne 6).* Creatin │ │ │ │ │ +0000dcd0: 6720 6120 736f 636b 6574 203c 333e 3a20 g a socket <3>: │ │ │ │ │ +0000dce0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dcf0: 2e20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000dd00: 2020 2020 2020 286c 696e 6520 3730 290a (line 70). │ │ │ │ │ +0000dd10: 2a20 4372 6561 7469 6e67 2061 2054 4350 * Creating a TCP │ │ │ │ │ +0000dd20: 2073 6f63 6b65 743a 2020 2020 2020 2020 socket: │ │ │ │ │ +0000dd30: 2020 2020 2020 2020 2053 6574 7469 6e67 Setting │ │ │ │ │ +0000dd40: 2075 7020 756e 6963 6173 7420 736f 636b up unicast sock │ │ │ │ │ +0000dd50: 6574 732e 0a20 2020 2020 2020 2020 2020 ets.. │ │ │ │ │ +0000dd60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dd70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dd80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dd90: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ +0000dda0: 4372 6561 7469 6e67 2061 2055 4450 2073 Creating a UDP s │ │ │ │ │ +0000ddb0: 6f63 6b65 743a 2020 2020 2020 2020 2020 ocket: │ │ │ │ │ +0000ddc0: 2020 2020 2020 2053 6574 7469 6e67 2075 Setting u │ │ │ │ │ +0000ddd0: 7020 756e 6963 6173 7420 736f 636b 6574 p unicast socket │ │ │ │ │ +0000dde0: 732e 0a20 2020 2020 2020 2020 2020 2020 s.. │ │ │ │ │ +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 286c 696e 6520 2036 290a 2a20 4372 (line 6).* Cr │ │ │ │ │ +0000de30: 6561 7469 6e67 2061 2075 6e69 6361 7374 eating a unicast │ │ │ │ │ +0000de40: 2073 6f63 6b65 743a 2020 2020 2020 2020 socket: │ │ │ │ │ +0000de50: 2020 2020 2053 6574 7469 6e67 2075 7020 Setting up │ │ │ │ │ +0000de60: 756e 6963 6173 7420 736f 636b 6574 732e unicast sockets. │ │ │ │ │ +0000de70: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000de80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000de90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dea0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000deb0: 286c 696e 6520 2036 290a 2a20 4573 7461 (line 6).* Esta │ │ │ │ │ +0000dec0: 626c 6973 6869 6e67 2061 206c 6973 7465 blishing a liste │ │ │ │ │ +0000ded0: 6e20 7175 6575 653a 2020 2020 2020 2020 n queue: │ │ │ │ │ +0000dee0: 2020 204c 6973 7465 6e20 2870 726f 6365 Listen (proce │ │ │ │ │ +0000def0: 6475 7265 292e 2020 2028 6c69 6e65 2020 dure). (line │ │ │ │ │ +0000df00: 3629 0a2a 2046 696e 6469 6e67 2041 6461 6).* Finding Ada │ │ │ │ │ +0000df10: 536f 636b 6574 7320 6f6e 2074 6865 2049 Sockets on the I │ │ │ │ │ +0000df20: 6e74 6572 6e65 743a 2020 2020 5265 736f nternet: Reso │ │ │ │ │ +0000df30: 7572 6365 7320 6f6e 2074 6865 2049 6e74 urces on the Int │ │ │ │ │ +0000df40: 6572 6e65 742e 0a20 2020 2020 2020 2020 ernet.. │ │ │ │ │ 0000df50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000df60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000df70: 286c 696e 6520 2036 290a 2a20 4861 6e64 (line 6).* Hand │ │ │ │ │ -0000df80: 6c69 6e67 2061 206e 6577 2063 6f6e 6e65 ling a new conne │ │ │ │ │ -0000df90: 6374 696f 6e3a 2020 2020 2020 2020 2020 ction: │ │ │ │ │ -0000dfa0: 2020 2041 6363 6570 745f 536f 636b 6574 Accept_Socket │ │ │ │ │ -0000dfb0: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ -0000dfc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dfd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dfe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000dff0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -0000e000: 6e65 2020 3629 0a2a 2048 6f73 745f 456e ne 6).* Host_En │ │ │ │ │ -0000e010: 7472 793a 2020 2020 2020 2020 2020 2020 try: │ │ │ │ │ +0000df70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000df80: 2020 2020 2020 286c 696e 6520 2036 290a (line 6). │ │ │ │ │ +0000df90: 2a20 4765 743a 2020 2020 2020 2020 2020 * Get: │ │ │ │ │ +0000dfa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000dfb0: 2020 2020 2020 2020 2047 6574 2028 6675 Get (fu │ │ │ │ │ +0000dfc0: 6e63 7469 6f6e 292e 2020 2020 2020 2028 nction). ( │ │ │ │ │ +0000dfd0: 6c69 6e65 2020 3929 0a2a 2047 6574 736f line 9).* Getso │ │ │ │ │ +0000dfe0: 636b 6f70 743a 2020 2020 2020 2020 2020 ckopt: │ │ │ │ │ +0000dff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e000: 2020 4765 7473 6f63 6b6f 7074 2028 7072 Getsockopt (pr │ │ │ │ │ +0000e010: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ 0000e020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e030: 536f 636b 6574 732e 4e61 6d69 6e67 2070 Sockets.Naming p │ │ │ │ │ -0000e040: 6163 6b61 6765 2e0a 2020 2020 2020 2020 ackage.. │ │ │ │ │ -0000e050: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e030: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e040: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e050: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ +0000e060: 3929 0a2a 2047 6574 5f43 6861 723a 2020 9).* Get_Char: │ │ │ │ │ 0000e070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e080: 2020 2020 2020 2028 6c69 6e65 2032 3429 (line 24) │ │ │ │ │ -0000e090: 0a2a 2048 6f73 745f 4e61 6d65 3a20 2020 .* Host_Name: │ │ │ │ │ -0000e0a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e0b0: 2020 2020 2020 2020 2020 486f 7374 5f4e Host_N │ │ │ │ │ -0000e0c0: 616d 6520 2866 756e 6374 696f 6e29 2e20 ame (function). │ │ │ │ │ -0000e0d0: 286c 696e 6520 2039 290a 2a20 496d 6167 (line 9).* Imag │ │ │ │ │ -0000e0e0: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ │ -0000e0f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e100: 2020 2049 6d61 6765 2028 6675 6e63 7469 Image (functi │ │ │ │ │ -0000e110: 6f6e 292e 2020 2020 2028 6c69 6e65 2020 on). (line │ │ │ │ │ -0000e120: 3929 0a2a 2049 6e66 6f5f 4f66 5f4e 616d 9).* Info_Of_Nam │ │ │ │ │ -0000e130: 655f 4f72 5f49 503a 2020 2020 2020 2020 e_Or_IP: │ │ │ │ │ -0000e140: 2020 2020 2020 2020 2020 2020 496e 666f Info │ │ │ │ │ -0000e150: 5f4f 665f 4e61 6d65 5f4f 725f 4950 2028 _Of_Name_Or_IP ( │ │ │ │ │ -0000e160: 6675 6e63 7469 6f6e 292e 0a20 2020 2020 function).. │ │ │ │ │ -0000e170: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e080: 2020 2020 2020 2020 2020 2020 4765 745f Get_ │ │ │ │ │ +0000e090: 4368 6172 2028 6675 6e63 7469 6f6e 292e Char (function). │ │ │ │ │ +0000e0a0: 2020 286c 696e 6520 2039 290a 2a20 4765 (line 9).* Ge │ │ │ │ │ +0000e0b0: 745f 4c69 6e65 3a20 2020 2020 2020 2020 t_Line: │ │ │ │ │ +0000e0c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e0d0: 2020 2020 2047 6574 5f4c 696e 6520 2866 Get_Line (f │ │ │ │ │ +0000e0e0: 756e 6374 696f 6e29 2e20 2028 6c69 6e65 unction). (line │ │ │ │ │ +0000e0f0: 2020 3929 0a2a 2047 6574 5f4c 696e 6520 9).* Get_Line │ │ │ │ │ +0000e100: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ +0000e110: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ +0000e120: 745f 4c69 6e65 2028 7072 6f63 6564 7572 t_Line (procedur │ │ │ │ │ +0000e130: 6529 2e20 286c 696e 6520 2039 290a 2a20 e). (line 9).* │ │ │ │ │ +0000e140: 4765 745f 5065 6572 5f41 6464 723a 2020 Get_Peer_Addr: │ │ │ │ │ +0000e150: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e160: 2020 2020 2020 2047 6574 5f50 6565 725f Get_Peer_ │ │ │ │ │ +0000e170: 4164 6472 2028 6675 6e63 7469 6f6e 292e Addr (function). │ │ │ │ │ +0000e180: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ 0000e190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e1a0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -0000e1b0: 2039 290a 2a20 496e 7374 616c 6c69 6e67 9).* Installing │ │ │ │ │ -0000e1c0: 2041 6461 536f 636b 6574 733a 2020 2020 AdaSockets: │ │ │ │ │ -0000e1d0: 2020 2020 2020 2020 2020 2020 2049 6e73 Ins │ │ │ │ │ -0000e1e0: 7461 6c6c 696e 6720 4164 6153 6f63 6b65 talling AdaSocke │ │ │ │ │ -0000e1f0: 7473 2e0a 2020 2020 2020 2020 2020 2020 ts.. │ │ │ │ │ -0000e200: 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: 286c 696e 6520 2039 290a 2a20 4765 745f (line 9).* Get_ │ │ │ │ │ +0000e1d0: 5065 6572 5f50 6f72 743a 2020 2020 2020 Peer_Port: │ │ │ │ │ +0000e1e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e1f0: 2020 2047 6574 5f50 6565 725f 506f 7274 Get_Peer_Port │ │ │ │ │ +0000e200: 2028 6675 6e63 7469 6f6e 292e 0a20 2020 (function).. │ │ │ │ │ 0000e210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e230: 2020 2028 6c69 6e65 2020 3629 0a2a 2049 (line 6).* I │ │ │ │ │ -0000e240: 5050 524f 544f 5f49 503a 2020 2020 2020 PPROTO_IP: │ │ │ │ │ -0000e250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e260: 2020 2020 2020 4765 7473 6f63 6b6f 7074 Getsockopt │ │ │ │ │ -0000e270: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ -0000e280: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e290: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e2a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e2b0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -0000e2c0: 6e65 2032 3029 0a2a 2049 5050 524f 544f ne 20).* IPPROTO │ │ │ │ │ -0000e2d0: 5f49 5020 3c31 3e3a 2020 2020 2020 2020 _IP <1>: │ │ │ │ │ -0000e2e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e2f0: 5365 7473 6f63 6b6f 7074 2028 7072 6f63 Setsockopt (proc │ │ │ │ │ -0000e300: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ -0000e310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e340: 2020 2020 2020 2028 6c69 6e65 2032 3029 (line 20) │ │ │ │ │ -0000e350: 0a2a 2049 505f 4144 445f 4d45 4d42 4552 .* IP_ADD_MEMBER │ │ │ │ │ -0000e360: 5348 4950 3a20 2020 2020 2020 2020 2020 SHIP: │ │ │ │ │ -0000e370: 2020 2020 2020 2020 2020 4765 7473 6f63 Getsoc │ │ │ │ │ -0000e380: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ -0000e390: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -0000e3a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e3b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e230: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e240: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000e250: 6520 2039 290a 2a20 4765 745f 5265 6365 e 9).* Get_Rece │ │ │ │ │ +0000e260: 6976 655f 5175 6575 655f 5369 7a65 3a20 ive_Queue_Size: │ │ │ │ │ +0000e270: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +0000e280: 6574 5f52 6563 6569 7665 5f51 7565 7565 et_Receive_Queue │ │ │ │ │ +0000e290: 5f53 697a 6520 2866 756e 6374 696f 6e29 _Size (function) │ │ │ │ │ +0000e2a0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +0000e2b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e2c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e2d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e2e0: 2028 6c69 6e65 2020 3929 0a2a 2047 6574 (line 9).* Get │ │ │ │ │ +0000e2f0: 5f53 656e 645f 5175 6575 655f 5369 7a65 _Send_Queue_Size │ │ │ │ │ +0000e300: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000e310: 2020 2020 4765 745f 5365 6e64 5f51 7565 Get_Send_Que │ │ │ │ │ +0000e320: 7565 5f53 697a 6520 2866 756e 6374 696f ue_Size (functio │ │ │ │ │ +0000e330: 6e29 2e0a 2020 2020 2020 2020 2020 2020 n).. │ │ │ │ │ +0000e340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e350: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e360: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e370: 2020 2028 6c69 6e65 2020 3929 0a2a 2047 (line 9).* G │ │ │ │ │ +0000e380: 6574 5f53 6f63 6b5f 4164 6472 3a20 2020 et_Sock_Addr: │ │ │ │ │ +0000e390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e3a0: 2020 2020 2020 4765 745f 536f 636b 5f41 Get_Sock_A │ │ │ │ │ +0000e3b0: 6464 7220 2866 756e 6374 696f 6e29 2e0a ddr (function).. │ │ │ │ │ 0000e3c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e3d0: 2028 6c69 6e65 2032 3029 0a2a 2049 505f (line 20).* IP_ │ │ │ │ │ -0000e3e0: 4144 445f 4d45 4d42 4552 5348 4950 203c ADD_MEMBERSHIP < │ │ │ │ │ -0000e3f0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ -0000e400: 2020 2020 5365 7473 6f63 6b6f 7074 2028 Setsockopt ( │ │ │ │ │ -0000e410: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ +0000e3d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e3e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e3f0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000e400: 6c69 6e65 2020 3929 0a2a 2047 6574 5f53 line 9).* Get_S │ │ │ │ │ +0000e410: 6f63 6b5f 506f 7274 3a20 2020 2020 2020 ock_Port: │ │ │ │ │ 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 2020 2020 │ │ │ │ │ -0000e450: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -0000e460: 2032 3029 0a2a 2049 505f 4452 4f50 5f4d 20).* IP_DROP_M │ │ │ │ │ -0000e470: 454d 4245 5253 4849 503a 2020 2020 2020 EMBERSHIP: │ │ │ │ │ -0000e480: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ -0000e490: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ -0000e4a0: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ -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 2020 │ │ │ │ │ -0000e4e0: 2020 2020 2028 6c69 6e65 2032 3029 0a2a (line 20).* │ │ │ │ │ -0000e4f0: 2049 505f 4452 4f50 5f4d 454d 4245 5253 IP_DROP_MEMBERS │ │ │ │ │ -0000e500: 4849 5020 3c31 3e3a 2020 2020 2020 2020 HIP <1>: │ │ │ │ │ -0000e510: 2020 2020 2020 2020 5365 7473 6f63 6b6f Setsocko │ │ │ │ │ -0000e520: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ -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 2020 2020 2028 ( │ │ │ │ │ -0000e570: 6c69 6e65 2032 3029 0a2a 2049 505f 4d55 line 20).* IP_MU │ │ │ │ │ -0000e580: 4c54 4943 4153 545f 4c4f 4f50 3a20 2020 LTICAST_LOOP: │ │ │ │ │ +0000e430: 2020 4765 745f 536f 636b 5f50 6f72 7420 Get_Sock_Port │ │ │ │ │ +0000e440: 2866 756e 6374 696f 6e29 2e0a 2020 2020 (function).. │ │ │ │ │ +0000e450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e460: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e480: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000e490: 2020 3929 0a2a 2047 726f 7570 2063 6f6d 9).* Group com │ │ │ │ │ +0000e4a0: 6d75 6e69 6361 7469 6f6e 3a20 2020 2020 munication: │ │ │ │ │ +0000e4b0: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ +0000e4c0: 7474 696e 6720 7570 206d 756c 7469 6361 tting up multica │ │ │ │ │ +0000e4d0: 7374 2073 6f63 6b65 7473 2e0a 2020 2020 st sockets.. │ │ │ │ │ +0000e4e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e4f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e510: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000e520: 2020 3629 0a2a 2048 616e 646c 696e 6720 6).* Handling │ │ │ │ │ +0000e530: 6120 6e65 7720 636f 6e6e 6563 7469 6f6e a new connection │ │ │ │ │ +0000e540: 3a20 2020 2020 2020 2020 2020 2020 4163 : Ac │ │ │ │ │ +0000e550: 6365 7074 5f53 6f63 6b65 7420 2870 726f cept_Socket (pro │ │ │ │ │ +0000e560: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +0000e570: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e5a0: 2020 4765 7473 6f63 6b6f 7074 2028 7072 Getsockopt (pr │ │ │ │ │ -0000e5b0: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ +0000e5a0: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ │ +0000e5b0: 290a 2a20 486f 7374 5f45 6e74 7279 3a20 ).* Host_Entry: │ │ │ │ │ 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 2020 2028 6c69 6e65 2032 (line 2 │ │ │ │ │ -0000e600: 3029 0a2a 2049 505f 4d55 4c54 4943 4153 0).* IP_MULTICAS │ │ │ │ │ -0000e610: 545f 4c4f 4f50 203c 313e 3a20 2020 2020 T_LOOP <1>: │ │ │ │ │ -0000e620: 2020 2020 2020 2020 2020 2020 5365 7473 Sets │ │ │ │ │ -0000e630: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ -0000e640: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ +0000e5d0: 2020 2020 2020 2020 2020 2053 6f63 6b65 Socke │ │ │ │ │ +0000e5e0: 7473 2e4e 616d 696e 6720 7061 636b 6167 ts.Naming packag │ │ │ │ │ +0000e5f0: 652e 0a20 2020 2020 2020 2020 2020 2020 e.. │ │ │ │ │ +0000e600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e610: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e620: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e630: 2020 286c 696e 6520 3234 290a 2a20 486f (line 24).* Ho │ │ │ │ │ +0000e640: 7374 5f4e 616d 653a 2020 2020 2020 2020 st_Name: │ │ │ │ │ 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 2028 6c69 6e65 2032 3029 0a2a 2049 (line 20).* I │ │ │ │ │ -0000e690: 505f 4d55 4c54 4943 4153 545f 5454 4c3a P_MULTICAST_TTL: │ │ │ │ │ -0000e6a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e6b0: 2020 2020 2020 4765 7473 6f63 6b6f 7074 Getsockopt │ │ │ │ │ -0000e6c0: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ -0000e6d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -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 2028 6c69 (li │ │ │ │ │ -0000e710: 6e65 2032 3029 0a2a 2049 505f 4d55 4c54 ne 20).* IP_MULT │ │ │ │ │ -0000e720: 4943 4153 545f 5454 4c20 3c31 3e3a 2020 ICAST_TTL <1>: │ │ │ │ │ +0000e660: 2020 2020 2048 6f73 745f 4e61 6d65 2028 Host_Name ( │ │ │ │ │ +0000e670: 6675 6e63 7469 6f6e 292e 2028 6c69 6e65 function). (line │ │ │ │ │ +0000e680: 2020 3929 0a2a 2049 6d61 6765 3a20 2020 9).* Image: │ │ │ │ │ +0000e690: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e6a0: 2020 2020 2020 2020 2020 2020 2020 496d Im │ │ │ │ │ +0000e6b0: 6167 6520 2866 756e 6374 696f 6e29 2e20 age (function). │ │ │ │ │ +0000e6c0: 2020 2020 286c 696e 6520 2039 290a 2a20 (line 9).* │ │ │ │ │ +0000e6d0: 496e 666f 5f4f 665f 4e61 6d65 5f4f 725f Info_Of_Name_Or_ │ │ │ │ │ +0000e6e0: 4950 3a20 2020 2020 2020 2020 2020 2020 IP: │ │ │ │ │ +0000e6f0: 2020 2020 2020 2049 6e66 6f5f 4f66 5f4e Info_Of_N │ │ │ │ │ +0000e700: 616d 655f 4f72 5f49 5020 2866 756e 6374 ame_Or_IP (funct │ │ │ │ │ +0000e710: 696f 6e29 2e0a 2020 2020 2020 2020 2020 ion).. │ │ │ │ │ +0000e720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e740: 5365 7473 6f63 6b6f 7074 2028 7072 6f63 Setsockopt (proc │ │ │ │ │ -0000e750: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ -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 2028 6c69 6e65 2032 3029 (line 20) │ │ │ │ │ -0000e7a0: 0a2a 2049 735f 4950 5f41 6464 7265 7373 .* Is_IP_Address │ │ │ │ │ -0000e7b0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -0000e7c0: 2020 2020 2020 2020 2020 4973 5f49 505f Is_IP_ │ │ │ │ │ -0000e7d0: 4164 6472 6573 7320 2866 756e 6374 696f Address (functio │ │ │ │ │ -0000e7e0: 6e29 2e0a 2020 2020 2020 2020 2020 2020 n).. │ │ │ │ │ -0000e7f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e740: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e750: 2020 2020 2028 6c69 6e65 2020 3929 0a2a (line 9).* │ │ │ │ │ +0000e760: 2049 6e73 7461 6c6c 696e 6720 4164 6153 Installing AdaS │ │ │ │ │ +0000e770: 6f63 6b65 7473 3a20 2020 2020 2020 2020 ockets: │ │ │ │ │ +0000e780: 2020 2020 2020 2020 496e 7374 616c 6c69 Installi │ │ │ │ │ +0000e790: 6e67 2041 6461 536f 636b 6574 732e 0a20 ng AdaSockets.. │ │ │ │ │ +0000e7a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e7b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e7c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e7d0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000e7e0: 696e 6520 2036 290a 2a20 4950 5052 4f54 ine 6).* IPPROT │ │ │ │ │ +0000e7f0: 4f5f 4950 3a20 2020 2020 2020 2020 2020 O_IP: │ │ │ │ │ 0000e800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e810: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e820: 2020 2028 6c69 6e65 2020 3929 0a2a 204c (line 9).* L │ │ │ │ │ -0000e830: 463a 2020 2020 2020 2020 2020 2020 2020 F: │ │ │ │ │ +0000e810: 2047 6574 736f 636b 6f70 7420 2870 726f Getsockopt (pro │ │ │ │ │ +0000e820: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +0000e830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e850: 2020 2020 2020 4765 745f 4c69 6e65 2028 Get_Line ( │ │ │ │ │ -0000e860: 6675 6e63 7469 6f6e 292e 2020 286c 696e function). (lin │ │ │ │ │ -0000e870: 6520 3231 290a 2a20 4c46 203c 313e 3a20 e 21).* LF <1>: │ │ │ │ │ -0000e880: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e890: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ -0000e8a0: 6574 5f4c 696e 6520 2870 726f 6365 6475 et_Line (procedu │ │ │ │ │ -0000e8b0: 7265 292e 2028 6c69 6e65 2031 3829 0a2a re). (line 18).* │ │ │ │ │ -0000e8c0: 204c 4620 3c32 3e3a 2020 2020 2020 2020 LF <2>: │ │ │ │ │ +0000e850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e860: 2020 2020 2020 2020 286c 696e 6520 3230 (line 20 │ │ │ │ │ +0000e870: 290a 2a20 4950 5052 4f54 4f5f 4950 203c ).* IPPROTO_IP < │ │ │ │ │ +0000e880: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ +0000e890: 2020 2020 2020 2020 2020 2053 6574 736f Setso │ │ │ │ │ +0000e8a0: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +0000e8b0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +0000e8c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e8d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e8e0: 2020 2020 2020 2020 4e65 775f 4c69 6e65 New_Line │ │ │ │ │ -0000e8f0: 2028 7072 6f63 6564 7572 6529 2e20 286c (procedure). (l │ │ │ │ │ -0000e900: 696e 6520 3137 290a 2a20 4c69 7374 656e ine 17).* Listen │ │ │ │ │ -0000e910: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -0000e920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e930: 204c 6973 7465 6e20 2870 726f 6365 6475 Listen (procedu │ │ │ │ │ -0000e940: 7265 292e 2020 2028 6c69 6e65 2020 3929 re). (line 9) │ │ │ │ │ -0000e950: 0a2a 204c 6973 7465 6e20 7175 6575 653a .* Listen queue: │ │ │ │ │ +0000e8e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e8f0: 2020 286c 696e 6520 3230 290a 2a20 4950 (line 20).* IP │ │ │ │ │ +0000e900: 5f41 4444 5f4d 454d 4245 5253 4849 503a _ADD_MEMBERSHIP: │ │ │ │ │ +0000e910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e920: 2020 2020 2047 6574 736f 636b 6f70 7420 Getsockopt │ │ │ │ │ +0000e930: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +0000e940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000e950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000e970: 2020 2020 2020 2020 2020 4c69 7374 656e Listen │ │ │ │ │ -0000e980: 2028 7072 6f63 6564 7572 6529 2e20 2020 (procedure). │ │ │ │ │ -0000e990: 286c 696e 6520 2036 290a 2a20 4d61 6e69 (line 6).* Mani │ │ │ │ │ -0000e9a0: 7075 6c61 7469 6e67 2073 6f63 6b65 7420 pulating socket │ │ │ │ │ -0000e9b0: 6f70 7469 6f6e 733a 2020 2020 2020 2020 options: │ │ │ │ │ -0000e9c0: 2020 2047 6574 736f 636b 6f70 7420 2870 Getsockopt (p │ │ │ │ │ -0000e9d0: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +0000e970: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000e980: 6520 3230 290a 2a20 4950 5f41 4444 5f4d e 20).* IP_ADD_M │ │ │ │ │ +0000e990: 454d 4245 5253 4849 5020 3c31 3e3a 2020 EMBERSHIP <1>: │ │ │ │ │ +0000e9a0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +0000e9b0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +0000e9c0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +0000e9d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e9e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000e9f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ea00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ea10: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -0000ea20: 2036 290a 2a20 4d61 6e69 7075 6c61 7469 6).* Manipulati │ │ │ │ │ -0000ea30: 6e67 2073 6f63 6b65 7420 6f70 7469 6f6e ng socket option │ │ │ │ │ -0000ea40: 7320 3c31 3e3a 2020 2020 2020 2053 6574 s <1>: Set │ │ │ │ │ -0000ea50: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ -0000ea60: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +0000ea00: 2020 2020 2020 286c 696e 6520 3230 290a (line 20). │ │ │ │ │ +0000ea10: 2a20 4950 5f44 524f 505f 4d45 4d42 4552 * IP_DROP_MEMBER │ │ │ │ │ +0000ea20: 5348 4950 3a20 2020 2020 2020 2020 2020 SHIP: │ │ │ │ │ +0000ea30: 2020 2020 2020 2020 2047 6574 736f 636b Getsock │ │ │ │ │ +0000ea40: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +0000ea50: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000ea60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000ea70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000ea80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ea90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000eaa0: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ -0000eab0: 4d62 6f6e 653a 2020 2020 2020 2020 2020 Mbone: │ │ │ │ │ -0000eac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ead0: 2020 2020 2020 2053 6574 7469 6e67 2075 Setting u │ │ │ │ │ -0000eae0: 7020 6d75 6c74 6963 6173 7420 736f 636b p multicast sock │ │ │ │ │ -0000eaf0: 6574 732e 0a20 2020 2020 2020 2020 2020 ets.. │ │ │ │ │ +0000ea90: 286c 696e 6520 3230 290a 2a20 4950 5f44 (line 20).* IP_D │ │ │ │ │ +0000eaa0: 524f 505f 4d45 4d42 4552 5348 4950 203c ROP_MEMBERSHIP < │ │ │ │ │ +0000eab0: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ +0000eac0: 2020 2053 6574 736f 636b 6f70 7420 2870 Setsockopt (p │ │ │ │ │ +0000ead0: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +0000eae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eaf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000eb00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000eb10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000eb20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000eb30: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ -0000eb40: 4d75 6c74 6963 6173 7420 736f 636b 6574 Multicast socket │ │ │ │ │ -0000eb50: 733a 2020 2020 2020 2020 2020 2020 2020 s: │ │ │ │ │ -0000eb60: 2020 2020 2020 2053 6574 7469 6e67 2075 Setting u │ │ │ │ │ -0000eb70: 7020 6d75 6c74 6963 6173 7420 736f 636b p multicast sock │ │ │ │ │ -0000eb80: 6574 732e 0a20 2020 2020 2020 2020 2020 ets.. │ │ │ │ │ +0000eb10: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000eb20: 3230 290a 2a20 4950 5f4d 554c 5449 4341 20).* IP_MULTICA │ │ │ │ │ +0000eb30: 5354 5f4c 4f4f 503a 2020 2020 2020 2020 ST_LOOP: │ │ │ │ │ +0000eb40: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000eb50: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +0000eb60: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +0000eb70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eb80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000eb90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000eba0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ebb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ebc0: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ -0000ebd0: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ -0000ebe0: 5f46 443a 2020 2020 2020 2020 2020 2020 _FD: │ │ │ │ │ -0000ebf0: 2020 2020 2020 2053 6574 7469 6e67 2075 Setting u │ │ │ │ │ -0000ec00: 7020 6d75 6c74 6963 6173 7420 736f 636b p multicast sock │ │ │ │ │ -0000ec10: 6574 732e 0a20 2020 2020 2020 2020 2020 ets.. │ │ │ │ │ -0000ec20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ec30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ec40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ec50: 2020 2020 286c 696e 6520 3136 290a 2a20 (line 16).* │ │ │ │ │ -0000ec60: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ -0000ec70: 5f46 4420 3c31 3e3a 2020 2020 2020 2020 _FD <1>: │ │ │ │ │ -0000ec80: 2020 2020 2020 2053 6f63 6b65 7473 2e4d Sockets.M │ │ │ │ │ -0000ec90: 756c 7469 6361 7374 2070 6163 6b61 6765 ulticast package │ │ │ │ │ -0000eca0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -0000ecb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ecc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ecd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ece0: 2028 6c69 6e65 2020 3829 0a2a 204e 616d (line 8).* Nam │ │ │ │ │ -0000ecf0: 655f 4f66 3a20 2020 2020 2020 2020 2020 e_Of: │ │ │ │ │ -0000ed00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ed10: 2020 2020 4e61 6d65 5f4f 6620 2866 756e Name_Of (fun │ │ │ │ │ -0000ed20: 6374 696f 6e29 2e20 2020 286c 696e 6520 ction). (line │ │ │ │ │ -0000ed30: 2039 290a 2a20 4e61 6d69 6e67 5f45 7272 9).* Naming_Err │ │ │ │ │ -0000ed40: 6f72 3a20 2020 2020 2020 2020 2020 2020 or: │ │ │ │ │ -0000ed50: 2020 2020 2020 2020 2020 2020 2041 6464 Add │ │ │ │ │ -0000ed60: 7265 7373 5f4f 6620 2866 756e 6374 696f ress_Of (functio │ │ │ │ │ -0000ed70: 6e29 2e0a 2020 2020 2020 2020 2020 2020 n).. │ │ │ │ │ -0000ed80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eba0: 2020 2020 286c 696e 6520 3230 290a 2a20 (line 20).* │ │ │ │ │ +0000ebb0: 4950 5f4d 554c 5449 4341 5354 5f4c 4f4f IP_MULTICAST_LOO │ │ │ │ │ +0000ebc0: 5020 3c31 3e3a 2020 2020 2020 2020 2020 P <1>: │ │ │ │ │ +0000ebd0: 2020 2020 2020 2053 6574 736f 636b 6f70 Setsockop │ │ │ │ │ +0000ebe0: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +0000ebf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec20: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000ec30: 696e 6520 3230 290a 2a20 4950 5f4d 554c ine 20).* IP_MUL │ │ │ │ │ +0000ec40: 5449 4341 5354 5f54 544c 3a20 2020 2020 TICAST_TTL: │ │ │ │ │ +0000ec50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec60: 2047 6574 736f 636b 6f70 7420 2870 726f Getsockopt (pro │ │ │ │ │ +0000ec70: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +0000ec80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ec90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ecb0: 2020 2020 2020 2020 286c 696e 6520 3230 (line 20 │ │ │ │ │ +0000ecc0: 290a 2a20 4950 5f4d 554c 5449 4341 5354 ).* IP_MULTICAST │ │ │ │ │ +0000ecd0: 5f54 544c 203c 313e 3a20 2020 2020 2020 _TTL <1>: │ │ │ │ │ +0000ece0: 2020 2020 2020 2020 2020 2053 6574 736f Setso │ │ │ │ │ +0000ecf0: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +0000ed00: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +0000ed10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed40: 2020 286c 696e 6520 3230 290a 2a20 4973 (line 20).* Is │ │ │ │ │ +0000ed50: 5f49 505f 4164 6472 6573 733a 2020 2020 _IP_Address: │ │ │ │ │ +0000ed60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ed70: 2020 2020 2049 735f 4950 5f41 6464 7265 Is_IP_Addre │ │ │ │ │ +0000ed80: 7373 2028 6675 6e63 7469 6f6e 292e 0a20 ss (function).. │ │ │ │ │ 0000ed90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000eda0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000edb0: 2020 2028 6c69 6e65 2032 3129 0a2a 204e (line 21).* N │ │ │ │ │ -0000edc0: 616d 696e 675f 4572 726f 7220 3c31 3e3a aming_Error <1>: │ │ │ │ │ -0000edd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ede0: 2020 2020 2020 496e 666f 5f4f 665f 4e61 Info_Of_Na │ │ │ │ │ -0000edf0: 6d65 5f4f 725f 4950 2028 6675 6e63 7469 me_Or_IP (functi │ │ │ │ │ -0000ee00: 6f6e 292e 0a20 2020 2020 2020 2020 2020 on).. │ │ │ │ │ -0000ee10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ee20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000edb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000edc0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +0000edd0: 696e 6520 2039 290a 2a20 4c46 3a20 2020 ine 9).* LF: │ │ │ │ │ +0000ede0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000edf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee00: 2047 6574 5f4c 696e 6520 2866 756e 6374 Get_Line (funct │ │ │ │ │ +0000ee10: 696f 6e29 2e20 2028 6c69 6e65 2032 3129 ion). (line 21) │ │ │ │ │ +0000ee20: 0a2a 204c 4620 3c31 3e3a 2020 2020 2020 .* LF <1>: │ │ │ │ │ 0000ee30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ee40: 2020 2020 286c 696e 6520 3235 290a 2a20 (line 25).* │ │ │ │ │ -0000ee50: 4e61 6d69 6e67 5f45 7272 6f72 203c 323e Naming_Error <2> │ │ │ │ │ -0000ee60: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -0000ee70: 2020 2020 2020 204e 616d 655f 4f66 2028 Name_Of ( │ │ │ │ │ -0000ee80: 6675 6e63 7469 6f6e 292e 2020 2028 6c69 function). (li │ │ │ │ │ -0000ee90: 6e65 2032 3029 0a2a 204e 6577 5f4c 696e ne 20).* New_Lin │ │ │ │ │ -0000eea0: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ │ -0000eeb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000eec0: 4e65 775f 4c69 6e65 2028 7072 6f63 6564 New_Line (proced │ │ │ │ │ -0000eed0: 7572 6529 2e20 286c 696e 6520 2039 290a ure). (line 9). │ │ │ │ │ -0000eee0: 2a20 5046 5f49 4e45 543a 2020 2020 2020 * PF_INET: │ │ │ │ │ -0000eef0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ef00: 2020 2020 2020 2020 2053 6f63 6b65 7420 Socket │ │ │ │ │ -0000ef10: 2870 726f 6365 6475 7265 292e 2020 2028 (procedure). ( │ │ │ │ │ -0000ef20: 6c69 6e65 2031 3929 0a2a 2050 7574 3a20 line 19).* Put: │ │ │ │ │ -0000ef30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ef40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ef50: 2020 5075 7420 2870 726f 6365 6475 7265 Put (procedure │ │ │ │ │ -0000ef60: 292e 2020 2020 2020 286c 696e 6520 2039 ). (line 9 │ │ │ │ │ -0000ef70: 290a 2a20 5075 745f 4c69 6e65 3a20 2020 ).* Put_Line: │ │ │ │ │ -0000ef80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ef90: 2020 2020 2020 2020 2020 2050 7574 5f4c Put_L │ │ │ │ │ -0000efa0: 696e 6520 2870 726f 6365 6475 7265 292e ine (procedure). │ │ │ │ │ -0000efb0: 2028 6c69 6e65 2020 3929 0a2a 2052 6177 (line 9).* Raw │ │ │ │ │ -0000efc0: 2064 6174 6120 6d61 6e69 7075 6c61 7469 data manipulati │ │ │ │ │ -0000efd0: 6f6e 3a20 2020 2020 2020 2020 2020 2020 on: │ │ │ │ │ -0000efe0: 2020 2020 5261 7720 6461 7461 206d 616e Raw data man │ │ │ │ │ -0000eff0: 6970 756c 6174 696f 6e2e 0a20 2020 2020 ipulation.. │ │ │ │ │ -0000f000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee40: 2020 2020 2020 2020 2020 4765 745f 4c69 Get_Li │ │ │ │ │ +0000ee50: 6e65 2028 7072 6f63 6564 7572 6529 2e20 ne (procedure). │ │ │ │ │ +0000ee60: 286c 696e 6520 3138 290a 2a20 4c46 203c (line 18).* LF < │ │ │ │ │ +0000ee70: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ │ +0000ee80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ee90: 2020 204e 6577 5f4c 696e 6520 2870 726f New_Line (pro │ │ │ │ │ +0000eea0: 6365 6475 7265 292e 2028 6c69 6e65 2031 cedure). (line 1 │ │ │ │ │ +0000eeb0: 3729 0a2a 204c 6973 7465 6e3a 2020 2020 7).* Listen: │ │ │ │ │ +0000eec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000eed0: 2020 2020 2020 2020 2020 2020 4c69 7374 List │ │ │ │ │ +0000eee0: 656e 2028 7072 6f63 6564 7572 6529 2e20 en (procedure). │ │ │ │ │ +0000eef0: 2020 286c 696e 6520 2039 290a 2a20 4c69 (line 9).* Li │ │ │ │ │ +0000ef00: 7374 656e 2071 7565 7565 3a20 2020 2020 sten queue: │ │ │ │ │ +0000ef10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ef20: 2020 2020 204c 6973 7465 6e20 2870 726f Listen (pro │ │ │ │ │ +0000ef30: 6365 6475 7265 292e 2020 2028 6c69 6e65 cedure). (line │ │ │ │ │ +0000ef40: 2020 3629 0a2a 204d 616e 6970 756c 6174 6).* Manipulat │ │ │ │ │ +0000ef50: 696e 6720 736f 636b 6574 206f 7074 696f ing socket optio │ │ │ │ │ +0000ef60: 6e73 3a20 2020 2020 2020 2020 2020 4765 ns: Ge │ │ │ │ │ +0000ef70: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ +0000ef80: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ +0000ef90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000efa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000efb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000efc0: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ │ +0000efd0: 204d 616e 6970 756c 6174 696e 6720 736f Manipulating so │ │ │ │ │ +0000efe0: 636b 6574 206f 7074 696f 6e73 203c 313e cket options <1> │ │ │ │ │ +0000eff0: 3a20 2020 2020 2020 5365 7473 6f63 6b6f : Setsocko │ │ │ │ │ +0000f000: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ 0000f010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000f020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f030: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -0000f040: 2036 290a 2a20 5265 6365 6976 653a 2020 6).* Receive: │ │ │ │ │ -0000f050: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f060: 2020 2020 2020 2020 2020 2020 2052 6563 Rec │ │ │ │ │ -0000f070: 6569 7665 2028 6675 6e63 7469 6f6e 292e eive (function). │ │ │ │ │ -0000f080: 2020 2028 6c69 6e65 2020 3929 0a2a 2052 (line 9).* R │ │ │ │ │ -0000f090: 6563 6569 7665 203c 313e 3a20 2020 2020 eceive <1>: │ │ │ │ │ +0000f030: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f040: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000f050: 6c69 6e65 2020 3629 0a2a 204d 626f 6e65 line 6).* Mbone │ │ │ │ │ +0000f060: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000f070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f080: 2020 5365 7474 696e 6720 7570 206d 756c Setting up mul │ │ │ │ │ +0000f090: 7469 6361 7374 2073 6f63 6b65 7473 2e0a ticast sockets.. │ │ │ │ │ 0000f0a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f0b0: 2020 2020 2020 5265 6365 6976 6520 2870 Receive (p │ │ │ │ │ -0000f0c0: 726f 6365 6475 7265 292e 2020 286c 696e rocedure). (lin │ │ │ │ │ -0000f0d0: 6520 2039 290a 2a20 5265 6365 6976 6520 e 9).* Receive │ │ │ │ │ -0000f0e0: 3c32 3e3a 2020 2020 2020 2020 2020 2020 <2>: │ │ │ │ │ -0000f0f0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -0000f100: 6875 7464 6f77 6e20 2870 726f 6365 6475 hutdown (procedu │ │ │ │ │ -0000f110: 7265 292e 2028 6c69 6e65 2031 3729 0a2a re). (line 17).* │ │ │ │ │ -0000f120: 2052 6563 6569 7665 5f53 6f6d 653a 2020 Receive_Some: │ │ │ │ │ +0000f0b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f0c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f0d0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000f0e0: 6c69 6e65 2020 3629 0a2a 204d 756c 7469 line 6).* Multi │ │ │ │ │ +0000f0f0: 6361 7374 2073 6f63 6b65 7473 3a20 2020 cast sockets: │ │ │ │ │ +0000f100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f110: 2020 5365 7474 696e 6720 7570 206d 756c Setting up mul │ │ │ │ │ +0000f120: 7469 6361 7374 2073 6f63 6b65 7473 2e0a ticast sockets.. │ │ │ │ │ 0000f130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f140: 2020 2020 2020 2020 5265 6365 6976 655f Receive_ │ │ │ │ │ -0000f150: 536f 6d65 2028 7072 6f63 6564 7572 6529 Some (procedure) │ │ │ │ │ -0000f160: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -0000f170: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f150: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f160: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000f170: 6c69 6e65 2020 3629 0a2a 204d 756c 7469 line 6).* Multi │ │ │ │ │ +0000f180: 6361 7374 5f53 6f63 6b65 745f 4644 3a20 cast_Socket_FD: │ │ │ │ │ 0000f190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f1a0: 2028 6c69 6e65 2020 3929 0a2a 2052 6563 (line 9).* Rec │ │ │ │ │ -0000f1b0: 6569 7669 6e67 2064 6174 613a 2020 2020 eiving data: │ │ │ │ │ +0000f1a0: 2020 5365 7474 696e 6720 7570 206d 756c Setting up mul │ │ │ │ │ +0000f1b0: 7469 6361 7374 2073 6f63 6b65 7473 2e0a ticast sockets.. │ │ │ │ │ 0000f1c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f1d0: 2020 2020 5365 6e64 696e 6720 616e 6420 Sending and │ │ │ │ │ -0000f1e0: 7265 6365 6976 696e 6720 6461 7461 2e0a receiving data.. │ │ │ │ │ -0000f1f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f220: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ -0000f230: 6c69 6e65 2020 3629 0a2a 2052 6563 6569 line 6).* Recei │ │ │ │ │ -0000f240: 7669 6e67 2064 6174 6120 3c31 3e3a 2020 ving data <1>: │ │ │ │ │ +0000f1d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f1e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f1f0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000f200: 6c69 6e65 2031 3629 0a2a 204d 756c 7469 line 16).* Multi │ │ │ │ │ +0000f210: 6361 7374 5f53 6f63 6b65 745f 4644 203c cast_Socket_FD < │ │ │ │ │ +0000f220: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ +0000f230: 2020 536f 636b 6574 732e 4d75 6c74 6963 Sockets.Multic │ │ │ │ │ +0000f240: 6173 7420 7061 636b 6167 652e 0a20 2020 ast package.. │ │ │ │ │ 0000f250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f260: 2020 4765 7420 2866 756e 6374 696f 6e29 Get (function) │ │ │ │ │ -0000f270: 2e20 2020 2020 2020 286c 696e 6520 2036 . (line 6 │ │ │ │ │ -0000f280: 290a 2a20 5265 6365 6976 696e 6720 6461 ).* Receiving da │ │ │ │ │ -0000f290: 7461 203c 323e 3a20 2020 2020 2020 2020 ta <2>: │ │ │ │ │ -0000f2a0: 2020 2020 2020 2020 2020 2047 6574 5f43 Get_C │ │ │ │ │ -0000f2b0: 6861 7220 2866 756e 6374 696f 6e29 2e20 har (function). │ │ │ │ │ -0000f2c0: 2028 6c69 6e65 2020 3629 0a2a 2052 6563 (line 6).* Rec │ │ │ │ │ -0000f2d0: 6569 7669 6e67 2064 6174 6120 3c33 3e3a eiving data <3>: │ │ │ │ │ -0000f2e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f2f0: 2020 2020 4765 745f 4c69 6e65 2028 6675 Get_Line (fu │ │ │ │ │ -0000f300: 6e63 7469 6f6e 292e 2020 286c 696e 6520 nction). (line │ │ │ │ │ -0000f310: 2036 290a 2a20 5265 6365 6976 696e 6720 6).* Receiving │ │ │ │ │ -0000f320: 6461 7461 203c 343e 3a20 2020 2020 2020 data <4>: │ │ │ │ │ -0000f330: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ -0000f340: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ -0000f350: 292e 2028 6c69 6e65 2020 3629 0a2a 2052 ). (line 6).* R │ │ │ │ │ -0000f360: 6563 6569 7669 6e67 2064 6174 6120 3c35 eceiving data <5 │ │ │ │ │ -0000f370: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ -0000f380: 2020 2020 2020 4765 745f 5265 6365 6976 Get_Receiv │ │ │ │ │ -0000f390: 655f 5175 6575 655f 5369 7a65 2028 6675 e_Queue_Size (fu │ │ │ │ │ -0000f3a0: 6e63 7469 6f6e 292e 0a20 2020 2020 2020 nction).. │ │ │ │ │ +0000f260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f280: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000f290: 6520 2038 290a 2a20 4e61 6d65 5f4f 663a e 8).* Name_Of: │ │ │ │ │ +0000f2a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f2b0: 2020 2020 2020 2020 2020 2020 2020 204e N │ │ │ │ │ +0000f2c0: 616d 655f 4f66 2028 6675 6e63 7469 6f6e ame_Of (function │ │ │ │ │ +0000f2d0: 292e 2020 2028 6c69 6e65 2020 3929 0a2a ). (line 9).* │ │ │ │ │ +0000f2e0: 204e 616d 696e 675f 4572 726f 723a 2020 Naming_Error: │ │ │ │ │ +0000f2f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f300: 2020 2020 2020 2020 4164 6472 6573 735f Address_ │ │ │ │ │ +0000f310: 4f66 2028 6675 6e63 7469 6f6e 292e 0a20 Of (function).. │ │ │ │ │ +0000f320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +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 286c (l │ │ │ │ │ +0000f360: 696e 6520 3231 290a 2a20 4e61 6d69 6e67 ine 21).* Naming │ │ │ │ │ +0000f370: 5f45 7272 6f72 203c 313e 3a20 2020 2020 _Error <1>: │ │ │ │ │ +0000f380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f390: 2049 6e66 6f5f 4f66 5f4e 616d 655f 4f72 Info_Of_Name_Or │ │ │ │ │ +0000f3a0: 5f49 5020 2866 756e 6374 696f 6e29 2e0a _IP (function).. │ │ │ │ │ 0000f3b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000f3c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000f3d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f3e0: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ │ -0000f3f0: 290a 2a20 5265 6365 6976 696e 6720 6461 ).* Receiving da │ │ │ │ │ -0000f400: 7461 203c 363e 3a20 2020 2020 2020 2020 ta <6>: │ │ │ │ │ -0000f410: 2020 2020 2020 2020 2020 2052 6563 6569 Recei │ │ │ │ │ -0000f420: 7665 2028 6675 6e63 7469 6f6e 292e 2020 ve (function). │ │ │ │ │ -0000f430: 2028 6c69 6e65 2020 3629 0a2a 2052 6563 (line 6).* Rec │ │ │ │ │ -0000f440: 6569 7669 6e67 2064 6174 6120 3c37 3e3a eiving data <7>: │ │ │ │ │ +0000f3e0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +0000f3f0: 6c69 6e65 2032 3529 0a2a 204e 616d 696e line 25).* Namin │ │ │ │ │ +0000f400: 675f 4572 726f 7220 3c32 3e3a 2020 2020 g_Error <2>: │ │ │ │ │ +0000f410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f420: 2020 4e61 6d65 5f4f 6620 2866 756e 6374 Name_Of (funct │ │ │ │ │ +0000f430: 696f 6e29 2e20 2020 286c 696e 6520 3230 ion). (line 20 │ │ │ │ │ +0000f440: 290a 2a20 4e65 775f 4c69 6e65 3a20 2020 ).* New_Line: │ │ │ │ │ 0000f450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f460: 2020 2020 5265 6365 6976 6520 2870 726f Receive (pro │ │ │ │ │ -0000f470: 6365 6475 7265 292e 2020 286c 696e 6520 cedure). (line │ │ │ │ │ -0000f480: 2036 290a 2a20 5265 6365 6976 696e 6720 6).* Receiving │ │ │ │ │ -0000f490: 6461 7461 203c 383e 3a20 2020 2020 2020 data <8>: │ │ │ │ │ -0000f4a0: 2020 2020 2020 2020 2020 2020 2052 6563 Rec │ │ │ │ │ -0000f4b0: 6569 7665 5f53 6f6d 6520 2870 726f 6365 eive_Some (proce │ │ │ │ │ -0000f4c0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ -0000f4d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f460: 2020 2020 2020 2020 2020 204e 6577 5f4c New_L │ │ │ │ │ +0000f470: 696e 6520 2870 726f 6365 6475 7265 292e ine (procedure). │ │ │ │ │ +0000f480: 2028 6c69 6e65 2020 3929 0a2a 2050 465f (line 9).* PF_ │ │ │ │ │ +0000f490: 494e 4554 3a20 2020 2020 2020 2020 2020 INET: │ │ │ │ │ +0000f4a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f4b0: 2020 2020 536f 636b 6574 2028 7072 6f63 Socket (proc │ │ │ │ │ +0000f4c0: 6564 7572 6529 2e20 2020 286c 696e 6520 edure). (line │ │ │ │ │ +0000f4d0: 3139 290a 2a20 5075 743a 2020 2020 2020 19).* Put: │ │ │ │ │ 0000f4e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f4f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f500: 2020 2020 2020 286c 696e 6520 2036 290a (line 6). │ │ │ │ │ -0000f510: 2a20 5265 6365 6976 696e 6720 6461 7461 * Receiving data │ │ │ │ │ -0000f520: 203c 393e 3a20 2020 2020 2020 2020 2020 <9>: │ │ │ │ │ -0000f530: 2020 2020 2020 2020 2053 6574 5f42 7566 Set_Buf │ │ │ │ │ -0000f540: 6665 7220 2870 726f 6365 6475 7265 292e fer (procedure). │ │ │ │ │ -0000f550: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -0000f560: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f570: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f590: 286c 696e 6520 2036 290a 2a20 5265 706f (line 6).* Repo │ │ │ │ │ -0000f5a0: 7274 696e 6720 6120 6275 673a 2020 2020 rting a bug: │ │ │ │ │ +0000f4f0: 2020 2020 2020 2020 2020 2020 2050 7574 Put │ │ │ │ │ +0000f500: 2028 7072 6f63 6564 7572 6529 2e20 2020 (procedure). │ │ │ │ │ +0000f510: 2020 2028 6c69 6e65 2020 3929 0a2a 2050 (line 9).* P │ │ │ │ │ +0000f520: 7574 5f4c 696e 653a 2020 2020 2020 2020 ut_Line: │ │ │ │ │ +0000f530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f540: 2020 2020 2020 5075 745f 4c69 6e65 2028 Put_Line ( │ │ │ │ │ +0000f550: 7072 6f63 6564 7572 6529 2e20 286c 696e procedure). (lin │ │ │ │ │ +0000f560: 6520 2039 290a 2a20 5261 7720 6461 7461 e 9).* Raw data │ │ │ │ │ +0000f570: 206d 616e 6970 756c 6174 696f 6e3a 2020 manipulation: │ │ │ │ │ +0000f580: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ │ +0000f590: 6177 2064 6174 6120 6d61 6e69 7075 6c61 aw data manipula │ │ │ │ │ +0000f5a0: 7469 6f6e 2e0a 2020 2020 2020 2020 2020 tion.. │ │ │ │ │ 0000f5b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f5c0: 2020 2052 6573 6f75 7263 6573 206f 6e20 Resources on │ │ │ │ │ -0000f5d0: 7468 6520 496e 7465 726e 6574 2e0a 2020 the Internet.. │ │ │ │ │ -0000f5e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f5f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f5c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f5d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f5e0: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ │ +0000f5f0: 2052 6563 6569 7665 3a20 2020 2020 2020 Receive: │ │ │ │ │ 0000f600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f610: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -0000f620: 6e65 2020 3629 0a2a 2052 6570 7265 7365 ne 6).* Represe │ │ │ │ │ -0000f630: 6e74 696e 6720 4950 2061 6464 7265 7373 nting IP address │ │ │ │ │ -0000f640: 6573 3a20 2020 2020 2020 2020 2020 2020 es: │ │ │ │ │ -0000f650: 496d 6167 6520 2866 756e 6374 696f 6e29 Image (function) │ │ │ │ │ -0000f660: 2e20 2020 2020 286c 696e 6520 2036 290a . (line 6). │ │ │ │ │ -0000f670: 2a20 5265 7072 6573 656e 7469 6e67 2049 * Representing I │ │ │ │ │ -0000f680: 5020 6164 6472 6573 7365 7320 3c31 3e3a P addresses <1>: │ │ │ │ │ -0000f690: 2020 2020 2020 2020 2056 616c 7565 2028 Value ( │ │ │ │ │ -0000f6a0: 6675 6e63 7469 6f6e 292e 2020 2020 2028 function). ( │ │ │ │ │ -0000f6b0: 6c69 6e65 2020 3629 0a2a 2052 6574 7269 line 6).* Retri │ │ │ │ │ -0000f6c0: 6576 696e 6720 736f 636b 6574 206f 7074 eving socket opt │ │ │ │ │ -0000f6d0: 696f 6e73 3a20 2020 2020 2020 2020 2020 ions: │ │ │ │ │ -0000f6e0: 2020 4765 7473 6f63 6b6f 7074 2028 7072 Getsockopt (pr │ │ │ │ │ -0000f6f0: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ -0000f700: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f610: 2020 2020 2020 2020 5265 6365 6976 6520 Receive │ │ │ │ │ +0000f620: 2866 756e 6374 696f 6e29 2e20 2020 286c (function). (l │ │ │ │ │ +0000f630: 696e 6520 2039 290a 2a20 5265 6365 6976 ine 9).* Receiv │ │ │ │ │ +0000f640: 6520 3c31 3e3a 2020 2020 2020 2020 2020 e <1>: │ │ │ │ │ +0000f650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f660: 2052 6563 6569 7665 2028 7072 6f63 6564 Receive (proced │ │ │ │ │ +0000f670: 7572 6529 2e20 2028 6c69 6e65 2020 3929 ure). (line 9) │ │ │ │ │ +0000f680: 0a2a 2052 6563 6569 7665 203c 323e 3a20 .* Receive <2>: │ │ │ │ │ +0000f690: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f6a0: 2020 2020 2020 2020 2020 5368 7574 646f Shutdo │ │ │ │ │ +0000f6b0: 776e 2028 7072 6f63 6564 7572 6529 2e20 wn (procedure). │ │ │ │ │ +0000f6c0: 286c 696e 6520 3137 290a 2a20 5265 6365 (line 17).* Rece │ │ │ │ │ +0000f6d0: 6976 655f 536f 6d65 3a20 2020 2020 2020 ive_Some: │ │ │ │ │ +0000f6e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f6f0: 2020 2052 6563 6569 7665 5f53 6f6d 6520 Receive_Some │ │ │ │ │ +0000f700: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ 0000f710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000f720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f730: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ -0000f740: 3629 0a2a 2053 656e 643a 2020 2020 2020 6).* Send: │ │ │ │ │ -0000f750: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f760: 2020 2020 2020 2020 2020 2020 5365 6e64 Send │ │ │ │ │ -0000f770: 2028 7072 6f63 6564 7572 6529 2e20 2020 (procedure). │ │ │ │ │ -0000f780: 2020 286c 696e 6520 2039 290a 2a20 5365 (line 9).* Se │ │ │ │ │ -0000f790: 6e64 203c 313e 3a20 2020 2020 2020 2020 nd <1>: │ │ │ │ │ +0000f730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f740: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +0000f750: 6520 2039 290a 2a20 5265 6365 6976 696e e 9).* Receivin │ │ │ │ │ +0000f760: 6720 6461 7461 3a20 2020 2020 2020 2020 g data: │ │ │ │ │ +0000f770: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +0000f780: 656e 6469 6e67 2061 6e64 2072 6563 6569 ending and recei │ │ │ │ │ +0000f790: 7669 6e67 2064 6174 612e 0a20 2020 2020 ving data.. │ │ │ │ │ 0000f7a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f7b0: 2020 2020 2053 6875 7464 6f77 6e20 2870 Shutdown (p │ │ │ │ │ -0000f7c0: 726f 6365 6475 7265 292e 2028 6c69 6e65 rocedure). (line │ │ │ │ │ -0000f7d0: 2031 3729 0a2a 2053 656e 6469 6e67 2064 17).* Sending d │ │ │ │ │ -0000f7e0: 6174 613a 2020 2020 2020 2020 2020 2020 ata: │ │ │ │ │ -0000f7f0: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ -0000f800: 6e64 696e 6720 616e 6420 7265 6365 6976 nding and receiv │ │ │ │ │ -0000f810: 696e 6720 6461 7461 2e0a 2020 2020 2020 ing data.. │ │ │ │ │ -0000f820: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f850: 2020 2020 2020 2020 2028 6c69 6e65 2020 (line │ │ │ │ │ -0000f860: 3629 0a2a 2053 656e 6469 6e67 2064 6174 6).* Sending dat │ │ │ │ │ -0000f870: 6120 3c31 3e3a 2020 2020 2020 2020 2020 a <1>: │ │ │ │ │ -0000f880: 2020 2020 2020 2020 2020 2020 4765 745f Get_ │ │ │ │ │ -0000f890: 5365 6e64 5f51 7565 7565 5f53 697a 6520 Send_Queue_Size │ │ │ │ │ -0000f8a0: 2866 756e 6374 696f 6e29 2e0a 2020 2020 (function).. │ │ │ │ │ -0000f8b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f8c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f8d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f8e0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -0000f8f0: 2020 3629 0a2a 2053 656e 6469 6e67 2064 6).* Sending d │ │ │ │ │ -0000f900: 6174 6120 3c32 3e3a 2020 2020 2020 2020 ata <2>: │ │ │ │ │ -0000f910: 2020 2020 2020 2020 2020 2020 2020 4e65 Ne │ │ │ │ │ -0000f920: 775f 4c69 6e65 2028 7072 6f63 6564 7572 w_Line (procedur │ │ │ │ │ -0000f930: 6529 2e20 286c 696e 6520 2036 290a 2a20 e). (line 6).* │ │ │ │ │ -0000f940: 5365 6e64 696e 6720 6461 7461 203c 333e Sending data <3> │ │ │ │ │ -0000f950: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -0000f960: 2020 2020 2020 2050 7574 2028 7072 6f63 Put (proc │ │ │ │ │ -0000f970: 6564 7572 6529 2e20 2020 2020 2028 6c69 edure). (li │ │ │ │ │ -0000f980: 6e65 2020 3629 0a2a 2053 656e 6469 6e67 ne 6).* Sending │ │ │ │ │ -0000f990: 2064 6174 6120 3c34 3e3a 2020 2020 2020 data <4>: │ │ │ │ │ -0000f9a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000f9b0: 5075 745f 4c69 6e65 2028 7072 6f63 6564 Put_Line (proced │ │ │ │ │ -0000f9c0: 7572 6529 2e20 286c 696e 6520 2036 290a ure). (line 6). │ │ │ │ │ -0000f9d0: 2a20 5365 6e64 696e 6720 6461 7461 203c * Sending data < │ │ │ │ │ -0000f9e0: 353e 3a20 2020 2020 2020 2020 2020 2020 5>: │ │ │ │ │ -0000f9f0: 2020 2020 2020 2020 2053 656e 6420 2870 Send (p │ │ │ │ │ -0000fa00: 726f 6365 6475 7265 292e 2020 2020 2028 rocedure). ( │ │ │ │ │ -0000fa10: 6c69 6e65 2020 3629 0a2a 2053 656e 6469 line 6).* Sendi │ │ │ │ │ -0000fa20: 6e67 2070 6174 6368 6573 3a20 2020 2020 ng patches: │ │ │ │ │ -0000fa30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fa40: 2020 5265 736f 7572 6365 7320 6f6e 2074 Resources on t │ │ │ │ │ -0000fa50: 6865 2049 6e74 6572 6e65 742e 0a20 2020 he Internet.. │ │ │ │ │ -0000fa60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fa70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f7b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f7c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f7d0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +0000f7e0: 2036 290a 2a20 5265 6365 6976 696e 6720 6).* Receiving │ │ │ │ │ +0000f7f0: 6461 7461 203c 313e 3a20 2020 2020 2020 data <1>: │ │ │ │ │ +0000f800: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +0000f810: 2028 6675 6e63 7469 6f6e 292e 2020 2020 (function). │ │ │ │ │ +0000f820: 2020 2028 6c69 6e65 2020 3629 0a2a 2052 (line 6).* R │ │ │ │ │ +0000f830: 6563 6569 7669 6e67 2064 6174 6120 3c32 eceiving data <2 │ │ │ │ │ +0000f840: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +0000f850: 2020 2020 2020 4765 745f 4368 6172 2028 Get_Char ( │ │ │ │ │ +0000f860: 6675 6e63 7469 6f6e 292e 2020 286c 696e function). (lin │ │ │ │ │ +0000f870: 6520 2036 290a 2a20 5265 6365 6976 696e e 6).* Receivin │ │ │ │ │ +0000f880: 6720 6461 7461 203c 333e 3a20 2020 2020 g data <3>: │ │ │ │ │ +0000f890: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +0000f8a0: 6574 5f4c 696e 6520 2866 756e 6374 696f et_Line (functio │ │ │ │ │ +0000f8b0: 6e29 2e20 2028 6c69 6e65 2020 3629 0a2a n). (line 6).* │ │ │ │ │ +0000f8c0: 2052 6563 6569 7669 6e67 2064 6174 6120 Receiving data │ │ │ │ │ +0000f8d0: 3c34 3e3a 2020 2020 2020 2020 2020 2020 <4>: │ │ │ │ │ +0000f8e0: 2020 2020 2020 2020 4765 745f 4c69 6e65 Get_Line │ │ │ │ │ +0000f8f0: 2028 7072 6f63 6564 7572 6529 2e20 286c (procedure). (l │ │ │ │ │ +0000f900: 696e 6520 2036 290a 2a20 5265 6365 6976 ine 6).* Receiv │ │ │ │ │ +0000f910: 696e 6720 6461 7461 203c 353e 3a20 2020 ing data <5>: │ │ │ │ │ +0000f920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f930: 2047 6574 5f52 6563 6569 7665 5f51 7565 Get_Receive_Que │ │ │ │ │ +0000f940: 7565 5f53 697a 6520 2866 756e 6374 696f ue_Size (functio │ │ │ │ │ +0000f950: 6e29 2e0a 2020 2020 2020 2020 2020 2020 n).. │ │ │ │ │ +0000f960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f970: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f980: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000f990: 2020 2028 6c69 6e65 2020 3629 0a2a 2052 (line 6).* R │ │ │ │ │ +0000f9a0: 6563 6569 7669 6e67 2064 6174 6120 3c36 eceiving data <6 │ │ │ │ │ +0000f9b0: 3e3a 2020 2020 2020 2020 2020 2020 2020 >: │ │ │ │ │ +0000f9c0: 2020 2020 2020 5265 6365 6976 6520 2866 Receive (f │ │ │ │ │ +0000f9d0: 756e 6374 696f 6e29 2e20 2020 286c 696e unction). (lin │ │ │ │ │ +0000f9e0: 6520 2036 290a 2a20 5265 6365 6976 696e e 6).* Receivin │ │ │ │ │ +0000f9f0: 6720 6461 7461 203c 373e 3a20 2020 2020 g data <7>: │ │ │ │ │ +0000fa00: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ │ +0000fa10: 6563 6569 7665 2028 7072 6f63 6564 7572 eceive (procedur │ │ │ │ │ +0000fa20: 6529 2e20 2028 6c69 6e65 2020 3629 0a2a e). (line 6).* │ │ │ │ │ +0000fa30: 2052 6563 6569 7669 6e67 2064 6174 6120 Receiving data │ │ │ │ │ +0000fa40: 3c38 3e3a 2020 2020 2020 2020 2020 2020 <8>: │ │ │ │ │ +0000fa50: 2020 2020 2020 2020 5265 6365 6976 655f Receive_ │ │ │ │ │ +0000fa60: 536f 6d65 2028 7072 6f63 6564 7572 6529 Some (procedure) │ │ │ │ │ +0000fa70: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ 0000fa80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fa90: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -0000faa0: 6520 2036 290a 2a20 5365 7473 6f63 6b6f e 6).* Setsocko │ │ │ │ │ -0000fab0: 7074 3a20 2020 2020 2020 2020 2020 2020 pt: │ │ │ │ │ -0000fac0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -0000fad0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ -0000fae0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ -0000faf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fa90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000faa0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fab0: 2028 6c69 6e65 2020 3629 0a2a 2052 6563 (line 6).* Rec │ │ │ │ │ +0000fac0: 6569 7669 6e67 2064 6174 6120 3c39 3e3a eiving data <9>: │ │ │ │ │ +0000fad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fae0: 2020 2020 5365 745f 4275 6666 6572 2028 Set_Buffer ( │ │ │ │ │ +0000faf0: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ 0000fb00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000fb10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fb20: 2020 2020 2020 286c 696e 6520 2039 290a (line 9). │ │ │ │ │ -0000fb30: 2a20 5365 7474 696e 6720 736f 636b 6574 * Setting socket │ │ │ │ │ -0000fb40: 206f 7074 696f 6e73 3a20 2020 2020 2020 options: │ │ │ │ │ -0000fb50: 2020 2020 2020 2020 2053 6574 736f 636b Setsock │ │ │ │ │ -0000fb60: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ -0000fb70: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -0000fb80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fb20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fb30: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +0000fb40: 2020 3629 0a2a 2052 6563 6569 7669 6e67 6).* Receiving │ │ │ │ │ +0000fb50: 2064 6174 6120 3c31 303e 3a20 2020 2020 data <10>: │ │ │ │ │ +0000fb60: 2020 2020 2020 2020 2020 2020 2020 556e Un │ │ │ │ │ +0000fb70: 7365 745f 4275 6666 6572 2028 7072 6f63 set_Buffer (proc │ │ │ │ │ +0000fb80: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ 0000fb90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 0000fba0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fbb0: 286c 696e 6520 2036 290a 2a20 5365 745f (line 6).* Set_ │ │ │ │ │ -0000fbc0: 4275 6666 6572 3a20 2020 2020 2020 2020 Buffer: │ │ │ │ │ -0000fbd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fbe0: 2020 2053 6574 5f42 7566 6665 7220 2870 Set_Buffer (p │ │ │ │ │ -0000fbf0: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ -0000fc00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fc10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fbb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fbc0: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ │ +0000fbd0: 0a2a 2052 6570 6f72 7469 6e67 2061 2062 .* Reporting a b │ │ │ │ │ +0000fbe0: 7567 3a20 2020 2020 2020 2020 2020 2020 ug: │ │ │ │ │ +0000fbf0: 2020 2020 2020 2020 2020 5265 736f 7572 Resour │ │ │ │ │ +0000fc00: 6365 7320 6f6e 2074 6865 2049 6e74 6572 ces on the Inter │ │ │ │ │ +0000fc10: 6e65 742e 0a20 2020 2020 2020 2020 2020 net.. │ │ │ │ │ 0000fc20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fc30: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -0000fc40: 2039 290a 2a20 5368 7574 646f 776e 3a20 9).* Shutdown: │ │ │ │ │ -0000fc50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fc60: 2020 2020 2020 2020 2020 2020 2053 6875 Shu │ │ │ │ │ -0000fc70: 7464 6f77 6e20 2870 726f 6365 6475 7265 tdown (procedure │ │ │ │ │ -0000fc80: 292e 2028 6c69 6e65 2020 3929 0a2a 2053 ). (line 9).* S │ │ │ │ │ -0000fc90: 6f63 6b65 743a 2020 2020 2020 2020 2020 ocket: │ │ │ │ │ -0000fca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fcb0: 2020 2020 2020 5365 7474 696e 6720 7570 Setting up │ │ │ │ │ -0000fcc0: 2075 6e69 6361 7374 2073 6f63 6b65 7473 unicast sockets │ │ │ │ │ -0000fcd0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -0000fce0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fcf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fd00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fd10: 2028 6c69 6e65 2020 3629 0a2a 2053 6f63 (line 6).* Soc │ │ │ │ │ -0000fd20: 6b65 7420 3c31 3e3a 2020 2020 2020 2020 ket <1>: │ │ │ │ │ -0000fd30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fd40: 2020 2020 536f 636b 6574 2028 7072 6f63 Socket (proc │ │ │ │ │ -0000fd50: 6564 7572 6529 2e20 2020 286c 696e 6520 edure). (line │ │ │ │ │ -0000fd60: 2039 290a 2a20 536f 636b 6574 2073 6875 9).* Socket shu │ │ │ │ │ -0000fd70: 7464 6f77 6e3a 2020 2020 2020 2020 2020 tdown: │ │ │ │ │ -0000fd80: 2020 2020 2020 2020 2020 2020 2053 6875 Shu │ │ │ │ │ -0000fd90: 7464 6f77 6e20 2870 726f 6365 6475 7265 tdown (procedure │ │ │ │ │ -0000fda0: 292e 2028 6c69 6e65 2020 3629 0a2a 2053 ). (line 6).* S │ │ │ │ │ -0000fdb0: 6f63 6b65 7473 2e41 6363 6570 745f 536f ockets.Accept_So │ │ │ │ │ -0000fdc0: 636b 6574 3a20 2020 2020 2020 2020 2020 cket: │ │ │ │ │ -0000fdd0: 2020 2020 2020 4163 6365 7074 5f53 6f63 Accept_Soc │ │ │ │ │ -0000fde0: 6b65 7420 2870 726f 6365 6475 7265 292e ket (procedure). │ │ │ │ │ -0000fdf0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -0000fe00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fe10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fc50: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ +0000fc60: 5265 7072 6573 656e 7469 6e67 2049 5020 Representing IP │ │ │ │ │ +0000fc70: 6164 6472 6573 7365 733a 2020 2020 2020 addresses: │ │ │ │ │ +0000fc80: 2020 2020 2020 2049 6d61 6765 2028 6675 Image (fu │ │ │ │ │ +0000fc90: 6e63 7469 6f6e 292e 2020 2020 2028 6c69 nction). (li │ │ │ │ │ +0000fca0: 6e65 2020 3629 0a2a 2052 6570 7265 7365 ne 6).* Represe │ │ │ │ │ +0000fcb0: 6e74 696e 6720 4950 2061 6464 7265 7373 nting IP address │ │ │ │ │ +0000fcc0: 6573 203c 313e 3a20 2020 2020 2020 2020 es <1>: │ │ │ │ │ +0000fcd0: 5661 6c75 6520 2866 756e 6374 696f 6e29 Value (function) │ │ │ │ │ +0000fce0: 2e20 2020 2020 286c 696e 6520 2036 290a . (line 6). │ │ │ │ │ +0000fcf0: 2a20 5265 7472 6965 7669 6e67 2073 6f63 * Retrieving soc │ │ │ │ │ +0000fd00: 6b65 7420 6f70 7469 6f6e 733a 2020 2020 ket options: │ │ │ │ │ +0000fd10: 2020 2020 2020 2020 2047 6574 736f 636b Getsock │ │ │ │ │ +0000fd20: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +0000fd30: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000fd40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fd50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fd60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fd70: 286c 696e 6520 2036 290a 2a20 5365 6e64 (line 6).* Send │ │ │ │ │ +0000fd80: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000fd90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fda0: 2020 2053 656e 6420 2870 726f 6365 6475 Send (procedu │ │ │ │ │ +0000fdb0: 7265 292e 2020 2020 2028 6c69 6e65 2020 re). (line │ │ │ │ │ +0000fdc0: 3929 0a2a 2053 656e 6420 3c31 3e3a 2020 9).* Send <1>: │ │ │ │ │ +0000fdd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fde0: 2020 2020 2020 2020 2020 2020 5368 7574 Shut │ │ │ │ │ +0000fdf0: 646f 776e 2028 7072 6f63 6564 7572 6529 down (procedure) │ │ │ │ │ +0000fe00: 2e20 286c 696e 6520 3137 290a 2a20 5365 . (line 17).* Se │ │ │ │ │ +0000fe10: 6e64 696e 6720 6461 7461 3a20 2020 2020 nding data: │ │ │ │ │ 0000fe20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fe30: 286c 696e 6520 3131 290a 2a20 536f 636b (line 11).* Sock │ │ │ │ │ -0000fe40: 6574 732e 4269 6e64 3a20 2020 2020 2020 ets.Bind: │ │ │ │ │ -0000fe50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fe60: 2020 2042 696e 6420 2870 726f 6365 6475 Bind (procedu │ │ │ │ │ -0000fe70: 7265 292e 2020 2020 2028 6c69 6e65 2031 re). (line 1 │ │ │ │ │ -0000fe80: 3129 0a2a 2053 6f63 6b65 7473 2e43 6f6e 1).* Sockets.Con │ │ │ │ │ -0000fe90: 6e65 6374 3a20 2020 2020 2020 2020 2020 nect: │ │ │ │ │ -0000fea0: 2020 2020 2020 2020 2020 2020 436f 6e6e Conn │ │ │ │ │ -0000feb0: 6563 7420 2870 726f 6365 6475 7265 292e ect (procedure). │ │ │ │ │ -0000fec0: 2020 286c 696e 6520 3131 290a 2a20 536f (line 11).* So │ │ │ │ │ -0000fed0: 636b 6574 732e 4765 743a 2020 2020 2020 ckets.Get: │ │ │ │ │ -0000fee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000fef0: 2020 2020 2047 6574 2028 6675 6e63 7469 Get (functi │ │ │ │ │ -0000ff00: 6f6e 292e 2020 2020 2020 2028 6c69 6e65 on). (line │ │ │ │ │ -0000ff10: 2031 3129 0a2a 2053 6f63 6b65 7473 2e47 11).* Sockets.G │ │ │ │ │ -0000ff20: 6574 736f 636b 6f70 743a 2020 2020 2020 etsockopt: │ │ │ │ │ -0000ff30: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ -0000ff40: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ -0000ff50: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ -0000ff60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ff70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ff80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -0000ff90: 2020 2020 2028 6c69 6e65 2031 3229 0a2a (line 12).* │ │ │ │ │ -0000ffa0: 2053 6f63 6b65 7473 2e47 6574 5f43 6861 Sockets.Get_Cha │ │ │ │ │ -0000ffb0: 723a 2020 2020 2020 2020 2020 2020 2020 r: │ │ │ │ │ -0000ffc0: 2020 2020 2020 2020 4765 745f 4368 6172 Get_Char │ │ │ │ │ -0000ffd0: 2028 6675 6e63 7469 6f6e 292e 2020 286c (function). (l │ │ │ │ │ -0000ffe0: 696e 6520 3131 290a 2a20 536f 636b 6574 ine 11).* Socket │ │ │ │ │ -0000fff0: 732e 4765 745f 4c69 6e65 3a20 2020 2020 s.Get_Line: │ │ │ │ │ -00010000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010010: 2047 6574 5f4c 696e 6520 2866 756e 6374 Get_Line (funct │ │ │ │ │ -00010020: 696f 6e29 2e20 2028 6c69 6e65 2031 3229 ion). (line 12) │ │ │ │ │ -00010030: 0a2a 2053 6f63 6b65 7473 2e47 6574 5f4c .* Sockets.Get_L │ │ │ │ │ -00010040: 696e 6520 3c31 3e3a 2020 2020 2020 2020 ine <1>: │ │ │ │ │ -00010050: 2020 2020 2020 2020 2020 4765 745f 4c69 Get_Li │ │ │ │ │ -00010060: 6e65 2028 7072 6f63 6564 7572 6529 2e20 ne (procedure). │ │ │ │ │ -00010070: 286c 696e 6520 3131 290a 2a20 536f 636b (line 11).* Sock │ │ │ │ │ -00010080: 6574 732e 4765 745f 5265 6365 6976 655f ets.Get_Receive_ │ │ │ │ │ -00010090: 5175 6575 655f 5369 7a65 3a20 2020 2020 Queue_Size: │ │ │ │ │ -000100a0: 2020 2047 6574 5f52 6563 6569 7665 5f51 Get_Receive_Q │ │ │ │ │ -000100b0: 7565 7565 5f53 697a 6520 2866 756e 6374 ueue_Size (funct │ │ │ │ │ -000100c0: 696f 6e29 2e0a 2020 2020 2020 2020 2020 ion).. │ │ │ │ │ -000100d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000100e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fe30: 2020 2020 2053 656e 6469 6e67 2061 6e64 Sending and │ │ │ │ │ +0000fe40: 2072 6563 6569 7669 6e67 2064 6174 612e receiving data. │ │ │ │ │ +0000fe50: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +0000fe60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fe70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fe80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fe90: 286c 696e 6520 2036 290a 2a20 5365 6e64 (line 6).* Send │ │ │ │ │ +0000fea0: 696e 6720 6461 7461 203c 313e 3a20 2020 ing data <1>: │ │ │ │ │ +0000feb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000fec0: 2020 2047 6574 5f53 656e 645f 5175 6575 Get_Send_Queu │ │ │ │ │ +0000fed0: 655f 5369 7a65 2028 6675 6e63 7469 6f6e e_Size (function │ │ │ │ │ +0000fee0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +0000fef0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ff00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ff10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ff20: 2020 286c 696e 6520 2036 290a 2a20 5365 (line 6).* Se │ │ │ │ │ +0000ff30: 6e64 696e 6720 6461 7461 203c 323e 3a20 nding data <2>: │ │ │ │ │ +0000ff40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +0000ff50: 2020 2020 204e 6577 5f4c 696e 6520 2870 New_Line (p │ │ │ │ │ +0000ff60: 726f 6365 6475 7265 292e 2028 6c69 6e65 rocedure). (line │ │ │ │ │ +0000ff70: 2020 3629 0a2a 2053 656e 6469 6e67 2064 6).* Sending d │ │ │ │ │ +0000ff80: 6174 6120 3c33 3e3a 2020 2020 2020 2020 ata <3>: │ │ │ │ │ +0000ff90: 2020 2020 2020 2020 2020 2020 2020 5075 Pu │ │ │ │ │ +0000ffa0: 7420 2870 726f 6365 6475 7265 292e 2020 t (procedure). │ │ │ │ │ +0000ffb0: 2020 2020 286c 696e 6520 2036 290a 2a20 (line 6).* │ │ │ │ │ +0000ffc0: 5365 6e64 696e 6720 6461 7461 203c 343e Sending data <4> │ │ │ │ │ +0000ffd0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +0000ffe0: 2020 2020 2020 2050 7574 5f4c 696e 6520 Put_Line │ │ │ │ │ +0000fff0: 2870 726f 6365 6475 7265 292e 2028 6c69 (procedure). (li │ │ │ │ │ +00010000: 6e65 2020 3629 0a2a 2053 656e 6469 6e67 ne 6).* Sending │ │ │ │ │ +00010010: 2064 6174 6120 3c35 3e3a 2020 2020 2020 data <5>: │ │ │ │ │ +00010020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010030: 5365 6e64 2028 7072 6f63 6564 7572 6529 Send (procedure) │ │ │ │ │ +00010040: 2e20 2020 2020 286c 696e 6520 2036 290a . (line 6). │ │ │ │ │ +00010050: 2a20 5365 6e64 696e 6720 7061 7463 6865 * Sending patche │ │ │ │ │ +00010060: 733a 2020 2020 2020 2020 2020 2020 2020 s: │ │ │ │ │ +00010070: 2020 2020 2020 2020 2052 6573 6f75 7263 Resourc │ │ │ │ │ +00010080: 6573 206f 6e20 7468 6520 496e 7465 726e es on the Intern │ │ │ │ │ +00010090: 6574 2e0a 2020 2020 2020 2020 2020 2020 et.. │ │ │ │ │ +000100a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000100b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000100c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000100d0: 2020 2028 6c69 6e65 2020 3629 0a2a 2053 (line 6).* S │ │ │ │ │ +000100e0: 6574 736f 636b 6f70 743a 2020 2020 2020 etsockopt: │ │ │ │ │ 000100f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010100: 2020 2020 2028 6c69 6e65 2031 3229 0a2a (line 12).* │ │ │ │ │ -00010110: 2053 6f63 6b65 7473 2e47 6574 5f53 656e Sockets.Get_Sen │ │ │ │ │ -00010120: 645f 5175 6575 655f 5369 7a65 3a20 2020 d_Queue_Size: │ │ │ │ │ -00010130: 2020 2020 2020 2020 4765 745f 5365 6e64 Get_Send │ │ │ │ │ -00010140: 5f51 7565 7565 5f53 697a 6520 2866 756e _Queue_Size (fun │ │ │ │ │ -00010150: 6374 696f 6e29 2e0a 2020 2020 2020 2020 ction).. │ │ │ │ │ -00010160: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010170: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010100: 2020 2020 2020 5365 7473 6f63 6b6f 7074 Setsockopt │ │ │ │ │ +00010110: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ +00010120: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010140: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010150: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +00010160: 6e65 2020 3929 0a2a 2053 6574 7469 6e67 ne 9).* Setting │ │ │ │ │ +00010170: 2073 6f63 6b65 7420 6f70 7469 6f6e 733a socket options: │ │ │ │ │ 00010180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010190: 2020 2020 2020 2028 6c69 6e65 2031 3229 (line 12) │ │ │ │ │ -000101a0: 0a2a 2053 6f63 6b65 7473 2e49 5050 524f .* Sockets.IPPRO │ │ │ │ │ -000101b0: 544f 5f49 503a 2020 2020 2020 2020 2020 TO_IP: │ │ │ │ │ -000101c0: 2020 2020 2020 2020 2020 4765 7473 6f63 Getsoc │ │ │ │ │ -000101d0: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ -000101e0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -000101f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010190: 5365 7473 6f63 6b6f 7074 2028 7072 6f63 Setsockopt (proc │ │ │ │ │ +000101a0: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ +000101b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000101c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000101d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000101e0: 2020 2020 2020 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ │ +000101f0: 0a2a 2053 6574 5f42 7566 6665 723a 2020 .* Set_Buffer: │ │ │ │ │ 00010200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010220: 2028 6c69 6e65 2032 3029 0a2a 2053 6f63 (line 20).* Soc │ │ │ │ │ -00010230: 6b65 7473 2e49 5050 524f 544f 5f49 5020 kets.IPPROTO_IP │ │ │ │ │ -00010240: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ -00010250: 2020 2020 5365 7473 6f63 6b6f 7074 2028 Setsockopt ( │ │ │ │ │ -00010260: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ -00010270: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010280: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010210: 2020 2020 2020 2020 2020 5365 745f 4275 Set_Bu │ │ │ │ │ +00010220: 6666 6572 2028 7072 6f63 6564 7572 6529 ffer (procedure) │ │ │ │ │ +00010230: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +00010240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010270: 2028 6c69 6e65 2020 3929 0a2a 2053 6875 (line 9).* Shu │ │ │ │ │ +00010280: 7464 6f77 6e3a 2020 2020 2020 2020 2020 tdown: │ │ │ │ │ 00010290: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000102a0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -000102b0: 2032 3029 0a2a 2053 6f63 6b65 7473 2e49 20).* Sockets.I │ │ │ │ │ -000102c0: 505f 4144 445f 4d45 4d42 4552 5348 4950 P_ADD_MEMBERSHIP │ │ │ │ │ -000102d0: 3a20 2020 2020 2020 2020 2020 2020 4765 : Ge │ │ │ │ │ -000102e0: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ -000102f0: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ -00010300: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000102a0: 2020 2020 5368 7574 646f 776e 2028 7072 Shutdown (pr │ │ │ │ │ +000102b0: 6f63 6564 7572 6529 2e20 286c 696e 6520 ocedure). (line │ │ │ │ │ +000102c0: 2039 290a 2a20 536f 636b 6574 3a20 2020 9).* Socket: │ │ │ │ │ +000102d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000102e0: 2020 2020 2020 2020 2020 2020 2053 6574 Set │ │ │ │ │ +000102f0: 7469 6e67 2075 7020 756e 6963 6173 7420 ting up unicast │ │ │ │ │ +00010300: 736f 636b 6574 732e 0a20 2020 2020 2020 sockets.. │ │ │ │ │ 00010310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00010320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010330: 2020 2020 2028 6c69 6e65 2032 3029 0a2a (line 20).* │ │ │ │ │ -00010340: 2053 6f63 6b65 7473 2e49 505f 4144 445f Sockets.IP_ADD_ │ │ │ │ │ -00010350: 4d45 4d42 4552 5348 4950 203c 313e 3a20 MEMBERSHIP <1>: │ │ │ │ │ -00010360: 2020 2020 2020 2020 5365 7473 6f63 6b6f Setsocko │ │ │ │ │ -00010370: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ -00010380: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000103a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000103b0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ -000103c0: 6c69 6e65 2032 3029 0a2a 2053 6f63 6b65 line 20).* Socke │ │ │ │ │ -000103d0: 7473 2e49 505f 4452 4f50 5f4d 454d 4245 ts.IP_DROP_MEMBE │ │ │ │ │ -000103e0: 5253 4849 503a 2020 2020 2020 2020 2020 RSHIP: │ │ │ │ │ -000103f0: 2020 4765 7473 6f63 6b6f 7074 2028 7072 Getsockopt (pr │ │ │ │ │ -00010400: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ -00010410: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010420: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010340: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ │ +00010350: 290a 2a20 536f 636b 6574 203c 313e 3a20 ).* Socket <1>: │ │ │ │ │ +00010360: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010370: 2020 2020 2020 2020 2020 2053 6f63 6b65 Socke │ │ │ │ │ +00010380: 7420 2870 726f 6365 6475 7265 292e 2020 t (procedure). │ │ │ │ │ +00010390: 2028 6c69 6e65 2020 3929 0a2a 2053 6f63 (line 9).* Soc │ │ │ │ │ +000103a0: 6b65 7420 7368 7574 646f 776e 3a20 2020 ket shutdown: │ │ │ │ │ +000103b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000103c0: 2020 2020 5368 7574 646f 776e 2028 7072 Shutdown (pr │ │ │ │ │ +000103d0: 6f63 6564 7572 6529 2e20 286c 696e 6520 ocedure). (line │ │ │ │ │ +000103e0: 2036 290a 2a20 536f 636b 6574 732e 4163 6).* Sockets.Ac │ │ │ │ │ +000103f0: 6365 7074 5f53 6f63 6b65 743a 2020 2020 cept_Socket: │ │ │ │ │ +00010400: 2020 2020 2020 2020 2020 2020 2041 6363 Acc │ │ │ │ │ +00010410: 6570 745f 536f 636b 6574 2028 7072 6f63 ept_Socket (proc │ │ │ │ │ +00010420: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ 00010430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010440: 2020 2020 2020 2020 2028 6c69 6e65 2032 (line 2 │ │ │ │ │ -00010450: 3029 0a2a 2053 6f63 6b65 7473 2e49 505f 0).* Sockets.IP_ │ │ │ │ │ -00010460: 4452 4f50 5f4d 454d 4245 5253 4849 5020 DROP_MEMBERSHIP │ │ │ │ │ -00010470: 3c31 3e3a 2020 2020 2020 2020 5365 7473 <1>: Sets │ │ │ │ │ -00010480: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ -00010490: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ -000104a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000104b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000104c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000104d0: 2020 2028 6c69 6e65 2032 3029 0a2a 2053 (line 20).* S │ │ │ │ │ -000104e0: 6f63 6b65 7473 2e49 505f 4d55 4c54 4943 ockets.IP_MULTIC │ │ │ │ │ -000104f0: 4153 545f 4c4f 4f50 3a20 2020 2020 2020 AST_LOOP: │ │ │ │ │ -00010500: 2020 2020 2020 4765 7473 6f63 6b6f 7074 Getsockopt │ │ │ │ │ -00010510: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ -00010520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010550: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -00010560: 6e65 2032 3029 0a2a 2053 6f63 6b65 7473 ne 20).* Sockets │ │ │ │ │ -00010570: 2e49 505f 4d55 4c54 4943 4153 545f 4c4f .IP_MULTICAST_LO │ │ │ │ │ -00010580: 4f50 203c 313e 3a20 2020 2020 2020 2020 OP <1>: │ │ │ │ │ -00010590: 5365 7473 6f63 6b6f 7074 2028 7072 6f63 Setsockopt (proc │ │ │ │ │ -000105a0: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ +00010440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010450: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010460: 2020 2020 2020 2028 6c69 6e65 2031 3129 (line 11) │ │ │ │ │ +00010470: 0a2a 2053 6f63 6b65 7473 2e42 696e 643a .* Sockets.Bind: │ │ │ │ │ +00010480: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010490: 2020 2020 2020 2020 2020 4269 6e64 2028 Bind ( │ │ │ │ │ +000104a0: 7072 6f63 6564 7572 6529 2e20 2020 2020 procedure). │ │ │ │ │ +000104b0: 286c 696e 6520 3131 290a 2a20 536f 636b (line 11).* Sock │ │ │ │ │ +000104c0: 6574 732e 436f 6e6e 6563 743a 2020 2020 ets.Connect: │ │ │ │ │ +000104d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000104e0: 2020 2043 6f6e 6e65 6374 2028 7072 6f63 Connect (proc │ │ │ │ │ +000104f0: 6564 7572 6529 2e20 2028 6c69 6e65 2031 edure). (line 1 │ │ │ │ │ +00010500: 3129 0a2a 2053 6f63 6b65 7473 2e47 6574 1).* Sockets.Get │ │ │ │ │ +00010510: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +00010520: 2020 2020 2020 2020 2020 2020 4765 7420 Get │ │ │ │ │ +00010530: 2866 756e 6374 696f 6e29 2e20 2020 2020 (function). │ │ │ │ │ +00010540: 2020 286c 696e 6520 3131 290a 2a20 536f (line 11).* So │ │ │ │ │ +00010550: 636b 6574 732e 4765 7473 6f63 6b6f 7074 ckets.Getsockopt │ │ │ │ │ +00010560: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +00010570: 2020 2020 2047 6574 736f 636b 6f70 7420 Getsockopt │ │ │ │ │ +00010580: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +00010590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +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 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000105e0: 2020 2020 2020 2028 6c69 6e65 2032 3029 (line 20) │ │ │ │ │ -000105f0: 0a2a 2053 6f63 6b65 7473 2e49 505f 4d55 .* Sockets.IP_MU │ │ │ │ │ -00010600: 4c54 4943 4153 545f 5454 4c3a 2020 2020 LTICAST_TTL: │ │ │ │ │ -00010610: 2020 2020 2020 2020 2020 4765 7473 6f63 Getsoc │ │ │ │ │ -00010620: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ -00010630: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -00010640: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010670: 2028 6c69 6e65 2032 3029 0a2a 2053 6f63 (line 20).* Soc │ │ │ │ │ -00010680: 6b65 7473 2e49 505f 4d55 4c54 4943 4153 kets.IP_MULTICAS │ │ │ │ │ -00010690: 545f 5454 4c20 3c31 3e3a 2020 2020 2020 T_TTL <1>: │ │ │ │ │ -000106a0: 2020 2020 5365 7473 6f63 6b6f 7074 2028 Setsockopt ( │ │ │ │ │ -000106b0: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ -000106c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000106d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000106e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000106f0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -00010700: 2032 3029 0a2a 2053 6f63 6b65 7473 2e4c 20).* Sockets.L │ │ │ │ │ -00010710: 6973 7465 6e3a 2020 2020 2020 2020 2020 isten: │ │ │ │ │ -00010720: 2020 2020 2020 2020 2020 2020 2020 4c69 Li │ │ │ │ │ -00010730: 7374 656e 2028 7072 6f63 6564 7572 6529 sten (procedure) │ │ │ │ │ -00010740: 2e20 2020 286c 696e 6520 3131 290a 2a20 . (line 11).* │ │ │ │ │ -00010750: 536f 636b 6574 732e 4d75 6c74 6963 6173 Sockets.Multicas │ │ │ │ │ -00010760: 742e 4372 6561 7465 5f4d 756c 7469 6361 t.Create_Multica │ │ │ │ │ -00010770: 7374 5f53 6f63 6b65 743a 2053 6574 7469 st_Socket: Setti │ │ │ │ │ -00010780: 6e67 2075 7020 6d75 6c74 6963 6173 7420 ng up multicast │ │ │ │ │ -00010790: 736f 636b 6574 732e 0a20 2020 2020 2020 sockets.. │ │ │ │ │ +000105c0: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +000105d0: 6520 3132 290a 2a20 536f 636b 6574 732e e 12).* Sockets. │ │ │ │ │ +000105e0: 4765 745f 4368 6172 3a20 2020 2020 2020 Get_Char: │ │ │ │ │ +000105f0: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +00010600: 6574 5f43 6861 7220 2866 756e 6374 696f et_Char (functio │ │ │ │ │ +00010610: 6e29 2e20 2028 6c69 6e65 2031 3129 0a2a n). (line 11).* │ │ │ │ │ +00010620: 2053 6f63 6b65 7473 2e47 6574 5f4c 696e Sockets.Get_Lin │ │ │ │ │ +00010630: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ │ +00010640: 2020 2020 2020 2020 4765 745f 4c69 6e65 Get_Line │ │ │ │ │ +00010650: 2028 6675 6e63 7469 6f6e 292e 2020 286c (function). (l │ │ │ │ │ +00010660: 696e 6520 3132 290a 2a20 536f 636b 6574 ine 12).* Socket │ │ │ │ │ +00010670: 732e 4765 745f 4c69 6e65 203c 313e 3a20 s.Get_Line <1>: │ │ │ │ │ +00010680: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010690: 2047 6574 5f4c 696e 6520 2870 726f 6365 Get_Line (proce │ │ │ │ │ +000106a0: 6475 7265 292e 2028 6c69 6e65 2031 3129 dure). (line 11) │ │ │ │ │ +000106b0: 0a2a 2053 6f63 6b65 7473 2e47 6574 5f52 .* Sockets.Get_R │ │ │ │ │ +000106c0: 6563 6569 7665 5f51 7565 7565 5f53 697a eceive_Queue_Siz │ │ │ │ │ +000106d0: 653a 2020 2020 2020 2020 4765 745f 5265 e: Get_Re │ │ │ │ │ +000106e0: 6365 6976 655f 5175 6575 655f 5369 7a65 ceive_Queue_Size │ │ │ │ │ +000106f0: 2028 6675 6e63 7469 6f6e 292e 0a20 2020 (function).. │ │ │ │ │ +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 2020 2020 286c 696e (lin │ │ │ │ │ +00010740: 6520 3132 290a 2a20 536f 636b 6574 732e e 12).* Sockets. │ │ │ │ │ +00010750: 4765 745f 5365 6e64 5f51 7565 7565 5f53 Get_Send_Queue_S │ │ │ │ │ +00010760: 697a 653a 2020 2020 2020 2020 2020 2047 ize: G │ │ │ │ │ +00010770: 6574 5f53 656e 645f 5175 6575 655f 5369 et_Send_Queue_Si │ │ │ │ │ +00010780: 7a65 2028 6675 6e63 7469 6f6e 292e 0a20 ze (function).. │ │ │ │ │ +00010790: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 000107a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 000107b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000107c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000107d0: 2020 2020 2020 2020 286c 696e 6520 3136 (line 16 │ │ │ │ │ -000107e0: 290a 2a20 536f 636b 6574 732e 4d75 6c74 ).* Sockets.Mult │ │ │ │ │ -000107f0: 6963 6173 742e 4372 6561 7465 5f4d 756c icast.Create_Mul │ │ │ │ │ -00010800: 7469 6361 7374 5f53 6f63 6b65 7420 3c31 ticast_Socket <1 │ │ │ │ │ -00010810: 3e3a 2043 7265 6174 655f 4d75 6c74 6963 >: Create_Multic │ │ │ │ │ -00010820: 6173 745f 536f 636b 6574 2028 6675 6e63 ast_Socket (func │ │ │ │ │ -00010830: 7469 6f6e 292e 0a20 2020 2020 2020 2020 tion).. │ │ │ │ │ +000107c0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +000107d0: 696e 6520 3132 290a 2a20 536f 636b 6574 ine 12).* Socket │ │ │ │ │ +000107e0: 732e 4950 5052 4f54 4f5f 4950 3a20 2020 s.IPPROTO_IP: │ │ │ │ │ +000107f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010800: 2047 6574 736f 636b 6f70 7420 2870 726f Getsockopt (pro │ │ │ │ │ +00010810: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +00010820: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010830: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00010840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010860: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010870: 2020 2020 2020 286c 696e 6520 3134 290a (line 14). │ │ │ │ │ -00010880: 2a20 536f 636b 6574 732e 4d75 6c74 6963 * Sockets.Multic │ │ │ │ │ -00010890: 6173 742e 4372 6561 7465 5f4d 756c 7469 ast.Create_Multi │ │ │ │ │ -000108a0: 6361 7374 5f53 6f63 6b65 7420 3c32 3e3a cast_Socket <2>: │ │ │ │ │ -000108b0: 202e 2020 2020 2020 2020 2020 2020 2028 . ( │ │ │ │ │ -000108c0: 6c69 6e65 2036 3129 0a2a 2053 6f63 6b65 line 61).* Socke │ │ │ │ │ -000108d0: 7473 2e4e 616d 696e 672e 4164 6472 6573 ts.Naming.Addres │ │ │ │ │ -000108e0: 735f 4f66 3a20 2020 2020 2020 2020 2020 s_Of: │ │ │ │ │ -000108f0: 2020 4164 6472 6573 735f 4f66 2028 6675 Address_Of (fu │ │ │ │ │ -00010900: 6e63 7469 6f6e 292e 0a20 2020 2020 2020 nction).. │ │ │ │ │ -00010910: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010850: 2020 2020 2020 2020 286c 696e 6520 3230 (line 20 │ │ │ │ │ +00010860: 290a 2a20 536f 636b 6574 732e 4950 5052 ).* Sockets.IPPR │ │ │ │ │ +00010870: 4f54 4f5f 4950 203c 313e 3a20 2020 2020 OTO_IP <1>: │ │ │ │ │ +00010880: 2020 2020 2020 2020 2020 2053 6574 736f Setso │ │ │ │ │ +00010890: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +000108a0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +000108b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000108c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000108d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000108e0: 2020 286c 696e 6520 3230 290a 2a20 536f (line 20).* So │ │ │ │ │ +000108f0: 636b 6574 732e 4950 5f41 4444 5f4d 454d ckets.IP_ADD_MEM │ │ │ │ │ +00010900: 4245 5253 4849 503a 2020 2020 2020 2020 BERSHIP: │ │ │ │ │ +00010910: 2020 2020 2047 6574 736f 636b 6f70 7420 Getsockopt │ │ │ │ │ +00010920: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ 00010930: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010940: 2020 2020 2020 2020 286c 696e 6520 3132 (line 12 │ │ │ │ │ -00010950: 290a 2a20 536f 636b 6574 732e 4e61 6d69 ).* Sockets.Nami │ │ │ │ │ -00010960: 6e67 2e41 6e79 5f41 6464 7265 7373 3a20 ng.Any_Address: │ │ │ │ │ -00010970: 2020 2020 2020 2020 2020 2041 6e79 5f41 Any_A │ │ │ │ │ -00010980: 6464 7265 7373 2028 6675 6e63 7469 6f6e ddress (function │ │ │ │ │ -00010990: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ -000109a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000109b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010960: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00010970: 6520 3230 290a 2a20 536f 636b 6574 732e e 20).* Sockets. │ │ │ │ │ +00010980: 4950 5f41 4444 5f4d 454d 4245 5253 4849 IP_ADD_MEMBERSHI │ │ │ │ │ +00010990: 5020 3c31 3e3a 2020 2020 2020 2020 2053 P <1>: S │ │ │ │ │ +000109a0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +000109b0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ 000109c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000109d0: 2020 286c 696e 6520 3130 290a 2a20 536f (line 10).* So │ │ │ │ │ -000109e0: 636b 6574 732e 4e61 6d69 6e67 2e47 6574 ckets.Naming.Get │ │ │ │ │ -000109f0: 5f50 6565 725f 4164 6472 3a20 2020 2020 _Peer_Addr: │ │ │ │ │ -00010a00: 2020 2020 2047 6574 5f50 6565 725f 4164 Get_Peer_Ad │ │ │ │ │ -00010a10: 6472 2028 6675 6e63 7469 6f6e 292e 0a20 dr (function).. │ │ │ │ │ -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 2020 │ │ │ │ │ -00010a50: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -00010a60: 696e 6520 3132 290a 2a20 536f 636b 6574 ine 12).* Socket │ │ │ │ │ -00010a70: 732e 4e61 6d69 6e67 2e47 6574 5f50 6565 s.Naming.Get_Pee │ │ │ │ │ -00010a80: 725f 506f 7274 3a20 2020 2020 2020 2020 r_Port: │ │ │ │ │ -00010a90: 2047 6574 5f50 6565 725f 506f 7274 2028 Get_Peer_Port ( │ │ │ │ │ -00010aa0: 6675 6e63 7469 6f6e 292e 0a20 2020 2020 function).. │ │ │ │ │ -00010ab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010ac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000109d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000109e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000109f0: 2020 2020 2020 286c 696e 6520 3230 290a (line 20). │ │ │ │ │ +00010a00: 2a20 536f 636b 6574 732e 4950 5f44 524f * Sockets.IP_DRO │ │ │ │ │ +00010a10: 505f 4d45 4d42 4552 5348 4950 3a20 2020 P_MEMBERSHIP: │ │ │ │ │ +00010a20: 2020 2020 2020 2020 2047 6574 736f 636b Getsock │ │ │ │ │ +00010a30: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +00010a40: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00010a50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010a60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010a70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010a80: 286c 696e 6520 3230 290a 2a20 536f 636b (line 20).* Sock │ │ │ │ │ +00010a90: 6574 732e 4950 5f44 524f 505f 4d45 4d42 ets.IP_DROP_MEMB │ │ │ │ │ +00010aa0: 4552 5348 4950 203c 313e 3a20 2020 2020 ERSHIP <1>: │ │ │ │ │ +00010ab0: 2020 2053 6574 736f 636b 6f70 7420 2870 Setsockopt (p │ │ │ │ │ +00010ac0: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ 00010ad0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010ae0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -00010af0: 3132 290a 2a20 536f 636b 6574 732e 4e61 12).* Sockets.Na │ │ │ │ │ -00010b00: 6d69 6e67 2e47 6574 5f53 6f63 6b5f 4164 ming.Get_Sock_Ad │ │ │ │ │ -00010b10: 6472 3a20 2020 2020 2020 2020 2047 6574 dr: Get │ │ │ │ │ -00010b20: 5f53 6f63 6b5f 4164 6472 2028 6675 6e63 _Sock_Addr (func │ │ │ │ │ -00010b30: 7469 6f6e 292e 0a20 2020 2020 2020 2020 tion).. │ │ │ │ │ -00010b40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010b50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010af0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010b00: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +00010b10: 3230 290a 2a20 536f 636b 6574 732e 4950 20).* Sockets.IP │ │ │ │ │ +00010b20: 5f4d 554c 5449 4341 5354 5f4c 4f4f 503a _MULTICAST_LOOP: │ │ │ │ │ +00010b30: 2020 2020 2020 2020 2020 2020 2047 6574 Get │ │ │ │ │ +00010b40: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +00010b50: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ 00010b60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010b70: 2020 2020 2020 286c 696e 6520 3132 290a (line 12). │ │ │ │ │ -00010b80: 2a20 536f 636b 6574 732e 4e61 6d69 6e67 * Sockets.Naming │ │ │ │ │ -00010b90: 2e47 6574 5f53 6f63 6b5f 506f 7274 3a20 .Get_Sock_Port: │ │ │ │ │ -00010ba0: 2020 2020 2020 2020 2047 6574 5f53 6f63 Get_Soc │ │ │ │ │ -00010bb0: 6b5f 506f 7274 2028 6675 6e63 7469 6f6e k_Port (function │ │ │ │ │ -00010bc0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ -00010bd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010b70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010b80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010b90: 2020 2020 286c 696e 6520 3230 290a 2a20 (line 20).* │ │ │ │ │ +00010ba0: 536f 636b 6574 732e 4950 5f4d 554c 5449 Sockets.IP_MULTI │ │ │ │ │ +00010bb0: 4341 5354 5f4c 4f4f 5020 3c31 3e3a 2020 CAST_LOOP <1>: │ │ │ │ │ +00010bc0: 2020 2020 2020 2053 6574 736f 636b 6f70 Setsockop │ │ │ │ │ +00010bd0: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ 00010be0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00010bf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010c00: 2020 286c 696e 6520 3132 290a 2a20 536f (line 12).* So │ │ │ │ │ -00010c10: 636b 6574 732e 4e61 6d69 6e67 2e48 6f73 ckets.Naming.Hos │ │ │ │ │ -00010c20: 745f 4e61 6d65 3a20 2020 2020 2020 2020 t_Name: │ │ │ │ │ -00010c30: 2020 2020 2048 6f73 745f 4e61 6d65 2028 Host_Name ( │ │ │ │ │ -00010c40: 6675 6e63 7469 6f6e 292e 2028 6c69 6e65 function). (line │ │ │ │ │ -00010c50: 2031 3029 0a2a 2053 6f63 6b65 7473 2e4e 10).* Sockets.N │ │ │ │ │ -00010c60: 616d 696e 672e 496d 6167 653a 2020 2020 aming.Image: │ │ │ │ │ -00010c70: 2020 2020 2020 2020 2020 2020 2020 496d Im │ │ │ │ │ -00010c80: 6167 6520 2866 756e 6374 696f 6e29 2e20 age (function). │ │ │ │ │ -00010c90: 2020 2020 286c 696e 6520 3131 290a 2a20 (line 11).* │ │ │ │ │ -00010ca0: 536f 636b 6574 732e 4e61 6d69 6e67 2e49 Sockets.Naming.I │ │ │ │ │ -00010cb0: 6e66 6f5f 4f66 5f4e 616d 655f 4f72 5f49 nfo_Of_Name_Or_I │ │ │ │ │ -00010cc0: 503a 2020 2020 2049 6e66 6f5f 4f66 5f4e P: Info_Of_N │ │ │ │ │ -00010cd0: 616d 655f 4f72 5f49 5020 2866 756e 6374 ame_Or_IP (funct │ │ │ │ │ -00010ce0: 696f 6e29 2e0a 2020 2020 2020 2020 2020 ion).. │ │ │ │ │ -00010cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010c00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010c10: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +00010c20: 696e 6520 3230 290a 2a20 536f 636b 6574 ine 20).* Socket │ │ │ │ │ +00010c30: 732e 4950 5f4d 554c 5449 4341 5354 5f54 s.IP_MULTICAST_T │ │ │ │ │ +00010c40: 544c 3a20 2020 2020 2020 2020 2020 2020 TL: │ │ │ │ │ +00010c50: 2047 6574 736f 636b 6f70 7420 2870 726f Getsockopt (pro │ │ │ │ │ +00010c60: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +00010c70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010c80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010c90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ca0: 2020 2020 2020 2020 286c 696e 6520 3230 (line 20 │ │ │ │ │ +00010cb0: 290a 2a20 536f 636b 6574 732e 4950 5f4d ).* Sockets.IP_M │ │ │ │ │ +00010cc0: 554c 5449 4341 5354 5f54 544c 203c 313e ULTICAST_TTL <1> │ │ │ │ │ +00010cd0: 3a20 2020 2020 2020 2020 2053 6574 736f : Setso │ │ │ │ │ +00010ce0: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +00010cf0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ 00010d00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00010d10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010d20: 2020 2020 2028 6c69 6e65 2031 3229 0a2a (line 12).* │ │ │ │ │ -00010d30: 2053 6f63 6b65 7473 2e4e 616d 696e 672e Sockets.Naming. │ │ │ │ │ -00010d40: 4973 5f49 505f 4164 6472 6573 733a 2020 Is_IP_Address: │ │ │ │ │ -00010d50: 2020 2020 2020 2020 4973 5f49 505f 4164 Is_IP_Ad │ │ │ │ │ -00010d60: 6472 6573 7320 2866 756e 6374 696f 6e29 dress (function) │ │ │ │ │ -00010d70: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -00010d80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010d90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010da0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010db0: 2028 6c69 6e65 2031 3229 0a2a 2053 6f63 (line 12).* Soc │ │ │ │ │ -00010dc0: 6b65 7473 2e4e 616d 696e 672e 4e61 6d65 kets.Naming.Name │ │ │ │ │ -00010dd0: 5f4f 663a 2020 2020 2020 2020 2020 2020 _Of: │ │ │ │ │ -00010de0: 2020 2020 4e61 6d65 5f4f 6620 2866 756e Name_Of (fun │ │ │ │ │ -00010df0: 6374 696f 6e29 2e20 2020 286c 696e 6520 ction). (line │ │ │ │ │ -00010e00: 3131 290a 2a20 536f 636b 6574 732e 4e61 11).* Sockets.Na │ │ │ │ │ -00010e10: 6d69 6e67 2e56 616c 7565 3a20 2020 2020 ming.Value: │ │ │ │ │ -00010e20: 2020 2020 2020 2020 2020 2020 2056 616c Val │ │ │ │ │ -00010e30: 7565 2028 6675 6e63 7469 6f6e 292e 2020 ue (function). │ │ │ │ │ -00010e40: 2020 2028 6c69 6e65 2031 3129 0a2a 2053 (line 11).* S │ │ │ │ │ -00010e50: 6f63 6b65 7473 2e4e 6577 5f4c 696e 653a ockets.New_Line: │ │ │ │ │ -00010e60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010e70: 2020 2020 2020 4e65 775f 4c69 6e65 2028 New_Line ( │ │ │ │ │ -00010e80: 7072 6f63 6564 7572 6529 2e20 286c 696e procedure). (lin │ │ │ │ │ -00010e90: 6520 3131 290a 2a20 536f 636b 6574 732e e 11).* Sockets. │ │ │ │ │ -00010ea0: 5075 743a 2020 2020 2020 2020 2020 2020 Put: │ │ │ │ │ -00010eb0: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ │ -00010ec0: 7574 2028 7072 6f63 6564 7572 6529 2e20 ut (procedure). │ │ │ │ │ -00010ed0: 2020 2020 2028 6c69 6e65 2031 3129 0a2a (line 11).* │ │ │ │ │ -00010ee0: 2053 6f63 6b65 7473 2e50 7574 5f4c 696e Sockets.Put_Lin │ │ │ │ │ -00010ef0: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ │ -00010f00: 2020 2020 2020 2020 5075 745f 4c69 6e65 Put_Line │ │ │ │ │ -00010f10: 2028 7072 6f63 6564 7572 6529 2e20 286c (procedure). (l │ │ │ │ │ -00010f20: 696e 6520 3131 290a 2a20 536f 636b 6574 ine 11).* Socket │ │ │ │ │ -00010f30: 732e 5265 6365 6976 653a 2020 2020 2020 s.Receive: │ │ │ │ │ +00010d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010d30: 2020 286c 696e 6520 3230 290a 2a20 536f (line 20).* So │ │ │ │ │ +00010d40: 636b 6574 732e 4c69 7374 656e 3a20 2020 ckets.Listen: │ │ │ │ │ +00010d50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010d60: 2020 2020 204c 6973 7465 6e20 2870 726f Listen (pro │ │ │ │ │ +00010d70: 6365 6475 7265 292e 2020 2028 6c69 6e65 cedure). (line │ │ │ │ │ +00010d80: 2031 3129 0a2a 2053 6f63 6b65 7473 2e4d 11).* Sockets.M │ │ │ │ │ +00010d90: 756c 7469 6361 7374 2e43 7265 6174 655f ulticast.Create_ │ │ │ │ │ +00010da0: 4d75 6c74 6963 6173 745f 536f 636b 6574 Multicast_Socket │ │ │ │ │ +00010db0: 3a20 5365 7474 696e 6720 7570 206d 756c : Setting up mul │ │ │ │ │ +00010dc0: 7469 6361 7374 2073 6f63 6b65 7473 2e0a ticast sockets.. │ │ │ │ │ +00010dd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +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 2028 ( │ │ │ │ │ +00010e10: 6c69 6e65 2031 3629 0a2a 2053 6f63 6b65 line 16).* Socke │ │ │ │ │ +00010e20: 7473 2e4d 756c 7469 6361 7374 2e43 7265 ts.Multicast.Cre │ │ │ │ │ +00010e30: 6174 655f 4d75 6c74 6963 6173 745f 536f ate_Multicast_So │ │ │ │ │ +00010e40: 636b 6574 203c 313e 3a20 4372 6561 7465 cket <1>: Create │ │ │ │ │ +00010e50: 5f4d 756c 7469 6361 7374 5f53 6f63 6b65 _Multicast_Socke │ │ │ │ │ +00010e60: 7420 2866 756e 6374 696f 6e29 2e0a 2020 t (function).. │ │ │ │ │ +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 2020 │ │ │ │ │ +00010ea0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +00010eb0: 6e65 2031 3429 0a2a 2053 6f63 6b65 7473 ne 14).* Sockets │ │ │ │ │ +00010ec0: 2e4d 756c 7469 6361 7374 2e43 7265 6174 .Multicast.Creat │ │ │ │ │ +00010ed0: 655f 4d75 6c74 6963 6173 745f 536f 636b e_Multicast_Sock │ │ │ │ │ +00010ee0: 6574 203c 323e 3a20 2e20 2020 2020 2020 et <2>: . │ │ │ │ │ +00010ef0: 2020 2020 2020 286c 696e 6520 3738 290a (line 78). │ │ │ │ │ +00010f00: 2a20 536f 636b 6574 732e 4e61 6d69 6e67 * Sockets.Naming │ │ │ │ │ +00010f10: 2e41 6464 7265 7373 5f4f 663a 2020 2020 .Address_Of: │ │ │ │ │ +00010f20: 2020 2020 2020 2020 2041 6464 7265 7373 Address │ │ │ │ │ +00010f30: 5f4f 6620 2866 756e 6374 696f 6e29 2e0a _Of (function).. │ │ │ │ │ 00010f40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00010f50: 2052 6563 6569 7665 2028 6675 6e63 7469 Receive (functi │ │ │ │ │ -00010f60: 6f6e 292e 2020 2028 6c69 6e65 2031 3229 on). (line 12) │ │ │ │ │ -00010f70: 0a2a 2053 6f63 6b65 7473 2e52 6563 6569 .* Sockets.Recei │ │ │ │ │ -00010f80: 7665 203c 313e 3a20 2020 2020 2020 2020 ve <1>: │ │ │ │ │ -00010f90: 2020 2020 2020 2020 2020 5265 6365 6976 Receiv │ │ │ │ │ -00010fa0: 6520 2870 726f 6365 6475 7265 292e 2020 e (procedure). │ │ │ │ │ -00010fb0: 286c 696e 6520 3131 290a 2a20 536f 636b (line 11).* Sock │ │ │ │ │ -00010fc0: 6574 732e 5265 6365 6976 655f 536f 6d65 ets.Receive_Some │ │ │ │ │ -00010fd0: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ -00010fe0: 2020 2052 6563 6569 7665 5f53 6f6d 6520 Receive_Some │ │ │ │ │ -00010ff0: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ -00011000: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011010: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011030: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00011040: 6520 3133 290a 2a20 536f 636b 6574 732e e 13).* Sockets. │ │ │ │ │ -00011050: 5365 6e64 3a20 2020 2020 2020 2020 2020 Send: │ │ │ │ │ -00011060: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ -00011070: 656e 6420 2870 726f 6365 6475 7265 292e end (procedure). │ │ │ │ │ -00011080: 2020 2020 2028 6c69 6e65 2031 3129 0a2a (line 11).* │ │ │ │ │ -00011090: 2053 6f63 6b65 7473 2e53 6574 736f 636b Sockets.Setsock │ │ │ │ │ -000110a0: 6f70 743a 2020 2020 2020 2020 2020 2020 opt: │ │ │ │ │ -000110b0: 2020 2020 2020 2020 5365 7473 6f63 6b6f Setsocko │ │ │ │ │ -000110c0: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ -000110d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000110e0: 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 2020 2020 2028 ( │ │ │ │ │ +00010f80: 6c69 6e65 2031 3229 0a2a 2053 6f63 6b65 line 12).* Socke │ │ │ │ │ +00010f90: 7473 2e4e 616d 696e 672e 416e 795f 4164 ts.Naming.Any_Ad │ │ │ │ │ +00010fa0: 6472 6573 733a 2020 2020 2020 2020 2020 dress: │ │ │ │ │ +00010fb0: 2020 416e 795f 4164 6472 6573 7320 2866 Any_Address (f │ │ │ │ │ +00010fc0: 756e 6374 696f 6e29 2e0a 2020 2020 2020 unction).. │ │ │ │ │ +00010fd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010fe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00010ff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011000: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ │ +00011010: 3029 0a2a 2053 6f63 6b65 7473 2e4e 616d 0).* Sockets.Nam │ │ │ │ │ +00011020: 696e 672e 4765 745f 5065 6572 5f41 6464 ing.Get_Peer_Add │ │ │ │ │ +00011030: 723a 2020 2020 2020 2020 2020 4765 745f r: Get_ │ │ │ │ │ +00011040: 5065 6572 5f41 6464 7220 2866 756e 6374 Peer_Addr (funct │ │ │ │ │ +00011050: 696f 6e29 2e0a 2020 2020 2020 2020 2020 ion).. │ │ │ │ │ +00011060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011070: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011080: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011090: 2020 2020 2028 6c69 6e65 2031 3229 0a2a (line 12).* │ │ │ │ │ +000110a0: 2053 6f63 6b65 7473 2e4e 616d 696e 672e Sockets.Naming. │ │ │ │ │ +000110b0: 4765 745f 5065 6572 5f50 6f72 743a 2020 Get_Peer_Port: │ │ │ │ │ +000110c0: 2020 2020 2020 2020 4765 745f 5065 6572 Get_Peer │ │ │ │ │ +000110d0: 5f50 6f72 7420 2866 756e 6374 696f 6e29 _Port (function) │ │ │ │ │ +000110e0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ 000110f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011100: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ -00011110: 6c69 6e65 2031 3229 0a2a 2053 6f63 6b65 line 12).* Socke │ │ │ │ │ -00011120: 7473 2e53 6574 5f42 7566 6665 723a 2020 ts.Set_Buffer: │ │ │ │ │ -00011130: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011140: 2020 5365 745f 4275 6666 6572 2028 7072 Set_Buffer (pr │ │ │ │ │ -00011150: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ -00011160: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011110: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011120: 2028 6c69 6e65 2031 3229 0a2a 2053 6f63 (line 12).* Soc │ │ │ │ │ +00011130: 6b65 7473 2e4e 616d 696e 672e 4765 745f kets.Naming.Get_ │ │ │ │ │ +00011140: 536f 636b 5f41 6464 723a 2020 2020 2020 Sock_Addr: │ │ │ │ │ +00011150: 2020 2020 4765 745f 536f 636b 5f41 6464 Get_Sock_Add │ │ │ │ │ +00011160: 7220 2866 756e 6374 696f 6e29 2e0a 2020 r (function).. │ │ │ │ │ 00011170: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011190: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ │ -000111a0: 3129 0a2a 2053 6f63 6b65 7473 2e53 6875 1).* Sockets.Shu │ │ │ │ │ -000111b0: 7464 6f77 6e3a 2020 2020 2020 2020 2020 tdown: │ │ │ │ │ -000111c0: 2020 2020 2020 2020 2020 2020 5368 7574 Shut │ │ │ │ │ -000111d0: 646f 776e 2028 7072 6f63 6564 7572 6529 down (procedure) │ │ │ │ │ -000111e0: 2e20 286c 696e 6520 3131 290a 2a20 536f . (line 11).* So │ │ │ │ │ -000111f0: 636b 6574 732e 536f 636b 6574 3a20 2020 ckets.Socket: │ │ │ │ │ +00011190: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000111a0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +000111b0: 6e65 2031 3229 0a2a 2053 6f63 6b65 7473 ne 12).* Sockets │ │ │ │ │ +000111c0: 2e4e 616d 696e 672e 4765 745f 536f 636b .Naming.Get_Sock │ │ │ │ │ +000111d0: 5f50 6f72 743a 2020 2020 2020 2020 2020 _Port: │ │ │ │ │ +000111e0: 4765 745f 536f 636b 5f50 6f72 7420 2866 Get_Sock_Port (f │ │ │ │ │ +000111f0: 756e 6374 696f 6e29 2e0a 2020 2020 2020 unction).. │ │ │ │ │ 00011200: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011210: 2020 2020 2053 6574 7469 6e67 2075 7020 Setting up │ │ │ │ │ -00011220: 756e 6963 6173 7420 736f 636b 6574 732e unicast sockets. │ │ │ │ │ -00011230: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ -00011240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011270: 286c 696e 6520 2036 290a 2a20 536f 636b (line 6).* Sock │ │ │ │ │ -00011280: 6574 732e 536f 636b 6574 203c 313e 3a20 ets.Socket <1>: │ │ │ │ │ -00011290: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000112a0: 2020 2053 6f63 6b65 7420 2870 726f 6365 Socket (proce │ │ │ │ │ -000112b0: 6475 7265 292e 2020 2028 6c69 6e65 2031 dure). (line 1 │ │ │ │ │ -000112c0: 3229 0a2a 2053 6f63 6b65 7473 2e53 4f4c 2).* Sockets.SOL │ │ │ │ │ -000112d0: 5f53 4f43 4b45 543a 2020 2020 2020 2020 _SOCKET: │ │ │ │ │ -000112e0: 2020 2020 2020 2020 2020 2020 4765 7473 Gets │ │ │ │ │ -000112f0: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ -00011300: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ -00011310: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011230: 2020 2020 2020 2020 2028 6c69 6e65 2031 (line 1 │ │ │ │ │ +00011240: 3229 0a2a 2053 6f63 6b65 7473 2e4e 616d 2).* Sockets.Nam │ │ │ │ │ +00011250: 696e 672e 486f 7374 5f4e 616d 653a 2020 ing.Host_Name: │ │ │ │ │ +00011260: 2020 2020 2020 2020 2020 2020 486f 7374 Host │ │ │ │ │ +00011270: 5f4e 616d 6520 2866 756e 6374 696f 6e29 _Name (function) │ │ │ │ │ +00011280: 2e20 286c 696e 6520 3130 290a 2a20 536f . (line 10).* So │ │ │ │ │ +00011290: 636b 6574 732e 4e61 6d69 6e67 2e49 6d61 ckets.Naming.Ima │ │ │ │ │ +000112a0: 6765 3a20 2020 2020 2020 2020 2020 2020 ge: │ │ │ │ │ +000112b0: 2020 2020 2049 6d61 6765 2028 6675 6e63 Image (func │ │ │ │ │ +000112c0: 7469 6f6e 292e 2020 2020 2028 6c69 6e65 tion). (line │ │ │ │ │ +000112d0: 2031 3129 0a2a 2053 6f63 6b65 7473 2e4e 11).* Sockets.N │ │ │ │ │ +000112e0: 616d 696e 672e 496e 666f 5f4f 665f 4e61 aming.Info_Of_Na │ │ │ │ │ +000112f0: 6d65 5f4f 725f 4950 3a20 2020 2020 496e me_Or_IP: In │ │ │ │ │ +00011300: 666f 5f4f 665f 4e61 6d65 5f4f 725f 4950 fo_Of_Name_Or_IP │ │ │ │ │ +00011310: 2028 6675 6e63 7469 6f6e 292e 0a20 2020 (function).. │ │ │ │ │ 00011320: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011330: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011340: 2020 2028 6c69 6e65 2032 3029 0a2a 2053 (line 20).* S │ │ │ │ │ -00011350: 6f63 6b65 7473 2e53 4f4c 5f53 4f43 4b45 ockets.SOL_SOCKE │ │ │ │ │ -00011360: 5420 3c31 3e3a 2020 2020 2020 2020 2020 T <1>: │ │ │ │ │ -00011370: 2020 2020 2020 5365 7473 6f63 6b6f 7074 Setsockopt │ │ │ │ │ -00011380: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ -00011390: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000113a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011340: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011350: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00011360: 6520 3132 290a 2a20 536f 636b 6574 732e e 12).* Sockets. │ │ │ │ │ +00011370: 4e61 6d69 6e67 2e49 735f 4950 5f41 6464 Naming.Is_IP_Add │ │ │ │ │ +00011380: 7265 7373 3a20 2020 2020 2020 2020 2049 ress: I │ │ │ │ │ +00011390: 735f 4950 5f41 6464 7265 7373 2028 6675 s_IP_Address (fu │ │ │ │ │ +000113a0: 6e63 7469 6f6e 292e 0a20 2020 2020 2020 nction).. │ │ │ │ │ 000113b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000113c0: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -000113d0: 6e65 2032 3029 0a2a 2053 6f63 6b65 7473 ne 20).* Sockets │ │ │ │ │ -000113e0: 2e53 4f5f 5243 5642 5546 3a20 2020 2020 .SO_RCVBUF: │ │ │ │ │ -000113f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011400: 4765 7473 6f63 6b6f 7074 2028 7072 6f63 Getsockopt (proc │ │ │ │ │ -00011410: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ -00011420: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011440: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011450: 2020 2020 2020 2028 6c69 6e65 2032 3029 (line 20) │ │ │ │ │ -00011460: 0a2a 2053 6f63 6b65 7473 2e53 4f5f 5243 .* Sockets.SO_RC │ │ │ │ │ -00011470: 5642 5546 203c 313e 3a20 2020 2020 2020 VBUF <1>: │ │ │ │ │ -00011480: 2020 2020 2020 2020 2020 5365 7473 6f63 Setsoc │ │ │ │ │ -00011490: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ -000114a0: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ -000114b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000114c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000114d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000114e0: 2028 6c69 6e65 2032 3029 0a2a 2053 6f63 (line 20).* Soc │ │ │ │ │ -000114f0: 6b65 7473 2e53 4f5f 5245 5553 4541 4444 kets.SO_REUSEADD │ │ │ │ │ -00011500: 523a 2020 2020 2020 2020 2020 2020 2020 R: │ │ │ │ │ -00011510: 2020 2020 4765 7473 6f63 6b6f 7074 2028 Getsockopt ( │ │ │ │ │ -00011520: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ -00011530: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011540: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011550: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011560: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ -00011570: 2032 3029 0a2a 2053 6f63 6b65 7473 2e53 20).* Sockets.S │ │ │ │ │ -00011580: 4f5f 5245 5553 4541 4444 5220 3c31 3e3a O_REUSEADDR <1>: │ │ │ │ │ -00011590: 2020 2020 2020 2020 2020 2020 2020 5365 Se │ │ │ │ │ -000115a0: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ -000115b0: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ +000113c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000113d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000113e0: 2020 2020 2020 2020 286c 696e 6520 3132 (line 12 │ │ │ │ │ +000113f0: 290a 2a20 536f 636b 6574 732e 4e61 6d69 ).* Sockets.Nami │ │ │ │ │ +00011400: 6e67 2e4e 616d 655f 4f66 3a20 2020 2020 ng.Name_Of: │ │ │ │ │ +00011410: 2020 2020 2020 2020 2020 204e 616d 655f Name_ │ │ │ │ │ +00011420: 4f66 2028 6675 6e63 7469 6f6e 292e 2020 Of (function). │ │ │ │ │ +00011430: 2028 6c69 6e65 2031 3129 0a2a 2053 6f63 (line 11).* Soc │ │ │ │ │ +00011440: 6b65 7473 2e4e 616d 696e 672e 5661 6c75 kets.Naming.Valu │ │ │ │ │ +00011450: 653a 2020 2020 2020 2020 2020 2020 2020 e: │ │ │ │ │ +00011460: 2020 2020 5661 6c75 6520 2866 756e 6374 Value (funct │ │ │ │ │ +00011470: 696f 6e29 2e20 2020 2020 286c 696e 6520 ion). (line │ │ │ │ │ +00011480: 3131 290a 2a20 536f 636b 6574 732e 4e65 11).* Sockets.Ne │ │ │ │ │ +00011490: 775f 4c69 6e65 3a20 2020 2020 2020 2020 w_Line: │ │ │ │ │ +000114a0: 2020 2020 2020 2020 2020 2020 204e 6577 New │ │ │ │ │ +000114b0: 5f4c 696e 6520 2870 726f 6365 6475 7265 _Line (procedure │ │ │ │ │ +000114c0: 292e 2028 6c69 6e65 2031 3129 0a2a 2053 ). (line 11).* S │ │ │ │ │ +000114d0: 6f63 6b65 7473 2e50 7574 3a20 2020 2020 ockets.Put: │ │ │ │ │ +000114e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000114f0: 2020 2020 2020 5075 7420 2870 726f 6365 Put (proce │ │ │ │ │ +00011500: 6475 7265 292e 2020 2020 2020 286c 696e dure). (lin │ │ │ │ │ +00011510: 6520 3131 290a 2a20 536f 636b 6574 732e e 11).* Sockets. │ │ │ │ │ +00011520: 5075 745f 4c69 6e65 3a20 2020 2020 2020 Put_Line: │ │ │ │ │ +00011530: 2020 2020 2020 2020 2020 2020 2020 2050 P │ │ │ │ │ +00011540: 7574 5f4c 696e 6520 2870 726f 6365 6475 ut_Line (procedu │ │ │ │ │ +00011550: 7265 292e 2028 6c69 6e65 2031 3129 0a2a re). (line 11).* │ │ │ │ │ +00011560: 2053 6f63 6b65 7473 2e52 6563 6569 7665 Sockets.Receive │ │ │ │ │ +00011570: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +00011580: 2020 2020 2020 2020 5265 6365 6976 6520 Receive │ │ │ │ │ +00011590: 2866 756e 6374 696f 6e29 2e20 2020 286c (function). (l │ │ │ │ │ +000115a0: 696e 6520 3132 290a 2a20 536f 636b 6574 ine 12).* Socket │ │ │ │ │ +000115b0: 732e 5265 6365 6976 6520 3c31 3e3a 2020 s.Receive <1>: │ │ │ │ │ 000115c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000115d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000115e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000115f0: 2020 2020 2028 6c69 6e65 2032 3029 0a2a (line 20).* │ │ │ │ │ -00011600: 2053 6f63 6b65 7473 2e53 4f5f 5245 5553 Sockets.SO_REUS │ │ │ │ │ -00011610: 4550 4f52 543a 2020 2020 2020 2020 2020 EPORT: │ │ │ │ │ -00011620: 2020 2020 2020 2020 4765 7473 6f63 6b6f Getsocko │ │ │ │ │ -00011630: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ +000115d0: 2052 6563 6569 7665 2028 7072 6f63 6564 Receive (proced │ │ │ │ │ +000115e0: 7572 6529 2e20 2028 6c69 6e65 2031 3129 ure). (line 11) │ │ │ │ │ +000115f0: 0a2a 2053 6f63 6b65 7473 2e52 6563 6569 .* Sockets.Recei │ │ │ │ │ +00011600: 7665 5f53 6f6d 653a 2020 2020 2020 2020 ve_Some: │ │ │ │ │ +00011610: 2020 2020 2020 2020 2020 5265 6365 6976 Receiv │ │ │ │ │ +00011620: 655f 536f 6d65 2028 7072 6f63 6564 7572 e_Some (procedur │ │ │ │ │ +00011630: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ 00011640: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011650: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011670: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ -00011680: 6c69 6e65 2032 3029 0a2a 2053 6f63 6b65 line 20).* Socke │ │ │ │ │ -00011690: 7473 2e53 4f5f 5245 5553 4550 4f52 5420 ts.SO_REUSEPORT │ │ │ │ │ -000116a0: 3c31 3e3a 2020 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ -000116b0: 2020 5365 7473 6f63 6b6f 7074 2028 7072 Setsockopt (pr │ │ │ │ │ -000116c0: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ -000116d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000116e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000116f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011700: 2020 2020 2020 2020 2028 6c69 6e65 2032 (line 2 │ │ │ │ │ -00011710: 3029 0a2a 2053 6f63 6b65 7473 2e53 4f5f 0).* Sockets.SO_ │ │ │ │ │ -00011720: 534e 4442 5546 3a20 2020 2020 2020 2020 SNDBUF: │ │ │ │ │ -00011730: 2020 2020 2020 2020 2020 2020 4765 7473 Gets │ │ │ │ │ -00011740: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ -00011750: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ -00011760: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011770: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011780: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011790: 2020 2028 6c69 6e65 2032 3029 0a2a 2053 (line 20).* S │ │ │ │ │ -000117a0: 6f63 6b65 7473 2e53 4f5f 534e 4442 5546 ockets.SO_SNDBUF │ │ │ │ │ -000117b0: 203c 313e 3a20 2020 2020 2020 2020 2020 <1>: │ │ │ │ │ -000117c0: 2020 2020 2020 5365 7473 6f63 6b6f 7074 Setsockopt │ │ │ │ │ -000117d0: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ -000117e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011670: 2020 2028 6c69 6e65 2031 3329 0a2a 2053 (line 13).* S │ │ │ │ │ +00011680: 6f63 6b65 7473 2e53 656e 643a 2020 2020 ockets.Send: │ │ │ │ │ +00011690: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000116a0: 2020 2020 2020 5365 6e64 2028 7072 6f63 Send (proc │ │ │ │ │ +000116b0: 6564 7572 6529 2e20 2020 2020 286c 696e edure). (lin │ │ │ │ │ +000116c0: 6520 3131 290a 2a20 536f 636b 6574 732e e 11).* Sockets. │ │ │ │ │ +000116d0: 5365 7473 6f63 6b6f 7074 3a20 2020 2020 Setsockopt: │ │ │ │ │ +000116e0: 2020 2020 2020 2020 2020 2020 2020 2053 S │ │ │ │ │ +000116f0: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +00011700: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +00011710: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011720: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011730: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011740: 2020 2020 2020 286c 696e 6520 3132 290a (line 12). │ │ │ │ │ +00011750: 2a20 536f 636b 6574 732e 5365 745f 4275 * Sockets.Set_Bu │ │ │ │ │ +00011760: 6666 6572 3a20 2020 2020 2020 2020 2020 ffer: │ │ │ │ │ +00011770: 2020 2020 2020 2020 2053 6574 5f42 7566 Set_Buf │ │ │ │ │ +00011780: 6665 7220 2870 726f 6365 6475 7265 292e fer (procedure). │ │ │ │ │ +00011790: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +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: 286c 696e 6520 3131 290a 2a20 536f 636b (line 11).* Sock │ │ │ │ │ +000117e0: 6574 732e 5368 7574 646f 776e 3a20 2020 ets.Shutdown: │ │ │ │ │ 000117f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011800: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011810: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ -00011820: 6e65 2032 3029 0a2a 2053 6f63 6b65 745f ne 20).* Socket_ │ │ │ │ │ -00011830: 4572 726f 723a 2020 2020 2020 2020 2020 Error: │ │ │ │ │ -00011840: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011850: 4269 6e64 2028 7072 6f63 6564 7572 6529 Bind (procedure) │ │ │ │ │ -00011860: 2e20 2020 2020 286c 696e 6520 3330 290a . (line 30). │ │ │ │ │ -00011870: 2a20 536f 636b 6574 5f45 7272 6f72 203c * Socket_Error < │ │ │ │ │ -00011880: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ -00011890: 2020 2020 2020 2020 2043 6f6e 6e65 6374 Connect │ │ │ │ │ -000118a0: 2028 7072 6f63 6564 7572 6529 2e20 2028 (procedure). ( │ │ │ │ │ -000118b0: 6c69 6e65 2032 3729 0a2a 2053 6f63 6b65 line 27).* Socke │ │ │ │ │ -000118c0: 745f 4644 3a20 2020 2020 2020 2020 2020 t_FD: │ │ │ │ │ -000118d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000118e0: 2020 5365 7474 696e 6720 7570 2075 6e69 Setting up uni │ │ │ │ │ -000118f0: 6361 7374 2073 6f63 6b65 7473 2e0a 2020 cast sockets.. │ │ │ │ │ -00011900: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011800: 2020 2053 6875 7464 6f77 6e20 2870 726f Shutdown (pro │ │ │ │ │ +00011810: 6365 6475 7265 292e 2028 6c69 6e65 2031 cedure). (line 1 │ │ │ │ │ +00011820: 3129 0a2a 2053 6f63 6b65 7473 2e53 6f63 1).* Sockets.Soc │ │ │ │ │ +00011830: 6b65 743a 2020 2020 2020 2020 2020 2020 ket: │ │ │ │ │ +00011840: 2020 2020 2020 2020 2020 2020 5365 7474 Sett │ │ │ │ │ +00011850: 696e 6720 7570 2075 6e69 6361 7374 2073 ing up unicast s │ │ │ │ │ +00011860: 6f63 6b65 7473 2e0a 2020 2020 2020 2020 ockets.. │ │ │ │ │ +00011870: 2020 2020 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 2028 6c69 6e65 2020 3629 (line 6) │ │ │ │ │ +000118b0: 0a2a 2053 6f63 6b65 7473 2e53 6f63 6b65 .* Sockets.Socke │ │ │ │ │ +000118c0: 7420 3c31 3e3a 2020 2020 2020 2020 2020 t <1>: │ │ │ │ │ +000118d0: 2020 2020 2020 2020 2020 536f 636b 6574 Socket │ │ │ │ │ +000118e0: 2028 7072 6f63 6564 7572 6529 2e20 2020 (procedure). │ │ │ │ │ +000118f0: 286c 696e 6520 3132 290a 2a20 536f 636b (line 12).* Sock │ │ │ │ │ +00011900: 6574 732e 534f 4c5f 534f 434b 4554 3a20 ets.SOL_SOCKET: │ │ │ │ │ 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 2028 6c69 (li │ │ │ │ │ -00011940: 6e65 2020 3629 0a2a 2053 6f63 6b65 745f ne 6).* Socket_ │ │ │ │ │ -00011950: 4644 203c 313e 3a20 2020 2020 2020 2020 FD <1>: │ │ │ │ │ +00011920: 2020 2047 6574 736f 636b 6f70 7420 2870 Getsockopt (p │ │ │ │ │ +00011930: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +00011940: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011970: 536f 636b 6574 7320 7061 636b 6167 652e Sockets package. │ │ │ │ │ -00011980: 2020 2020 2020 286c 696e 6520 2039 290a (line 9). │ │ │ │ │ -00011990: 2a20 534f 434b 5f44 4752 414d 3a20 2020 * SOCK_DGRAM: │ │ │ │ │ -000119a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000119b0: 2020 2020 2020 2020 2053 6f63 6b65 7420 Socket │ │ │ │ │ -000119c0: 2870 726f 6365 6475 7265 292e 2020 2028 (procedure). ( │ │ │ │ │ -000119d0: 6c69 6e65 2031 3929 0a2a 2053 4f43 4b5f line 19).* SOCK_ │ │ │ │ │ -000119e0: 5354 5245 414d 3a20 2020 2020 2020 2020 STREAM: │ │ │ │ │ +00011970: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +00011980: 3230 290a 2a20 536f 636b 6574 732e 534f 20).* Sockets.SO │ │ │ │ │ +00011990: 4c5f 534f 434b 4554 203c 313e 3a20 2020 L_SOCKET <1>: │ │ │ │ │ +000119a0: 2020 2020 2020 2020 2020 2020 2053 6574 Set │ │ │ │ │ +000119b0: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +000119c0: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +000119d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000119e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 000119f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011a00: 2020 536f 636b 6574 2028 7072 6f63 6564 Socket (proced │ │ │ │ │ -00011a10: 7572 6529 2e20 2020 286c 696e 6520 3139 ure). (line 19 │ │ │ │ │ -00011a20: 290a 2a20 534f 4c5f 534f 434b 4554 3a20 ).* SOL_SOCKET: │ │ │ │ │ -00011a30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011a40: 2020 2020 2020 2020 2020 2047 6574 736f Getso │ │ │ │ │ -00011a50: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ -00011a60: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +00011a00: 2020 2020 286c 696e 6520 3230 290a 2a20 (line 20).* │ │ │ │ │ +00011a10: 536f 636b 6574 732e 534f 5f52 4356 4255 Sockets.SO_RCVBU │ │ │ │ │ +00011a20: 463a 2020 2020 2020 2020 2020 2020 2020 F: │ │ │ │ │ +00011a30: 2020 2020 2020 2047 6574 736f 636b 6f70 Getsockop │ │ │ │ │ +00011a40: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +00011a50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011a60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011a70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011a80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011a90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011aa0: 2020 286c 696e 6520 3230 290a 2a20 534f (line 20).* SO │ │ │ │ │ -00011ab0: 4c5f 534f 434b 4554 203c 313e 3a20 2020 L_SOCKET <1>: │ │ │ │ │ -00011ac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011ad0: 2020 2020 2053 6574 736f 636b 6f70 7420 Setsockopt │ │ │ │ │ -00011ae0: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +00011a80: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +00011a90: 696e 6520 3230 290a 2a20 536f 636b 6574 ine 20).* Socket │ │ │ │ │ +00011aa0: 732e 534f 5f52 4356 4255 4620 3c31 3e3a s.SO_RCVBUF <1>: │ │ │ │ │ +00011ab0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011ac0: 2053 6574 736f 636b 6f70 7420 2870 726f Setsockopt (pro │ │ │ │ │ +00011ad0: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +00011ae0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011af0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011b00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011b10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011b20: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00011b30: 6520 3230 290a 2a20 534f 5f52 4356 4255 e 20).* SO_RCVBU │ │ │ │ │ -00011b40: 463a 2020 2020 2020 2020 2020 2020 2020 F: │ │ │ │ │ -00011b50: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ -00011b60: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ -00011b70: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +00011b10: 2020 2020 2020 2020 286c 696e 6520 3230 (line 20 │ │ │ │ │ +00011b20: 290a 2a20 536f 636b 6574 732e 534f 5f52 ).* Sockets.SO_R │ │ │ │ │ +00011b30: 4555 5345 4144 4452 3a20 2020 2020 2020 EUSEADDR: │ │ │ │ │ +00011b40: 2020 2020 2020 2020 2020 2047 6574 736f Getso │ │ │ │ │ +00011b50: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ +00011b60: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +00011b70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011b80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011ba0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011bb0: 2020 2020 2020 286c 696e 6520 3230 290a (line 20). │ │ │ │ │ -00011bc0: 2a20 534f 5f52 4356 4255 4620 3c31 3e3a * SO_RCVBUF <1>: │ │ │ │ │ -00011bd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011be0: 2020 2020 2020 2020 2053 6574 736f 636b Setsock │ │ │ │ │ -00011bf0: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ -00011c00: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00011ba0: 2020 286c 696e 6520 3230 290a 2a20 536f (line 20).* So │ │ │ │ │ +00011bb0: 636b 6574 732e 534f 5f52 4555 5345 4144 ckets.SO_REUSEAD │ │ │ │ │ +00011bc0: 4452 203c 313e 3a20 2020 2020 2020 2020 DR <1>: │ │ │ │ │ +00011bd0: 2020 2020 2053 6574 736f 636b 6f70 7420 Setsockopt │ │ │ │ │ +00011be0: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ +00011bf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011c00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011c10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011c20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011c30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011c40: 286c 696e 6520 3230 290a 2a20 534f 5f52 (line 20).* SO_R │ │ │ │ │ -00011c50: 4555 5345 4144 4452 3a20 2020 2020 2020 EUSEADDR: │ │ │ │ │ -00011c60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011c70: 2020 2047 6574 736f 636b 6f70 7420 2870 Getsockopt (p │ │ │ │ │ -00011c80: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +00011c20: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ +00011c30: 6520 3230 290a 2a20 536f 636b 6574 732e e 20).* Sockets. │ │ │ │ │ +00011c40: 534f 5f52 4555 5345 504f 5254 3a20 2020 SO_REUSEPORT: │ │ │ │ │ +00011c50: 2020 2020 2020 2020 2020 2020 2020 2047 G │ │ │ │ │ +00011c60: 6574 736f 636b 6f70 7420 2870 726f 6365 etsockopt (proce │ │ │ │ │ +00011c70: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +00011c80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011c90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011ca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011cb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011cc0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ -00011cd0: 3230 290a 2a20 534f 5f52 4555 5345 4144 20).* SO_REUSEAD │ │ │ │ │ -00011ce0: 4452 203c 313e 3a20 2020 2020 2020 2020 DR <1>: │ │ │ │ │ -00011cf0: 2020 2020 2020 2020 2020 2020 2053 6574 Set │ │ │ │ │ -00011d00: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ -00011d10: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +00011cb0: 2020 2020 2020 286c 696e 6520 3230 290a (line 20). │ │ │ │ │ +00011cc0: 2a20 536f 636b 6574 732e 534f 5f52 4555 * Sockets.SO_REU │ │ │ │ │ +00011cd0: 5345 504f 5254 203c 313e 3a20 2020 2020 SEPORT <1>: │ │ │ │ │ +00011ce0: 2020 2020 2020 2020 2053 6574 736f 636b Setsock │ │ │ │ │ +00011cf0: 6f70 7420 2870 726f 6365 6475 7265 292e opt (procedure). │ │ │ │ │ +00011d00: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00011d10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011d20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011d30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011d40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011d50: 2020 2020 286c 696e 6520 3230 290a 2a20 (line 20).* │ │ │ │ │ -00011d60: 534f 5f52 4555 5345 504f 5254 3a20 2020 SO_REUSEPORT: │ │ │ │ │ -00011d70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011d80: 2020 2020 2020 2047 6574 736f 636b 6f70 Getsockop │ │ │ │ │ -00011d90: 7420 2870 726f 6365 6475 7265 292e 0a20 t (procedure).. │ │ │ │ │ +00011d40: 286c 696e 6520 3230 290a 2a20 536f 636b (line 20).* Sock │ │ │ │ │ +00011d50: 6574 732e 534f 5f53 4e44 4255 463a 2020 ets.SO_SNDBUF: │ │ │ │ │ +00011d60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011d70: 2020 2047 6574 736f 636b 6f70 7420 2870 Getsockopt (p │ │ │ │ │ +00011d80: 726f 6365 6475 7265 292e 0a20 2020 2020 rocedure).. │ │ │ │ │ +00011d90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011da0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011db0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011dc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011dd0: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ -00011de0: 696e 6520 3230 290a 2a20 534f 5f52 4555 ine 20).* SO_REU │ │ │ │ │ -00011df0: 5345 504f 5254 203c 313e 3a20 2020 2020 SEPORT <1>: │ │ │ │ │ -00011e00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011e10: 2053 6574 736f 636b 6f70 7420 2870 726f Setsockopt (pro │ │ │ │ │ -00011e20: 6365 6475 7265 292e 0a20 2020 2020 2020 cedure).. │ │ │ │ │ +00011dc0: 2020 2020 2020 2020 2020 286c 696e 6520 (line │ │ │ │ │ +00011dd0: 3230 290a 2a20 536f 636b 6574 732e 534f 20).* Sockets.SO │ │ │ │ │ +00011de0: 5f53 4e44 4255 4620 3c31 3e3a 2020 2020 _SNDBUF <1>: │ │ │ │ │ +00011df0: 2020 2020 2020 2020 2020 2020 2053 6574 Set │ │ │ │ │ +00011e00: 736f 636b 6f70 7420 2870 726f 6365 6475 sockopt (procedu │ │ │ │ │ +00011e10: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +00011e20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011e30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011e40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011e50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011e60: 2020 2020 2020 2020 286c 696e 6520 3230 (line 20 │ │ │ │ │ -00011e70: 290a 2a20 534f 5f53 4e44 4255 463a 2020 ).* SO_SNDBUF: │ │ │ │ │ -00011e80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011e90: 2020 2020 2020 2020 2020 2047 6574 736f Getso │ │ │ │ │ -00011ea0: 636b 6f70 7420 2870 726f 6365 6475 7265 ckopt (procedure │ │ │ │ │ -00011eb0: 292e 0a20 2020 2020 2020 2020 2020 2020 ).. │ │ │ │ │ +00011e50: 2020 2020 286c 696e 6520 3230 290a 2a20 (line 20).* │ │ │ │ │ +00011e60: 536f 636b 6574 732e 556e 7365 745f 4275 Sockets.Unset_Bu │ │ │ │ │ +00011e70: 6666 6572 3a20 2020 2020 2020 2020 2020 ffer: │ │ │ │ │ +00011e80: 2020 2020 2020 2055 6e73 6574 5f42 7566 Unset_Buf │ │ │ │ │ +00011e90: 6665 7220 2870 726f 6365 6475 7265 292e fer (procedure). │ │ │ │ │ +00011ea0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ +00011eb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011ec0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011ed0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011ee0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011ef0: 2020 286c 696e 6520 3230 290a 2a20 534f (line 20).* SO │ │ │ │ │ -00011f00: 5f53 4e44 4255 4620 3c31 3e3a 2020 2020 _SNDBUF <1>: │ │ │ │ │ -00011f10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011f20: 2020 2020 2053 6574 736f 636b 6f70 7420 Setsockopt │ │ │ │ │ -00011f30: 2870 726f 6365 6475 7265 292e 0a20 2020 (procedure).. │ │ │ │ │ -00011f40: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011f50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011f60: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00011f70: 2020 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00011f80: 6520 3230 290a 2a20 5374 7265 616d 5f45 e 20).* Stream_E │ │ │ │ │ -00011f90: 6c65 6d65 6e74 5f41 7272 6179 3a20 2020 lement_Array: │ │ │ │ │ -00011fa0: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ │ -00011fb0: 6177 2064 6174 6120 6d61 6e69 7075 6c61 aw data manipula │ │ │ │ │ -00011fc0: 7469 6f6e 2e0a 2020 2020 2020 2020 2020 tion.. │ │ │ │ │ +00011ee0: 286c 696e 6520 3131 290a 2a20 536f 636b (line 11).* Sock │ │ │ │ │ +00011ef0: 6574 5f45 7272 6f72 3a20 2020 2020 2020 et_Error: │ │ │ │ │ +00011f00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011f10: 2020 2042 696e 6420 2870 726f 6365 6475 Bind (procedu │ │ │ │ │ +00011f20: 7265 292e 2020 2020 2028 6c69 6e65 2033 re). (line 3 │ │ │ │ │ +00011f30: 3029 0a2a 2053 6f63 6b65 745f 4572 726f 0).* Socket_Erro │ │ │ │ │ +00011f40: 7220 3c31 3e3a 2020 2020 2020 2020 2020 r <1>: │ │ │ │ │ +00011f50: 2020 2020 2020 2020 2020 2020 436f 6e6e Conn │ │ │ │ │ +00011f60: 6563 7420 2870 726f 6365 6475 7265 292e ect (procedure). │ │ │ │ │ +00011f70: 2020 286c 696e 6520 3237 290a 2a20 536f (line 27).* So │ │ │ │ │ +00011f80: 636b 6574 5f46 443a 2020 2020 2020 2020 cket_FD: │ │ │ │ │ +00011f90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00011fa0: 2020 2020 2053 6574 7469 6e67 2075 7020 Setting up │ │ │ │ │ +00011fb0: 756e 6963 6173 7420 736f 636b 6574 732e unicast sockets. │ │ │ │ │ +00011fc0: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ │ 00011fd0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011fe0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00011ff0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012000: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ │ -00012010: 2053 7472 6561 6d5f 456c 656d 656e 745f Stream_Element_ │ │ │ │ │ -00012020: 4172 7261 7920 3c31 3e3a 2020 2020 2020 Array <1>: │ │ │ │ │ -00012030: 2020 2020 2020 2020 5265 6365 6976 6520 Receive │ │ │ │ │ -00012040: 2866 756e 6374 696f 6e29 2e20 2020 286c (function). (l │ │ │ │ │ -00012050: 696e 6520 3232 290a 2a20 5374 7265 616d ine 22).* Stream │ │ │ │ │ -00012060: 5f45 6c65 6d65 6e74 5f41 7272 6179 203c _Element_Array < │ │ │ │ │ -00012070: 323e 3a20 2020 2020 2020 2020 2020 2020 2>: │ │ │ │ │ -00012080: 2052 6563 6569 7665 2028 7072 6f63 6564 Receive (proced │ │ │ │ │ -00012090: 7572 6529 2e20 2028 6c69 6e65 2031 3829 ure). (line 18) │ │ │ │ │ -000120a0: 0a2a 2053 7472 6561 6d5f 456c 656d 656e .* Stream_Elemen │ │ │ │ │ -000120b0: 745f 4172 7261 7920 3c33 3e3a 2020 2020 t_Array <3>: │ │ │ │ │ -000120c0: 2020 2020 2020 2020 2020 5265 6365 6976 Receiv │ │ │ │ │ -000120d0: 655f 536f 6d65 2028 7072 6f63 6564 7572 e_Some (procedur │ │ │ │ │ -000120e0: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ -000120f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012100: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012110: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012120: 2020 2028 6c69 6e65 2032 3129 0a2a 2053 (line 21).* S │ │ │ │ │ -00012130: 7472 6561 6d5f 456c 656d 656e 745f 4172 tream_Element_Ar │ │ │ │ │ -00012140: 7261 7920 3c34 3e3a 2020 2020 2020 2020 ray <4>: │ │ │ │ │ -00012150: 2020 2020 2020 5365 6e64 2028 7072 6f63 Send (proc │ │ │ │ │ -00012160: 6564 7572 6529 2e20 2020 2020 286c 696e edure). (lin │ │ │ │ │ -00012170: 6520 3137 290a 2a20 5374 7265 616d 5f45 e 17).* Stream_E │ │ │ │ │ -00012180: 6c65 6d65 6e74 5f43 6f75 6e74 3a20 2020 lement_Count: │ │ │ │ │ -00012190: 2020 2020 2020 2020 2020 2020 2020 2052 R │ │ │ │ │ -000121a0: 6563 6569 7665 2028 6675 6e63 7469 6f6e eceive (function │ │ │ │ │ -000121b0: 292e 2020 2028 6c69 6e65 2032 3229 0a2a ). (line 22).* │ │ │ │ │ -000121c0: 2053 7472 6561 6d5f 456c 656d 656e 745f Stream_Element_ │ │ │ │ │ -000121d0: 436f 756e 7420 3c31 3e3a 2020 2020 2020 Count <1>: │ │ │ │ │ -000121e0: 2020 2020 2020 2020 5265 6365 6976 655f Receive_ │ │ │ │ │ -000121f0: 536f 6d65 2028 7072 6f63 6564 7572 6529 Some (procedure) │ │ │ │ │ -00012200: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +00012000: 286c 696e 6520 2036 290a 2a20 536f 636b (line 6).* Sock │ │ │ │ │ +00012010: 6574 5f46 4420 3c31 3e3a 2020 2020 2020 et_FD <1>: │ │ │ │ │ +00012020: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012030: 2020 2053 6f63 6b65 7473 2070 6163 6b61 Sockets packa │ │ │ │ │ +00012040: 6765 2e20 2020 2020 2028 6c69 6e65 2020 ge. (line │ │ │ │ │ +00012050: 3929 0a2a 2053 4f43 4b5f 4447 5241 4d3a 9).* SOCK_DGRAM: │ │ │ │ │ +00012060: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012070: 2020 2020 2020 2020 2020 2020 536f 636b Sock │ │ │ │ │ +00012080: 6574 2028 7072 6f63 6564 7572 6529 2e20 et (procedure). │ │ │ │ │ +00012090: 2020 286c 696e 6520 3139 290a 2a20 534f (line 19).* SO │ │ │ │ │ +000120a0: 434b 5f53 5452 4541 4d3a 2020 2020 2020 CK_STREAM: │ │ │ │ │ +000120b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000120c0: 2020 2020 2053 6f63 6b65 7420 2870 726f Socket (pro │ │ │ │ │ +000120d0: 6365 6475 7265 292e 2020 2028 6c69 6e65 cedure). (line │ │ │ │ │ +000120e0: 2031 3929 0a2a 2053 4f4c 5f53 4f43 4b45 19).* SOL_SOCKE │ │ │ │ │ +000120f0: 543a 2020 2020 2020 2020 2020 2020 2020 T: │ │ │ │ │ +00012100: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ +00012110: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ +00012120: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ +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 2028 6c69 6e65 2032 3029 0a2a (line 20).* │ │ │ │ │ +00012170: 2053 4f4c 5f53 4f43 4b45 5420 3c31 3e3a SOL_SOCKET <1>: │ │ │ │ │ +00012180: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012190: 2020 2020 2020 2020 5365 7473 6f63 6b6f Setsocko │ │ │ │ │ +000121a0: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ +000121b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000121c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000121d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000121e0: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +000121f0: 6c69 6e65 2032 3029 0a2a 2053 4f5f 5243 line 20).* SO_RC │ │ │ │ │ +00012200: 5642 5546 3a20 2020 2020 2020 2020 2020 VBUF: │ │ │ │ │ 00012210: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012220: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012230: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012240: 2028 6c69 6e65 2032 3129 0a2a 2053 7472 (line 21).* Str │ │ │ │ │ -00012250: 696e 675f 4163 6365 7373 3a20 2020 2020 ing_Access: │ │ │ │ │ +00012220: 2020 4765 7473 6f63 6b6f 7074 2028 7072 Getsockopt (pr │ │ │ │ │ +00012230: 6f63 6564 7572 6529 2e0a 2020 2020 2020 ocedure).. │ │ │ │ │ +00012240: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012250: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00012260: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012270: 2020 2020 536f 636b 6574 732e 4e61 6d69 Sockets.Nami │ │ │ │ │ -00012280: 6e67 2070 6163 6b61 6765 2e0a 2020 2020 ng package.. │ │ │ │ │ -00012290: 2020 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 2028 6c69 6e65 (line │ │ │ │ │ -000122d0: 2033 3429 0a2a 2053 7472 696e 675f 4172 34).* String_Ar │ │ │ │ │ -000122e0: 7261 793a 2020 2020 2020 2020 2020 2020 ray: │ │ │ │ │ -000122f0: 2020 2020 2020 2020 2020 2020 2020 536f So │ │ │ │ │ -00012300: 636b 6574 732e 4e61 6d69 6e67 2070 6163 ckets.Naming pac │ │ │ │ │ -00012310: 6b61 6765 2e0a 2020 2020 2020 2020 2020 kage.. │ │ │ │ │ +00012270: 2020 2020 2020 2020 2028 6c69 6e65 2032 (line 2 │ │ │ │ │ +00012280: 3029 0a2a 2053 4f5f 5243 5642 5546 203c 0).* SO_RCVBUF < │ │ │ │ │ +00012290: 313e 3a20 2020 2020 2020 2020 2020 2020 1>: │ │ │ │ │ +000122a0: 2020 2020 2020 2020 2020 2020 5365 7473 Sets │ │ │ │ │ +000122b0: 6f63 6b6f 7074 2028 7072 6f63 6564 7572 ockopt (procedur │ │ │ │ │ +000122c0: 6529 2e0a 2020 2020 2020 2020 2020 2020 e).. │ │ │ │ │ +000122d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000122e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000122f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012300: 2020 2028 6c69 6e65 2032 3029 0a2a 2053 (line 20).* S │ │ │ │ │ +00012310: 4f5f 5245 5553 4541 4444 523a 2020 2020 O_REUSEADDR: │ │ │ │ │ 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 2028 6c69 6e65 2033 3729 0a2a (line 37).* │ │ │ │ │ -00012360: 2053 7567 6765 7374 696e 6720 6120 6665 Suggesting a fe │ │ │ │ │ -00012370: 6174 7572 653a 2020 2020 2020 2020 2020 ature: │ │ │ │ │ -00012380: 2020 2020 2020 2020 5265 736f 7572 6365 Resource │ │ │ │ │ -00012390: 7320 6f6e 2074 6865 2049 6e74 6572 6e65 s on the Interne │ │ │ │ │ -000123a0: 742e 0a20 2020 2020 2020 2020 2020 2020 t.. │ │ │ │ │ +00012330: 2020 2020 2020 4765 7473 6f63 6b6f 7074 Getsockopt │ │ │ │ │ +00012340: 2028 7072 6f63 6564 7572 6529 2e0a 2020 (procedure).. │ │ │ │ │ +00012350: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012360: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012370: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012380: 2020 2020 2020 2020 2020 2020 2028 6c69 (li │ │ │ │ │ +00012390: 6e65 2032 3029 0a2a 2053 4f5f 5245 5553 ne 20).* SO_REUS │ │ │ │ │ +000123a0: 4541 4444 5220 3c31 3e3a 2020 2020 2020 EADDR <1>: │ │ │ │ │ 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 286c 696e 6520 2036 290a 2a20 5443 (line 6).* TC │ │ │ │ │ -000123f0: 5020 736f 636b 6574 3a20 2020 2020 2020 P socket: │ │ │ │ │ +000123c0: 5365 7473 6f63 6b6f 7074 2028 7072 6f63 Setsockopt (proc │ │ │ │ │ +000123d0: 6564 7572 6529 2e0a 2020 2020 2020 2020 edure).. │ │ │ │ │ +000123e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000123f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00012400: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012410: 2020 2020 2053 6574 7469 6e67 2075 7020 Setting up │ │ │ │ │ -00012420: 756e 6963 6173 7420 736f 636b 6574 732e unicast sockets. │ │ │ │ │ -00012430: 0a20 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 2020 │ │ │ │ │ -00012470: 286c 696e 6520 2036 290a 2a20 5544 5020 (line 6).* UDP │ │ │ │ │ -00012480: 736f 636b 6574 3a20 2020 2020 2020 2020 socket: │ │ │ │ │ +00012410: 2020 2020 2020 2028 6c69 6e65 2032 3029 (line 20) │ │ │ │ │ +00012420: 0a2a 2053 4f5f 5245 5553 4550 4f52 543a .* SO_REUSEPORT: │ │ │ │ │ +00012430: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012440: 2020 2020 2020 2020 2020 4765 7473 6f63 Getsoc │ │ │ │ │ +00012450: 6b6f 7074 2028 7072 6f63 6564 7572 6529 kopt (procedure) │ │ │ │ │ +00012460: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +00012470: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012480: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 00012490: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000124a0: 2020 2053 6574 7469 6e67 2075 7020 756e Setting up un │ │ │ │ │ -000124b0: 6963 6173 7420 736f 636b 6574 732e 0a20 icast sockets.. │ │ │ │ │ +000124a0: 2028 6c69 6e65 2032 3029 0a2a 2053 4f5f (line 20).* SO_ │ │ │ │ │ +000124b0: 5245 5553 4550 4f52 5420 3c31 3e3a 2020 REUSEPORT <1>: │ │ │ │ │ 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 2020 2020 2020 286c (l │ │ │ │ │ -00012500: 696e 6520 2036 290a 2a20 556e 6963 6173 ine 6).* Unicas │ │ │ │ │ -00012510: 7420 736f 636b 6574 733a 2020 2020 2020 t sockets: │ │ │ │ │ -00012520: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -00012530: 2053 6574 7469 6e67 2075 7020 756e 6963 Setting up unic │ │ │ │ │ -00012540: 6173 7420 736f 636b 6574 732e 0a20 2020 ast sockets.. │ │ │ │ │ -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 2020 2020 2020 2020 2020 286c 696e (lin │ │ │ │ │ -00012590: 6520 2036 290a 2a20 5661 6c75 653a 2020 e 6).* Value: │ │ │ │ │ +000124d0: 2020 2020 5365 7473 6f63 6b6f 7074 2028 Setsockopt ( │ │ │ │ │ +000124e0: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ +000124f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012500: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012510: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012520: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +00012530: 2032 3029 0a2a 2053 4f5f 534e 4442 5546 20).* SO_SNDBUF │ │ │ │ │ +00012540: 3a20 2020 2020 2020 2020 2020 2020 2020 : │ │ │ │ │ +00012550: 2020 2020 2020 2020 2020 2020 2020 4765 Ge │ │ │ │ │ +00012560: 7473 6f63 6b6f 7074 2028 7072 6f63 6564 tsockopt (proced │ │ │ │ │ +00012570: 7572 6529 2e0a 2020 2020 2020 2020 2020 ure).. │ │ │ │ │ +00012580: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012590: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ 000125a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ -000125b0: 2020 2020 2020 2020 2020 2020 2020 2056 V │ │ │ │ │ -000125c0: 616c 7565 2028 6675 6e63 7469 6f6e 292e alue (function). │ │ │ │ │ -000125d0: 2020 2020 2028 6c69 6e65 2020 3929 0a0a (line 9).. │ │ │ │ │ -000125e0: 0a1f 0a54 6167 2054 6162 6c65 3a0a 4e6f ...Tag Table:.No │ │ │ │ │ -000125f0: 6465 3a20 546f 707f 3831 370a 4e6f 6465 de: Top.817.Node │ │ │ │ │ -00012600: 3a20 5768 6174 2069 7320 4164 6153 6f63 : What is AdaSoc │ │ │ │ │ -00012610: 6b65 7473 3f7f 3133 3930 0a4e 6f64 653a kets?.1390.Node: │ │ │ │ │ -00012620: 2049 6e73 7461 6c6c 696e 6720 4164 6153 Installing AdaS │ │ │ │ │ -00012630: 6f63 6b65 7473 7f32 3238 330a 4e6f 6465 ockets.2283.Node │ │ │ │ │ -00012640: 3a20 5573 696e 6720 4164 6153 6f63 6b65 : Using AdaSocke │ │ │ │ │ -00012650: 7473 7f33 3237 300a 4e6f 6465 3a20 436f ts.3270.Node: Co │ │ │ │ │ -00012660: 6d70 696c 696e 6720 616e 2041 6461 2061 mpiling an Ada a │ │ │ │ │ -00012670: 7070 6c69 6361 7469 6f6e 7f33 3536 310a pplication.3561. │ │ │ │ │ -00012680: 4e6f 6465 3a20 5365 7474 696e 6720 7570 Node: Setting up │ │ │ │ │ -00012690: 2075 6e69 6361 7374 2073 6f63 6b65 7473 unicast sockets │ │ │ │ │ -000126a0: 7f34 3138 380a 4e6f 6465 3a20 5365 7474 .4188.Node: Sett │ │ │ │ │ -000126b0: 696e 6720 7570 206d 756c 7469 6361 7374 ing up multicast │ │ │ │ │ -000126c0: 2073 6f63 6b65 7473 7f35 3439 340a 4e6f sockets.5494.No │ │ │ │ │ -000126d0: 6465 3a20 5365 6e64 696e 6720 616e 6420 de: Sending and │ │ │ │ │ -000126e0: 7265 6365 6976 696e 6720 6461 7461 7f36 receiving data.6 │ │ │ │ │ -000126f0: 3832 330a 4e6f 6465 3a20 5261 7720 6461 823.Node: Raw da │ │ │ │ │ -00012700: 7461 206d 616e 6970 756c 6174 696f 6e7f ta manipulation. │ │ │ │ │ -00012710: 3731 3835 0a4e 6f64 653a 2053 7472 696e 7185.Node: Strin │ │ │ │ │ -00012720: 672d 6f72 6965 6e74 6564 2065 7863 6861 g-oriented excha │ │ │ │ │ -00012730: 6e67 6573 7f37 3538 350a 4e6f 6465 3a20 nges.7585.Node: │ │ │ │ │ -00012740: 536f 636b 6574 7320 7061 636b 6167 657f Sockets package. │ │ │ │ │ -00012750: 3836 3832 0a4e 6f64 653a 2041 6363 6570 8682.Node: Accep │ │ │ │ │ -00012760: 745f 536f 636b 6574 2028 7072 6f63 6564 t_Socket (proced │ │ │ │ │ -00012770: 7572 6529 7f31 3039 3439 0a4e 6f64 653a ure).10949.Node: │ │ │ │ │ -00012780: 2042 696e 6420 2870 726f 6365 6475 7265 Bind (procedure │ │ │ │ │ -00012790: 297f 3133 3331 390a 4e6f 6465 3a20 436f ).13319.Node: Co │ │ │ │ │ -000127a0: 6e6e 6563 7420 2870 726f 6365 6475 7265 nnect (procedure │ │ │ │ │ -000127b0: 297f 3134 3539 320a 4e6f 6465 3a20 4765 ).14592.Node: Ge │ │ │ │ │ -000127c0: 7420 2866 756e 6374 696f 6e29 7f31 3630 t (function).160 │ │ │ │ │ -000127d0: 3130 0a4e 6f64 653a 2047 6574 5f43 6861 10.Node: Get_Cha │ │ │ │ │ -000127e0: 7220 2866 756e 6374 696f 6e29 7f31 3732 r (function).172 │ │ │ │ │ -000127f0: 3037 0a4e 6f64 653a 2047 6574 5f4c 696e 07.Node: Get_Lin │ │ │ │ │ -00012800: 6520 2866 756e 6374 696f 6e29 7f31 3830 e (function).180 │ │ │ │ │ -00012810: 3638 0a4e 6f64 653a 2047 6574 5f4c 696e 68.Node: Get_Lin │ │ │ │ │ -00012820: 6520 2870 726f 6365 6475 7265 297f 3139 e (procedure).19 │ │ │ │ │ -00012830: 3337 350a 4e6f 6465 3a20 4765 745f 5265 375.Node: Get_Re │ │ │ │ │ -00012840: 6365 6976 655f 5175 6575 655f 5369 7a65 ceive_Queue_Size │ │ │ │ │ -00012850: 2028 6675 6e63 7469 6f6e 297f 3230 3534 (function).2054 │ │ │ │ │ -00012860: 300a 4e6f 6465 3a20 4765 745f 5365 6e64 0.Node: Get_Send │ │ │ │ │ -00012870: 5f51 7565 7565 5f53 697a 6520 2866 756e _Queue_Size (fun │ │ │ │ │ -00012880: 6374 696f 6e29 7f32 3134 3038 0a4e 6f64 ction).21408.Nod │ │ │ │ │ -00012890: 653a 2047 6574 736f 636b 6f70 7420 2870 e: Getsockopt (p │ │ │ │ │ -000128a0: 726f 6365 6475 7265 297f 3232 3236 350a rocedure).22265. │ │ │ │ │ -000128b0: 4e6f 6465 3a20 4c69 7374 656e 2028 7072 Node: Listen (pr │ │ │ │ │ -000128c0: 6f63 6564 7572 6529 7f32 3335 3833 0a4e ocedure).23583.N │ │ │ │ │ -000128d0: 6f64 653a 204e 6577 5f4c 696e 6520 2870 ode: New_Line (p │ │ │ │ │ -000128e0: 726f 6365 6475 7265 297f 3234 3435 390a rocedure).24459. │ │ │ │ │ -000128f0: 4e6f 6465 3a20 5075 7420 2870 726f 6365 Node: Put (proce │ │ │ │ │ -00012900: 6475 7265 297f 3235 3138 310a 4e6f 6465 dure).25181.Node │ │ │ │ │ -00012910: 3a20 5075 745f 4c69 6e65 2028 7072 6f63 : Put_Line (proc │ │ │ │ │ -00012920: 6564 7572 6529 7f32 3539 3132 0a4e 6f64 edure).25912.Nod │ │ │ │ │ -00012930: 653a 2052 6563 6569 7665 2028 6675 6e63 e: Receive (func │ │ │ │ │ -00012940: 7469 6f6e 297f 3236 3639 380a 4e6f 6465 tion).26698.Node │ │ │ │ │ -00012950: 3a20 5265 6365 6976 6520 2870 726f 6365 : Receive (proce │ │ │ │ │ -00012960: 6475 7265 297f 3237 3930 370a 4e6f 6465 dure).27907.Node │ │ │ │ │ -00012970: 3a20 5265 6365 6976 655f 536f 6d65 2028 : Receive_Some ( │ │ │ │ │ -00012980: 7072 6f63 6564 7572 6529 7f32 3839 3330 procedure).28930 │ │ │ │ │ -00012990: 0a4e 6f64 653a 2053 656e 6420 2870 726f .Node: Send (pro │ │ │ │ │ -000129a0: 6365 6475 7265 297f 3330 3131 370a 4e6f cedure).30117.No │ │ │ │ │ -000129b0: 6465 3a20 5365 745f 4275 6666 6572 2028 de: Set_Buffer ( │ │ │ │ │ -000129c0: 7072 6f63 6564 7572 6529 7f33 3038 3536 procedure).30856 │ │ │ │ │ -000129d0: 0a4e 6f64 653a 2053 6574 736f 636b 6f70 .Node: Setsockop │ │ │ │ │ -000129e0: 7420 2870 726f 6365 6475 7265 297f 3332 t (procedure).32 │ │ │ │ │ -000129f0: 3036 390a 4e6f 6465 3a20 5368 7574 646f 069.Node: Shutdo │ │ │ │ │ -00012a00: 776e 2028 7072 6f63 6564 7572 6529 7f33 wn (procedure).3 │ │ │ │ │ -00012a10: 3333 3637 0a4e 6f64 653a 2053 6f63 6b65 3367.Node: Socke │ │ │ │ │ -00012a20: 7420 2870 726f 6365 6475 7265 297f 3334 t (procedure).34 │ │ │ │ │ -00012a30: 3030 350a 4e6f 6465 3a20 536f 636b 6574 005.Node: Socket │ │ │ │ │ -00012a40: 732e 4d75 6c74 6963 6173 7420 7061 636b s.Multicast pack │ │ │ │ │ -00012a50: 6167 657f 3334 3937 360a 4e6f 6465 3a20 age.34976.Node: │ │ │ │ │ -00012a60: 4372 6561 7465 5f4d 756c 7469 6361 7374 Create_Multicast │ │ │ │ │ -00012a70: 5f53 6f63 6b65 7420 2866 756e 6374 696f _Socket (functio │ │ │ │ │ -00012a80: 6e29 7f33 3538 3031 0a4e 6f64 653a 2053 n).35801.Node: S │ │ │ │ │ -00012a90: 6f63 6b65 7473 2e4e 616d 696e 6720 7061 ockets.Naming pa │ │ │ │ │ -00012aa0: 636b 6167 657f 3338 3736 310a 4e6f 6465 ckage.38761.Node │ │ │ │ │ -00012ab0: 3a20 4164 6472 6573 735f 4f66 2028 6675 : Address_Of (fu │ │ │ │ │ -00012ac0: 6e63 7469 6f6e 297f 3431 3237 320a 4e6f nction).41272.No │ │ │ │ │ -00012ad0: 6465 3a20 416e 795f 4164 6472 6573 7320 de: Any_Address │ │ │ │ │ -00012ae0: 2866 756e 6374 696f 6e29 7f34 3231 3632 (function).42162 │ │ │ │ │ -00012af0: 0a4e 6f64 653a 2047 6574 5f50 6565 725f .Node: Get_Peer_ │ │ │ │ │ -00012b00: 4164 6472 2028 6675 6e63 7469 6f6e 297f Addr (function). │ │ │ │ │ -00012b10: 3432 3537 330a 4e6f 6465 3a20 4765 745f 42573.Node: Get_ │ │ │ │ │ -00012b20: 5065 6572 5f50 6f72 7420 2866 756e 6374 Peer_Port (funct │ │ │ │ │ -00012b30: 696f 6e29 7f34 3331 3435 0a4e 6f64 653a ion).43145.Node: │ │ │ │ │ -00012b40: 2047 6574 5f53 6f63 6b5f 4164 6472 2028 Get_Sock_Addr ( │ │ │ │ │ -00012b50: 6675 6e63 7469 6f6e 297f 3433 3733 350a function).43735. │ │ │ │ │ -00012b60: 4e6f 6465 3a20 4765 745f 536f 636b 5f50 Node: Get_Sock_P │ │ │ │ │ -00012b70: 6f72 7420 2866 756e 6374 696f 6e29 7f34 ort (function).4 │ │ │ │ │ -00012b80: 3433 3237 0a4e 6f64 653a 2048 6f73 745f 4327.Node: Host_ │ │ │ │ │ -00012b90: 4e61 6d65 2028 6675 6e63 7469 6f6e 297f Name (function). │ │ │ │ │ -00012ba0: 3434 3931 310a 4e6f 6465 3a20 496d 6167 44911.Node: Imag │ │ │ │ │ -00012bb0: 6520 2866 756e 6374 696f 6e29 7f34 3534 e (function).454 │ │ │ │ │ -00012bc0: 3237 0a4e 6f64 653a 2049 6e66 6f5f 4f66 27.Node: Info_Of │ │ │ │ │ -00012bd0: 5f4e 616d 655f 4f72 5f49 5020 2866 756e _Name_Or_IP (fun │ │ │ │ │ -00012be0: 6374 696f 6e29 7f34 3539 3033 0a4e 6f64 ction).45903.Nod │ │ │ │ │ -00012bf0: 653a 2049 735f 4950 5f41 6464 7265 7373 e: Is_IP_Address │ │ │ │ │ -00012c00: 2028 6675 6e63 7469 6f6e 297f 3436 3632 (function).4662 │ │ │ │ │ -00012c10: 390a 4e6f 6465 3a20 4e61 6d65 5f4f 6620 9.Node: Name_Of │ │ │ │ │ -00012c20: 2866 756e 6374 696f 6e29 7f34 3731 3339 (function).47139 │ │ │ │ │ -00012c30: 0a4e 6f64 653a 2056 616c 7565 2028 6675 .Node: Value (fu │ │ │ │ │ -00012c40: 6e63 7469 6f6e 297f 3437 3732 320a 4e6f nction).47722.No │ │ │ │ │ -00012c50: 6465 3a20 436f 6e74 7269 6275 746f 7273 de: Contributors │ │ │ │ │ -00012c60: 7f34 3831 3734 0a4e 6f64 653a 2052 6573 .48174.Node: Res │ │ │ │ │ -00012c70: 6f75 7263 6573 206f 6e20 7468 6520 496e ources on the In │ │ │ │ │ -00012c80: 7465 726e 6574 7f34 3935 3539 0a4e 6f64 ternet.49559.Nod │ │ │ │ │ -00012c90: 653a 2049 6e64 6578 7f34 3939 3933 0a1f e: Index.49993.. │ │ │ │ │ -00012ca0: 0a45 6e64 2054 6167 2054 6162 6c65 0a0a .End Tag Table.. │ │ │ │ │ -00012cb0: 1f0a 4c6f 6361 6c20 5661 7269 6162 6c65 ..Local Variable │ │ │ │ │ -00012cc0: 733a 0a63 6f64 696e 673a 2075 7466 2d38 s:.coding: utf-8 │ │ │ │ │ -00012cd0: 0a45 6e64 3a0a .End:. │ │ │ │ │ +000125b0: 2020 2020 2028 6c69 6e65 2032 3029 0a2a (line 20).* │ │ │ │ │ +000125c0: 2053 4f5f 534e 4442 5546 203c 313e 3a20 SO_SNDBUF <1>: │ │ │ │ │ +000125d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000125e0: 2020 2020 2020 2020 5365 7473 6f63 6b6f Setsocko │ │ │ │ │ +000125f0: 7074 2028 7072 6f63 6564 7572 6529 2e0a pt (procedure).. │ │ │ │ │ +00012600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012610: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012620: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012630: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +00012640: 6c69 6e65 2032 3029 0a2a 2053 7472 6561 line 20).* Strea │ │ │ │ │ +00012650: 6d5f 456c 656d 656e 745f 4172 7261 793a m_Element_Array: │ │ │ │ │ +00012660: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012670: 2020 5261 7720 6461 7461 206d 616e 6970 Raw data manip │ │ │ │ │ +00012680: 756c 6174 696f 6e2e 0a20 2020 2020 2020 ulation.. │ │ │ │ │ +00012690: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000126a0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000126b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000126c0: 2020 2020 2020 2020 286c 696e 6520 2036 (line 6 │ │ │ │ │ +000126d0: 290a 2a20 5374 7265 616d 5f45 6c65 6d65 ).* Stream_Eleme │ │ │ │ │ +000126e0: 6e74 5f41 7272 6179 203c 313e 3a20 2020 nt_Array <1>: │ │ │ │ │ +000126f0: 2020 2020 2020 2020 2020 2052 6563 6569 Recei │ │ │ │ │ +00012700: 7665 2028 6675 6e63 7469 6f6e 292e 2020 ve (function). │ │ │ │ │ +00012710: 2028 6c69 6e65 2032 3229 0a2a 2053 7472 (line 22).* Str │ │ │ │ │ +00012720: 6561 6d5f 456c 656d 656e 745f 4172 7261 eam_Element_Arra │ │ │ │ │ +00012730: 7920 3c32 3e3a 2020 2020 2020 2020 2020 y <2>: │ │ │ │ │ +00012740: 2020 2020 5265 6365 6976 6520 2870 726f Receive (pro │ │ │ │ │ +00012750: 6365 6475 7265 292e 2020 286c 696e 6520 cedure). (line │ │ │ │ │ +00012760: 3138 290a 2a20 5374 7265 616d 5f45 6c65 18).* Stream_Ele │ │ │ │ │ +00012770: 6d65 6e74 5f41 7272 6179 203c 333e 3a20 ment_Array <3>: │ │ │ │ │ +00012780: 2020 2020 2020 2020 2020 2020 2052 6563 Rec │ │ │ │ │ +00012790: 6569 7665 5f53 6f6d 6520 2870 726f 6365 eive_Some (proce │ │ │ │ │ +000127a0: 6475 7265 292e 0a20 2020 2020 2020 2020 dure).. │ │ │ │ │ +000127b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000127c0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000127d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000127e0: 2020 2020 2020 286c 696e 6520 3231 290a (line 21). │ │ │ │ │ +000127f0: 2a20 5374 7265 616d 5f45 6c65 6d65 6e74 * Stream_Element │ │ │ │ │ +00012800: 5f41 7272 6179 203c 343e 3a20 2020 2020 _Array <4>: │ │ │ │ │ +00012810: 2020 2020 2020 2020 2053 656e 6420 2870 Send (p │ │ │ │ │ +00012820: 726f 6365 6475 7265 292e 2020 2020 2028 rocedure). ( │ │ │ │ │ +00012830: 6c69 6e65 2031 3729 0a2a 2053 7472 6561 line 17).* Strea │ │ │ │ │ +00012840: 6d5f 456c 656d 656e 745f 436f 756e 743a m_Element_Count: │ │ │ │ │ +00012850: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012860: 2020 5265 6365 6976 6520 2866 756e 6374 Receive (funct │ │ │ │ │ +00012870: 696f 6e29 2e20 2020 286c 696e 6520 3232 ion). (line 22 │ │ │ │ │ +00012880: 290a 2a20 5374 7265 616d 5f45 6c65 6d65 ).* Stream_Eleme │ │ │ │ │ +00012890: 6e74 5f43 6f75 6e74 203c 313e 3a20 2020 nt_Count <1>: │ │ │ │ │ +000128a0: 2020 2020 2020 2020 2020 2052 6563 6569 Recei │ │ │ │ │ +000128b0: 7665 5f53 6f6d 6520 2870 726f 6365 6475 ve_Some (procedu │ │ │ │ │ +000128c0: 7265 292e 0a20 2020 2020 2020 2020 2020 re).. │ │ │ │ │ +000128d0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000128e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000128f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012900: 2020 2020 286c 696e 6520 3231 290a 2a20 (line 21).* │ │ │ │ │ +00012910: 5374 7269 6e67 5f41 6363 6573 733a 2020 String_Access: │ │ │ │ │ +00012920: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012930: 2020 2020 2020 2053 6f63 6b65 7473 2e4e Sockets.N │ │ │ │ │ +00012940: 616d 696e 6720 7061 636b 6167 652e 0a20 aming package.. │ │ │ │ │ +00012950: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012960: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012970: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012980: 2020 2020 2020 2020 2020 2020 2020 286c (l │ │ │ │ │ +00012990: 696e 6520 3334 290a 2a20 5374 7269 6e67 ine 34).* String │ │ │ │ │ +000129a0: 5f41 7272 6179 3a20 2020 2020 2020 2020 _Array: │ │ │ │ │ +000129b0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000129c0: 2053 6f63 6b65 7473 2e4e 616d 696e 6720 Sockets.Naming │ │ │ │ │ +000129d0: 7061 636b 6167 652e 0a20 2020 2020 2020 package.. │ │ │ │ │ +000129e0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +000129f0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012a00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012a10: 2020 2020 2020 2020 286c 696e 6520 3337 (line 37 │ │ │ │ │ +00012a20: 290a 2a20 5375 6767 6573 7469 6e67 2061 ).* Suggesting a │ │ │ │ │ +00012a30: 2066 6561 7475 7265 3a20 2020 2020 2020 feature: │ │ │ │ │ +00012a40: 2020 2020 2020 2020 2020 2052 6573 6f75 Resou │ │ │ │ │ +00012a50: 7263 6573 206f 6e20 7468 6520 496e 7465 rces on the Inte │ │ │ │ │ +00012a60: 726e 6574 2e0a 2020 2020 2020 2020 2020 rnet.. │ │ │ │ │ +00012a70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012a80: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012a90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012aa0: 2020 2020 2028 6c69 6e65 2020 3629 0a2a (line 6).* │ │ │ │ │ +00012ab0: 2054 4350 2073 6f63 6b65 743a 2020 2020 TCP socket: │ │ │ │ │ +00012ac0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012ad0: 2020 2020 2020 2020 5365 7474 696e 6720 Setting │ │ │ │ │ +00012ae0: 7570 2075 6e69 6361 7374 2073 6f63 6b65 up unicast socke │ │ │ │ │ +00012af0: 7473 2e0a 2020 2020 2020 2020 2020 2020 ts.. │ │ │ │ │ +00012b00: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012b10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012b20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012b30: 2020 2028 6c69 6e65 2020 3629 0a2a 2055 (line 6).* U │ │ │ │ │ +00012b40: 4450 2073 6f63 6b65 743a 2020 2020 2020 DP socket: │ │ │ │ │ +00012b50: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012b60: 2020 2020 2020 5365 7474 696e 6720 7570 Setting up │ │ │ │ │ +00012b70: 2075 6e69 6361 7374 2073 6f63 6b65 7473 unicast sockets │ │ │ │ │ +00012b80: 2e0a 2020 2020 2020 2020 2020 2020 2020 .. │ │ │ │ │ +00012b90: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012ba0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012bb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012bc0: 2028 6c69 6e65 2020 3629 0a2a 2055 6e69 (line 6).* Uni │ │ │ │ │ +00012bd0: 6361 7374 2073 6f63 6b65 7473 3a20 2020 cast sockets: │ │ │ │ │ +00012be0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012bf0: 2020 2020 5365 7474 696e 6720 7570 2075 Setting up u │ │ │ │ │ +00012c00: 6e69 6361 7374 2073 6f63 6b65 7473 2e0a nicast sockets.. │ │ │ │ │ +00012c10: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c20: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c30: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c40: 2020 2020 2020 2020 2020 2020 2020 2028 ( │ │ │ │ │ +00012c50: 6c69 6e65 2020 3629 0a2a 2055 6e73 6574 line 6).* Unset │ │ │ │ │ +00012c60: 5f42 7566 6665 723a 2020 2020 2020 2020 _Buffer: │ │ │ │ │ +00012c70: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012c80: 2020 556e 7365 745f 4275 6666 6572 2028 Unset_Buffer ( │ │ │ │ │ +00012c90: 7072 6f63 6564 7572 6529 2e0a 2020 2020 procedure).. │ │ │ │ │ +00012ca0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012cb0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012cc0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012cd0: 2020 2020 2020 2020 2020 2028 6c69 6e65 (line │ │ │ │ │ +00012ce0: 2020 3929 0a2a 2056 616c 7565 3a20 2020 9).* Value: │ │ │ │ │ +00012cf0: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ │ +00012d00: 2020 2020 2020 2020 2020 2020 2020 5661 Va │ │ │ │ │ +00012d10: 6c75 6520 2866 756e 6374 696f 6e29 2e20 lue (function). │ │ │ │ │ +00012d20: 2020 2020 286c 696e 6520 2039 290a 0a0a (line 9)... │ │ │ │ │ +00012d30: 1f0a 5461 6720 5461 626c 653a 0a4e 6f64 ..Tag Table:.Nod │ │ │ │ │ +00012d40: 653a 2054 6f70 7f38 3137 0a4e 6f64 653a e: Top.817.Node: │ │ │ │ │ +00012d50: 2057 6861 7420 6973 2041 6461 536f 636b What is AdaSock │ │ │ │ │ +00012d60: 6574 733f 7f31 3339 300a 4e6f 6465 3a20 ets?.1390.Node: │ │ │ │ │ +00012d70: 496e 7374 616c 6c69 6e67 2041 6461 536f Installing AdaSo │ │ │ │ │ +00012d80: 636b 6574 737f 3232 3833 0a4e 6f64 653a ckets.2283.Node: │ │ │ │ │ +00012d90: 2055 7369 6e67 2041 6461 536f 636b 6574 Using AdaSocket │ │ │ │ │ +00012da0: 737f 3332 3730 0a4e 6f64 653a 2043 6f6d s.3270.Node: Com │ │ │ │ │ +00012db0: 7069 6c69 6e67 2061 6e20 4164 6120 6170 piling an Ada ap │ │ │ │ │ +00012dc0: 706c 6963 6174 696f 6e7f 3335 3631 0a4e plication.3561.N │ │ │ │ │ +00012dd0: 6f64 653a 2053 6574 7469 6e67 2075 7020 ode: Setting up │ │ │ │ │ +00012de0: 756e 6963 6173 7420 736f 636b 6574 737f unicast sockets. │ │ │ │ │ +00012df0: 3431 3838 0a4e 6f64 653a 2053 6574 7469 4188.Node: Setti │ │ │ │ │ +00012e00: 6e67 2075 7020 6d75 6c74 6963 6173 7420 ng up multicast │ │ │ │ │ +00012e10: 736f 636b 6574 737f 3534 3934 0a4e 6f64 sockets.5494.Nod │ │ │ │ │ +00012e20: 653a 2053 656e 6469 6e67 2061 6e64 2072 e: Sending and r │ │ │ │ │ +00012e30: 6563 6569 7669 6e67 2064 6174 617f 3638 eceiving data.68 │ │ │ │ │ +00012e40: 3233 0a4e 6f64 653a 2052 6177 2064 6174 23.Node: Raw dat │ │ │ │ │ +00012e50: 6120 6d61 6e69 7075 6c61 7469 6f6e 7f37 a manipulation.7 │ │ │ │ │ +00012e60: 3138 350a 4e6f 6465 3a20 5374 7269 6e67 185.Node: String │ │ │ │ │ +00012e70: 2d6f 7269 656e 7465 6420 6578 6368 616e -oriented exchan │ │ │ │ │ +00012e80: 6765 737f 3735 3835 0a4e 6f64 653a 2053 ges.7585.Node: S │ │ │ │ │ +00012e90: 6f63 6b65 7473 2070 6163 6b61 6765 7f38 ockets package.8 │ │ │ │ │ +00012ea0: 3638 320a 4e6f 6465 3a20 4163 6365 7074 682.Node: Accept │ │ │ │ │ +00012eb0: 5f53 6f63 6b65 7420 2870 726f 6365 6475 _Socket (procedu │ │ │ │ │ +00012ec0: 7265 297f 3130 3934 390a 4e6f 6465 3a20 re).10949.Node: │ │ │ │ │ +00012ed0: 4269 6e64 2028 7072 6f63 6564 7572 6529 Bind (procedure) │ │ │ │ │ +00012ee0: 7f31 3236 3332 0a4e 6f64 653a 2043 6f6e .12632.Node: Con │ │ │ │ │ +00012ef0: 6e65 6374 2028 7072 6f63 6564 7572 6529 nect (procedure) │ │ │ │ │ +00012f00: 7f31 3339 3035 0a4e 6f64 653a 2047 6574 .13905.Node: Get │ │ │ │ │ +00012f10: 2028 6675 6e63 7469 6f6e 297f 3135 3239 (function).1529 │ │ │ │ │ +00012f20: 300a 4e6f 6465 3a20 4765 745f 4368 6172 0.Node: Get_Char │ │ │ │ │ +00012f30: 2028 6675 6e63 7469 6f6e 297f 3136 3438 (function).1648 │ │ │ │ │ +00012f40: 370a 4e6f 6465 3a20 4765 745f 4c69 6e65 7.Node: Get_Line │ │ │ │ │ +00012f50: 2028 6675 6e63 7469 6f6e 297f 3137 3334 (function).1734 │ │ │ │ │ +00012f60: 380a 4e6f 6465 3a20 4765 745f 4c69 6e65 8.Node: Get_Line │ │ │ │ │ +00012f70: 2028 7072 6f63 6564 7572 6529 7f31 3836 (procedure).186 │ │ │ │ │ +00012f80: 3535 0a4e 6f64 653a 2047 6574 5f52 6563 55.Node: Get_Rec │ │ │ │ │ +00012f90: 6569 7665 5f51 7565 7565 5f53 697a 6520 eive_Queue_Size │ │ │ │ │ +00012fa0: 2866 756e 6374 696f 6e29 7f31 3938 3230 (function).19820 │ │ │ │ │ +00012fb0: 0a4e 6f64 653a 2047 6574 5f53 656e 645f .Node: Get_Send_ │ │ │ │ │ +00012fc0: 5175 6575 655f 5369 7a65 2028 6675 6e63 Queue_Size (func │ │ │ │ │ +00012fd0: 7469 6f6e 297f 3230 3638 380a 4e6f 6465 tion).20688.Node │ │ │ │ │ +00012fe0: 3a20 4765 7473 6f63 6b6f 7074 2028 7072 : Getsockopt (pr │ │ │ │ │ +00012ff0: 6f63 6564 7572 6529 7f32 3135 3435 0a4e ocedure).21545.N │ │ │ │ │ +00013000: 6f64 653a 204c 6973 7465 6e20 2870 726f ode: Listen (pro │ │ │ │ │ +00013010: 6365 6475 7265 297f 3232 3836 330a 4e6f cedure).22863.No │ │ │ │ │ +00013020: 6465 3a20 4e65 775f 4c69 6e65 2028 7072 de: New_Line (pr │ │ │ │ │ +00013030: 6f63 6564 7572 6529 7f32 3337 3339 0a4e ocedure).23739.N │ │ │ │ │ +00013040: 6f64 653a 2050 7574 2028 7072 6f63 6564 ode: Put (proced │ │ │ │ │ +00013050: 7572 6529 7f32 3434 3631 0a4e 6f64 653a ure).24461.Node: │ │ │ │ │ +00013060: 2050 7574 5f4c 696e 6520 2870 726f 6365 Put_Line (proce │ │ │ │ │ +00013070: 6475 7265 297f 3235 3139 320a 4e6f 6465 dure).25192.Node │ │ │ │ │ +00013080: 3a20 5265 6365 6976 6520 2866 756e 6374 : Receive (funct │ │ │ │ │ +00013090: 696f 6e29 7f32 3539 3738 0a4e 6f64 653a ion).25978.Node: │ │ │ │ │ +000130a0: 2052 6563 6569 7665 2028 7072 6f63 6564 Receive (proced │ │ │ │ │ +000130b0: 7572 6529 7f32 3731 3837 0a4e 6f64 653a ure).27187.Node: │ │ │ │ │ +000130c0: 2052 6563 6569 7665 5f53 6f6d 6520 2870 Receive_Some (p │ │ │ │ │ +000130d0: 726f 6365 6475 7265 297f 3238 3231 300a rocedure).28210. │ │ │ │ │ +000130e0: 4e6f 6465 3a20 5365 6e64 2028 7072 6f63 Node: Send (proc │ │ │ │ │ +000130f0: 6564 7572 6529 7f32 3933 3937 0a4e 6f64 edure).29397.Nod │ │ │ │ │ +00013100: 653a 2053 6574 5f42 7566 6665 7220 2870 e: Set_Buffer (p │ │ │ │ │ +00013110: 726f 6365 6475 7265 297f 3330 3133 360a rocedure).30136. │ │ │ │ │ +00013120: 4e6f 6465 3a20 5365 7473 6f63 6b6f 7074 Node: Setsockopt │ │ │ │ │ +00013130: 2028 7072 6f63 6564 7572 6529 7f33 3133 (procedure).313 │ │ │ │ │ +00013140: 3439 0a4e 6f64 653a 2053 6875 7464 6f77 49.Node: Shutdow │ │ │ │ │ +00013150: 6e20 2870 726f 6365 6475 7265 297f 3332 n (procedure).32 │ │ │ │ │ +00013160: 3634 370a 4e6f 6465 3a20 536f 636b 6574 647.Node: Socket │ │ │ │ │ +00013170: 2028 7072 6f63 6564 7572 6529 7f33 3332 (procedure).332 │ │ │ │ │ +00013180: 3835 0a4e 6f64 653a 2055 6e73 6574 5f42 85.Node: Unset_B │ │ │ │ │ +00013190: 7566 6665 7220 2870 726f 6365 6475 7265 uffer (procedure │ │ │ │ │ +000131a0: 297f 3334 3635 390a 4e6f 6465 3a20 536f ).34659.Node: So │ │ │ │ │ +000131b0: 636b 6574 732e 4d75 6c74 6963 6173 7420 ckets.Multicast │ │ │ │ │ +000131c0: 7061 636b 6167 657f 3335 3335 380a 4e6f package.35358.No │ │ │ │ │ +000131d0: 6465 3a20 4372 6561 7465 5f4d 756c 7469 de: Create_Multi │ │ │ │ │ +000131e0: 6361 7374 5f53 6f63 6b65 7420 2866 756e cast_Socket (fun │ │ │ │ │ +000131f0: 6374 696f 6e29 7f33 3631 3833 0a4e 6f64 ction).36183.Nod │ │ │ │ │ +00013200: 653a 2053 6f63 6b65 7473 2e4e 616d 696e e: Sockets.Namin │ │ │ │ │ +00013210: 6720 7061 636b 6167 657f 3430 3231 320a g package.40212. │ │ │ │ │ +00013220: 4e6f 6465 3a20 4164 6472 6573 735f 4f66 Node: Address_Of │ │ │ │ │ +00013230: 2028 6675 6e63 7469 6f6e 297f 3432 3732 (function).4272 │ │ │ │ │ +00013240: 330a 4e6f 6465 3a20 416e 795f 4164 6472 3.Node: Any_Addr │ │ │ │ │ +00013250: 6573 7320 2866 756e 6374 696f 6e29 7f34 ess (function).4 │ │ │ │ │ +00013260: 3336 3133 0a4e 6f64 653a 2047 6574 5f50 3613.Node: Get_P │ │ │ │ │ +00013270: 6565 725f 4164 6472 2028 6675 6e63 7469 eer_Addr (functi │ │ │ │ │ +00013280: 6f6e 297f 3434 3032 340a 4e6f 6465 3a20 on).44024.Node: │ │ │ │ │ +00013290: 4765 745f 5065 6572 5f50 6f72 7420 2866 Get_Peer_Port (f │ │ │ │ │ +000132a0: 756e 6374 696f 6e29 7f34 3435 3936 0a4e unction).44596.N │ │ │ │ │ +000132b0: 6f64 653a 2047 6574 5f53 6f63 6b5f 4164 ode: Get_Sock_Ad │ │ │ │ │ +000132c0: 6472 2028 6675 6e63 7469 6f6e 297f 3435 dr (function).45 │ │ │ │ │ +000132d0: 3138 360a 4e6f 6465 3a20 4765 745f 536f 186.Node: Get_So │ │ │ │ │ +000132e0: 636b 5f50 6f72 7420 2866 756e 6374 696f ck_Port (functio │ │ │ │ │ +000132f0: 6e29 7f34 3537 3738 0a4e 6f64 653a 2048 n).45778.Node: H │ │ │ │ │ +00013300: 6f73 745f 4e61 6d65 2028 6675 6e63 7469 ost_Name (functi │ │ │ │ │ +00013310: 6f6e 297f 3436 3336 320a 4e6f 6465 3a20 on).46362.Node: │ │ │ │ │ +00013320: 496d 6167 6520 2866 756e 6374 696f 6e29 Image (function) │ │ │ │ │ +00013330: 7f34 3638 3738 0a4e 6f64 653a 2049 6e66 .46878.Node: Inf │ │ │ │ │ +00013340: 6f5f 4f66 5f4e 616d 655f 4f72 5f49 5020 o_Of_Name_Or_IP │ │ │ │ │ +00013350: 2866 756e 6374 696f 6e29 7f34 3733 3534 (function).47354 │ │ │ │ │ +00013360: 0a4e 6f64 653a 2049 735f 4950 5f41 6464 .Node: Is_IP_Add │ │ │ │ │ +00013370: 7265 7373 2028 6675 6e63 7469 6f6e 297f ress (function). │ │ │ │ │ +00013380: 3438 3038 300a 4e6f 6465 3a20 4e61 6d65 48080.Node: Name │ │ │ │ │ +00013390: 5f4f 6620 2866 756e 6374 696f 6e29 7f34 _Of (function).4 │ │ │ │ │ +000133a0: 3835 3930 0a4e 6f64 653a 2056 616c 7565 8590.Node: Value │ │ │ │ │ +000133b0: 2028 6675 6e63 7469 6f6e 297f 3439 3137 (function).4917 │ │ │ │ │ +000133c0: 330a 4e6f 6465 3a20 436f 6e74 7269 6275 3.Node: Contribu │ │ │ │ │ +000133d0: 746f 7273 7f34 3936 3235 0a4e 6f64 653a tors.49625.Node: │ │ │ │ │ +000133e0: 2052 6573 6f75 7263 6573 206f 6e20 7468 Resources on th │ │ │ │ │ +000133f0: 6520 496e 7465 726e 6574 7f35 3130 3130 e Internet.51010 │ │ │ │ │ +00013400: 0a4e 6f64 653a 2049 6e64 6578 7f35 3134 .Node: Index.514 │ │ │ │ │ +00013410: 3434 0a1f 0a45 6e64 2054 6167 2054 6162 44...End Tag Tab │ │ │ │ │ +00013420: 6c65 0a0a 1f0a 4c6f 6361 6c20 5661 7269 le....Local Vari │ │ │ │ │ +00013430: 6162 6c65 733a 0a63 6f64 696e 673a 2075 ables:.coding: u │ │ │ │ │ +00013440: 7466 2d38 0a45 6e64 3a0a tf-8.End:.