TCP/IP Programming Manual

> run <objectfile name ><receive file name><port #><process name >
Sample Program
#pragma nolist
#include <$system.ztcpip.param.h>
#include <$system.ztcpip.socket.h>
#include <$system.ztcpip.in.h>
#include <$system.ztcpip.netdb.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <cextdecs(TIME,CLOSE,FILE_CLOSE_,WRITE)>
#pragma list
/*
* Usage: SERVER recv_file port# proc_name
*/
long state, total_read;
char buf [12000/(int)(sizeof (char) + 1)];
int sizebuf = (12000/(int)(sizeof (char) + 1));
main (argc, argv)
int argc;
char *argv[];
{
int fo, wc;
int nnnn = 2340;
register int fd, s2, cc;
int flen = 8, port;
struct sockaddr_in sin, from;
char *procname;
/* open receive file */
argc--; argv++;
if (argc < 2)
goto usage;
if ((fo = (open(argv[0],O_RDWR|O_CREAT|O_TRUNC,nnnn))) < 0) {
printf ("SERVER: open failed\n");
exit(0);
}
/* Set the port address */
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";
/* lets open the process */
printf ("SERVER: Data is recd with Tandem NonStop TCP/IP process %s\n",procname);
(void) socket_set_inet_name (procname);
/* Open the socket */
if ((fd = socket (AF_INET, SOCK_STREAM, 0)) < 0) {
fprintf (stderr, "SERVER: socket-failure (%d)\n", errno);
exit (0);
}
printf ("SERVER: Socket # %d opened ...\n", fd);
/* Set up sin.x values */
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = (unsigned short)port;
218 Sample Programs