www.pudn.com > Tornado_Train_Workshop_demo_program.rar > unixClient.c
/* unixClient - send an integer to the vxWorks server */ /* Copyright 1984-1994 Wind River Systems, Inc. */ /* modification history -------------------- 01b,05dec94,bss cleaned up. WRS coding conventions enforced. 01a,???????,??? written. */ /* DESCRIPTION This module provides a simple example of the issues involved in sending data between different machines: these machines might store data with different byte orderings, structure alignments, floating-point representations, etc. In this example, we are only sending an integer to the server so we will only deal with byte ordering. The client converts the data from a machine-dependent byte-ordering to a standard representation (network byte ordering) and sends the data to the server. The server then converts the data from the standard representation to the machine-dependent representation on the server. Finally the server sends a reply to the client. NOTE: This code was written in the pre-ANSI style to facilitate compilation with the native Sun compiler cc. To compile this code with an ANSI compiler, use the -traditional flag. */ /* includes */ #include#include #include #include /* defines */ #define MAX_MSG_LEN 80 #define LOCAL static /* for WRS coding conventions */ /* typedefs */ typedef int SOCK_FD; /* forward declarations */ LOCAL void error(); /******************************************************************************* * * main - entry point to unixClient * * This function sets up a socket and send an integer in * network byte ordering to vxServer. This is a simple * example of the issues of data representation which * are encountered in network programming. */ main (argc, argv) int argc; char **argv; { short port; /* Server's port number */ int inetAddr; /* Server's inet address */ struct sockaddr_in srvAddr; /* Server's socket address */ int val; /* Value to send the server */ SOCK_FD sockFd; /* Client's socket */ char replyBuf [MAX_MSG_LEN]; /* Place to put the server's reply */ /* Get the server port number, inet address, and value to send */ if (argc != 4) { fprintf (stderr, "Usage: %s portNumber inetAddress value\n", argv[0]); exit (1); } port = (short) atoi (argv [1]); inetAddr = inet_addr (argv [2]); val = atoi (argv [3]); /* Create a socket */ /* Initialize servers address */ /* Send the server the value */ /* Read and then print the servers reply */ /* Close socket */ } /******************************************************************************* * * error - aborts a process on an error * * This funcion displays the reason a process crashed * and terminates that process. */ LOCAL void error (pStr) char * pStr; { perror (pStr); exit (1); }