/* SERVER */ #include #include #include #include #include #include #include #include #include #define PORT 2222 main() { int i,sock,pid,rval,status; socklen_t length; unsigned long delay; struct sockaddr_in server,client,sender; if((sock = socket(AF_INET,SOCK_DGRAM,0))<0) { perror("opening datagram socket : "); exit(-2); } server.sin_family= AF_INET; server.sin_addr.s_addr = INADDR_ANY; server.sin_port= htons(PORT); if(bind(sock,(struct sockaddr *)&server,sizeof(server))<0) { perror("binding datagram socket : "); exit(-3); } while(1) { length = sizeof(sender); recvfrom(sock,&pid,sizeof(pid),0,(struct sockaddr *)&sender,&length); kill(pid,SIGTERM); status = errno ; printf("Server : ho terminato il processo %d con esito %s\n",pid,strerror(errno)); sendto(sock,&status,sizeof(status),0,(struct sockaddr *)&sender,sizeof(sender)); } }