#include "def" main(int argc, char **argv) { int sd, psd; struct sockaddr_in name; struct sockaddr_in cliaddr; char buf[1024]; int cc; int len; int i; if (argc < 3){ printf("Usage: AutoCloseServer \n"); exit(-1); } sd = socket (AF_INET,SOCK_STREAM,IPPROTO_SCTP); name.sin_family = AF_INET; name.sin_addr.s_addr = htonl(INADDR_ANY); name.sin_port = htons(atoi(argv[1])); if ( bind( sd, (SA *) &name, sizeof(name) ) < 0 ){ printf("error binding\n"); exit(-1) ; } i = atoi(argv[2]); setsockopt(sd, IPPROTO_SCTP, SCTP_AUTOCLOSE, &i, sizeof (i)) ; listen(sd,1); psd = accept(sd, 0, 0); for(;;) { cc=read(psd,buf,sizeof(buf)) ; if (cc == 0) exit (0); buf[cc] = NULL; printf("message received: %s\n", buf); } }