/* chatserver.c * Author: Sam Rebelsky * Version 1.0 * IN PROGRESS! */ /* Set up the "client". Returns a socket you can use for * communication. Either may exit if an error occurs. * Post: Returns an active socket */ int setupServer(); int setupClient(char *hostName); /******** * Main * **********************************************************/ int main(int argc, char *argv[]) { /* I. Declare variables. */ int s; /* The socket used for communication. */ /* II. Decide what role to play. */ /* A. It's the server. */ if (strcmp(argv[0],"cserver") == 0) { /* 1. Set up the server. */ s = setupServer(); /* 2. Alternately receive and send messages. */ while (receive(s) && spew(s)) ; } /* B. It's the client. */ else if (strcmp(argv[0], "cclient") == 0) { /* 1. Set it up. */ if (argc == 2) { s = setupClient(argv[1]); } else { fprintf(stderr, "Usage: %s servername\n", argv[0]); exit(1); } /* 2. Alternately send and receive messages. */ while (spew(s) && receive(s)) ; } /* C. It's neither. Crash. */ else { fprintf(stderr, "Sorry, this can only be run as cserver or cclient.\n"); exit(5); } /* III. Clean up. */ close(s); exit(0); } // main()