void* UdpServer::startThread(void *obj) { UdpServer *instance = reinterpret_cast<UdpServer *>(obj); socklen_t londesde; londesde = sizeof(sockaddr_in); while(true) { int size; londesde = sizeof(sockaddr_in); (instance->getUDPRespSock())->sin_port = htons (instance->getUDPPort()); //cerr<<"UDPSERV: listening"<<endl; if ( (size = recvfrom(instance->getUDPSocket(), instance->getUDPBuffer(), MAXMSGSIZE, 0, (sockaddr *)instance->getUDPRespSock(), &londesde)) < 0 ) { cerr<<"UDPSERV: Error calling recvfrom()"<<endl; return NULL; } if(size>0) instance->UDPmanageRecv(size); } }