#include <stdio.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <arpa/inet.h>
#include <ctype.h>
#include "socktools.h"

extern int  PORT;
extern char *SERV;

void calcul( int sd, struct sockaddr *serv)
{ int  val;
  while ( 1 ) {
      val = 0;
      sendpaquetto( sd, serv, val);
      val = recvpaquetfrom( sd, serv ); 
      if ( ! val ) return;	
      val = val * val;
      sleep( random() % 10);	
      sendpaquetto( sd, serv , val );
  }
}

int main(int argc, char *argv[])
{ int   sd;
  struct sockaddr_in serv;
  
  if ( ! argok(argc, argv ) ) return 1;

  sd = socket( AF_INET, SOCK_DGRAM, 0);
  if ( sd < 0 ) erreur("socket");
  
  serv = sockaddrinbyname( SERV , PORT );
 
 
  calcul( sd , (struct sockaddr*) &serv);
  
  close(sd);

  return 0;
}
