void UdpTask(void )
{

int hUdp;
fd_set readset,timeset;
struct timeval tv;
int MaxFd = 0;

struct sockaddr_in local_addr;
struct sockaddr_in server_addr;
int    i;
socklen_t addrlength = 0;


hUdp =socket(AF_INET, SOCK_DGRAM, 0);
if (hUdp < 0)
{
return;
}

memset(&local_addr,0,sizeof(local_addr));
memset(&server_addr,0,sizeof(server_addr));
memset(&oldaddr,0,sizeof(oldaddr));

local_addr.sin_family = AF_INET;
local_addr.sin_port = htons(1032);
local_addr.sin_addr.s_addr = inet_addr("192.168.6.233");

bind(hUdp, (struct sockaddr *)&local_addr, sizeof(struct sockaddr));
FD_ZERO(&readset);
while(1)
{
tv.tv_sec = 15;//15秒超时判断
tv.tv_usec = 0;

FD_SET(hUdp, &readset);


switch (select(hUdp + 1, &readset, NULL, NULL,&tv))
{
case -1:
break;

case 0:   //
break;

default:
if (FD_ISSET(hUdp,&readset))
{
int  length = recvfrom(hUdp, buf, BUFSIZE, 0, (struct sockaddr *)&server_addr,&addrlength );

if (length<0)
continue;




}

break;
}


}
}
永远超时!