#include "def" #define MAXIDLETIME 1 main(argc, argv ) int argc; char *argv[]; { int sd; struct sockaddr_in DTserver; char buff[1024]; struct sockaddr_in cliaddr; struct hostent *hp, *gethostbyname(); int len; int n; int i; sd = socket (AF_INET,SOCK_SEQPACKET,IPPROTO_SCTP); i = MAXIDLETIME; setsockopt(sd, IPPROTO_SCTP, SCTP_AUTOCLOSE, &i, sizeof (i)) ; listen(sd, 1); DTserver.sin_family = AF_INET; hp = gethostbyname(argv[1]); bcopy ( hp->h_addr, &(DTserver.sin_addr.s_addr), hp->h_length); DTserver.sin_port = htons(atoi(argv[1])); len = sizeof(DTserver); sendto(sd, "HI", 3, 0, (SA *) &DTserver, len); len = sizeof(cliaddr); n = recvfrom (sd, buff, sizeof(buff), 0, (SA *) &cliaddr, &len); buff[n] = NULL; printf("got %s\n", buff); printf("from %s, port %d\n", inet_ntop(AF_INET, &cliaddr.sin_addr, buff, sizeof(buff)), ntohs(cliaddr.sin_port)); }