The following example shows a C socket UDP (UDPC) client program. The source code can be found in the UDPC member of the SEZAINST data set.
/*** IBMCOPYR ********************************************************/
/* */
/* Component Name: UDPC */
/* */
/* */
/* Copyright: Licensed Materials - Property of IBM */
/* */
/* "Restricted Materials of IBM" */
/* */
/* 5647-A01 */
/* */
/* (C) Copyright IBM Corp. 1977, 1998 */
/* */
/* US Government Users Restricted Rights - */
/* Use, duplication or disclosure restricted by */
/* GSA ADP Schedule Contract with IBM Corp. */
/* */
/* Status: CSV2R6 */
/* */
/* SMP/E Distribution Name: EZAEC020 */
/* */
/*** IBMCOPYR ********************************************************/
static char ibmcopyr[] =
"UPDC - Licensed Materials - Property of IBM. "
"This module is \"Restricted Materials of IBM\" "
"5647-A01 (C) Copyright IBM Corp. 1992, 1996. "
"See IBM Copyright Instructions.";
#include <manifest.h>
#include <bsdtypes.h>
#include <in.h>
#include <socket.h>
#include <netdb.h>
#include <stdio.h>
main(argc, argv)
int argc;
char **argv;
{
int s;
unsigned short port;
struct sockaddr_in server;
char buf[32];
/* argv[1] is internet address of server argv[2] is port of server.
* Convert the port from ascii to integer and then from host byte
* order to network byte order.
*/
if(argc != 3)
{
printf("Usage: %s <host address> <port> \n",argv[0]);
exit(1);
}
port = htons(atoi(argv[2]));
/* Create a datagram socket in the internet domain and use the
* default protocol (UDP).
*/
if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
{
tcperror("socket()");
exit(1);
}
/* Set up the server name */
server.sin_family = AF_INET; /* Internet Domain */
server.sin_port = port; /* Server Port */
server.sin_addr.s_addr = inet_addr(argv[1]); /* Server's Address */
strcpy(buf, "Hello");
/* Send the message in buf to the server */
if (sendto(s, buf, (strlen(buf)+1), 0,
(struct sockaddr *)&server, sizeof(server)) < 0)
{
tcperror("sendto()");
exit(2);
}
/* Deallocate the socket */
close(s);
}