#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <time.h>


extern int h_errno;

int main(int argc, char** argv){
  int lport_h = 37; 	/* porta utilizzata */
  struct sockaddr_in saddr, caddr;
  int s, s1;
  int result;
  struct tm current;
  char * ts;
  
  s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

  saddr.sin_family = AF_INET;
  saddr.sin_port = htons(lport_h);
  saddr.sin_addr.s_addr	= INADDR_ANY;

  result = bind(s, (struct sockaddr *) &saddr, sizeof(saddr));

  result = listen(s, 20);

  while(1){
    int addrlen = sizeof(struct sockaddr_in);
    time_t t;

    s1 = accept(s, (struct sockaddr *) &caddr, &addrlen);

    t = time(NULL);
    ts = ctime(&t);    
    send(s1,ts,strlen(ts)+1,0);

    close(s1);
  }

  return 0;
}

