TCP/IP Programming Manual
j <= IP_MAX_MEMBERSHIPS;
j += 3, multiaddr += (MAGIC_NUMBER * 3)) {
multi_req.imr_multiaddr.s_addr = multiaddr;
printf ("DROP MEMBERSHIP from group: %s or %lx\n",
inet_ntoa (multi_req.imr_multiaddr),
multi_req.imr_multiaddr.s_addr);
printf (" ON I/F: %s\n", inet_ntoa(multi_req.imr_interface));
if (setsockopt (fd1, IPPROTO_IP, IP_DROP_MEMBERSHIP,
(char *)&multi_req, sizeof(multi_req))) {
perror ("DROP MEMBER error");
printf (" error code: %x Hex (%d.)\n", errno, errno);
}
}
}
req_count = 1000 * IP_MAX_MEMBERSHIPS;
while (req_count) {
/* printf ("Retrieving %d bytes\n", req_count); */
if ((xcount = recvfrom (fd1, recvbuf, req_count, 0,
(struct sockaddr *)&from,
(int *)&fromlen)) < 0) {
perror (" Recvfrom failure");
exit (0);
}
printf ("Loop %d...............received %i bytes from %s\n",
i, xcount, inet_ntoa (from.sin_addr));
recvbuf[xcount] = 0;
recvbuf[72] = 0; /* to print the first 72 chars only */
printf ("%s\n",recvbuf);
req_count -= xcount;
}
i++;
} /* end for loop */
close (fd1);
}
TAL Echo Client Programming Example
The TAL program below demonstrates an ECHO client that communicates with an ECHO server.
The source code for this program appears in the TALDOCUM file on the site update tape (SUT)
for TAL sockets. Refer to the TCP/IP Applications and Utilities User Guide for details on using
ECHO.
?ENV COMMON
?SYMBOLS,INSPECT
?SEARCH $SYSTEM.SYSTEM.CLULIB
?SEARCH $SYSTEM.SYSTEM.TALLIB
?SEARCH $SYSTEM.ZTCPIP.libinetl
NAME echo_example;
--
-- This sample TAL socket program communicates with an ECHO server.
--
?PUSHLIST,NOLIST,SOURCE $SYSTEM.SYSTEM.CREDECS(initialization,Termination)
?POPLIST
BLOCK sockdeft;
?PUSHLIST,NOLIST,SOURCE $SYSTEM.ZTCPIP.SOCKDEFT
?POPLIST
END BLOCK;
BLOCK error_codes;
?PUSHLIST,NOLIST, SOURCE $SYSTEM.ZTCPIP.SOCKPROC(error_codes)
?POPLIST
END BLOCK;
BLOCK getsockopt_opts;
?PUSHLIST,NOLIST, SOURCE $SYSTEM.ZTCPIP.SOCKPROC(getsockopt_opts)
?POPLIST
END BLOCK;
BLOCK socket_opts;
?PUSHLIST,NOLIST,SOURCE $SYSTEM.ZTCPIP.SOCKPROC(socket_opts)
?POPLIST
Programs Using AF_INET Sockets 231