#include "basic.h"
main(int argc, char **argv)
{
int sockfd, newsockfd, sock_addr_len,n,z;
char buff[MAXLINE]="Ciao Mondo";
char buff3[MAXLINE];
struct sockaddr_in servaddr, cliaddr;
if ( (sockfd = socket(AF_INET, SOCK_STREAM,0)) < 0 )
err_sys("socket error");
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons( SERV_PORT );
if (bind( sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) <0 )
err_sys("bind error");
if ( listen(sockfd,LISTENQ) <0)
err_sys("lister error");
while(1){
sock_addr_len=sizeof(struct sockaddr_in);
printf("SERVER: Waiting .......\n");
if ( (newsockfd=accept( sockfd, (struct sockaddr *) &cliaddr, &sock_addr_len)) <0 )
err_sys("accept error\n");
printf("Dati client: %s\n",inet_ntoa(cliaddr.sin_addr));
if( (n=write(newsockfd,buff,strlen(buff)))!=strlen(buf f))
err_sys("write error");
write(newsockfd,"\n",1);
while ( (z = read(newsockfd, buff3, MAXLINE)) > 0 )
{
buff3[z] = 0;
if (fputs(buff3, stdout) == EOF)
err_sys("errore in fputs");
}
close(newsockfd);
}
close(sockfd);
}