int CheckForNewPacket(int Sock, char *pkt, int TimeOut) { int len = sizeof(struct sockaddr); struct sockaddr_in from; fd_set readFd; timeval SelectTime; SelectTime.tv_sec = TimeOut;// wait 2 seconds SelectTime.tv_usec=0; FD_ZERO(&readFd); FD_SET(Sock,&readFd); int ret = select(255,&readFd,NULL,NULL,&SelectTime); //int ret = select(255,&readFd,NULL,NULL,&Selecttime); //ret = Selec(255,&readFd,NULL,NULL,&SelectTime); if (FD_ISSET(Sock, &readFd)==1) { int len = sizeof(struct sockaddr); ret=recvfrom(Sock, (char *)pkt, sizeof(struct PktStruct), NULL,(struct sockaddr *)&from,&len); if (ret>=0) { unsigned int fp=ntohs(from.sin_port); // printf("got pkt with message %s on port %d from ip=%s\n",pkt,ntohs(from.sin_port),inet_ntoa(from.sin_addr)); return ret; } else { /* // for windows only if (WSAECONNRESET==WSAGetLastError()) printf("possibly sent a packet to an unopened port\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"); else printf("revfrom error %d %d\n",ret, WSAGetLastError()); */ } } return -1; }