TCP/IP Programming Manual
/* define things */
int fo;
int rdstat,nbytes;
register int fd;
struct sockaddr_in sin;
char *buf;
char *procname;
int nbufs, bsize;
int port;
struct hostent *host_entry;
/* DEBUG(); */
/* open send file */
argc--; argv++;
if (argc < 3)
goto usage;
if ((fo = (open(argv[0],O_RDONLY))) < 0) {
printf ("CLIENT: open failed\n");
exit(0);
}
/* set address according to device name */
argc--; argv++;
if ((sin.sin_addr.s_addr = inet_addr(argv[0])) == INET_ERROR ){
if ((host_entry = gethostbyname(argv[0])) ==
(struct hostent *)NULL) {
printf ("Get host by name failed, error %d\n",h_errno);
exit(0);
}
sin.sin_addr.s_addr =
*(unsigned long *) (*(host_entry->h_addr_list));
}
else
sin.sin_addr.s_addr = inet_addr(argv[0]);
/* set port number */
argc--; argv++;
if ((port = atoi (argv [0])) <= 0)
goto usage;
/* set the process name */
argc--; argv++;
if (argc > 0)
procname = argv[0];
else
procname = "$ZTC0";
/* set the number of buffers to be sent */
argc--; argv++;
if (argc > 0)
nbufs = atoi (argv [0]);
else
nbufs = 1;
/* set the size of the buffer to be sent */
argc--; argv++;
if (argc > 0)
bsize = atoi (argv [0]);
else
bsize = 1024;
buf = (char *)malloc (bsize);
216 Sample Programs