Home Segments Index Top Previous Next

734: Mainline

At this point, all the socket apparatus is ready to be put in place on the server side. The following brings together that apparatus by way of summary:

/* Server Program */ 
#include  
#include  
#include  
#include  
#include  
#include  
double doubling_time (double r) {  
  return 72.0 / r; 
} 
main ( ) { 
  int socket_number, new_socket_number, client_size; 
  struct sockaddr_in server_addr, client_addr; 
  FILE *fm_client, *to_client; 
  server_addr.sin_addr.s_addr = inet_addr ("128.52.36.4"); 
  server_addr.sin_family = AF_INET; 
  server_addr.sin_port = 6022; 
  socket_number = socket (AF_INET, SOCK_STREAM, 0); 
  bind (socket_number, 
        (struct sockaddr *) &server_addr, 
        sizeof (server_addr)); 
  listen (socket_number, 5); 
  new_socket_number 
   = accept (socket_number, 
             (struct sockaddr *) &client_addr, 
             &client_size); 
  fm_client = (FILE *) fdopen (new_socket_number, "r"); 
  to_client = (FILE *) fdopen (new_socket_number, "w"); 
  while (1) { 
    double input; 
    fscanf (fm_client, "%lf", &input); 
    fprintf (to_client, "%f\n", doubling_time(input)); 
    fflush (to_client); 
  } 
}