#include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef NULL #define NULL (void*)0 #endif #define BUFSIZE 100 char buff[BUFSIZE]; #define SERV_UDP_PORT 2795 main() { int sockfd,i,s,alen,hlen,count; struct sockaddr_in serv_addr; /* open UDP socket */ if ((sockfd = socket(AF_INET,SOCK_DGRAM,0)) < 0 ) { perror("error open socket"); exit(-1); } alen = sizeof(serv_addr); memset(&serv_addr, NULL, alen); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(SERV_UDP_PORT); if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) { perror("bind"); exit(-1); } count = 0; for (;;) { i = recvfrom(sockfd,buff,BUFSIZE,0,(struct sockaddr *)&serv_addr,&alen); if (i < 0) { printf("rec error"); exit(1); } printf("rec-data %d ",count++); for (s = 0; s < i; s++) /* print data received*/ printf("%c",buff[s]); printf("\n"); } }