TCP/IP Programming Manual
#endif
 printf("Number of chars from recv[from] is %d\n",
 status);
 }
 printf("\nExecute GETPEERNAME fails if CONNECTIONLESS socket\n");
 optlen = sizeof(him);
 if (getpeername(channel,(struct sockaddr *)&him,&optlen) < 0)
 perror("getpeername");
 else
 printf(" His socket: family=%d port=%d addr=%lx\n",
 him.sin_family,him.sin_port,him.sin_addr.s_addr);
 printf("\n Data from net: %s\n", buffer);
 printf("\nExecute SOCKET_IOCTL to determine chars on re queue\n") ;
 ncc = 0;
 if (socket_ioctl (channel, FIONREAD, (char *)&ncc) < 0)
 perror ("socket_ioctl(FIONREAD)");
 else
 printf(" Socket_ioctl(FIONREAD) returns %d chars\n", ncc);
 }
 }
 /*
 * Close socket
 */
 printf("\nExecute SHUTDOWN to close socket\n");
 if (shutdown(channel,2) < 0)
 perror("shutdown");
}
UDP Server Program
The following programming example shows how to use the socket routines in a server application:
#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 <stdlib.h>
#include <memory.h>
#include <string.h>
#include <cextdecs(DELAY)>
#pragma list
#define PORT_ECHO 1987
int chan;
struct sockaddr_in sin, remote;
int len;
char buf[10*1024];
main ()
{
 int status;
 int optval, optlen;
 /*
 * Set your local address
 */
 sin.sin_port = htons(PORT_ECHO); /* Interchange bytes of PORT */
 sin.sin_addr.s_addr = INADDR_ANY;
 sin.sin_family = AF_INET;
 /*
 * Create a socket
 */
Programs Using AF_INET Sockets 223










