|
创建了一个UDP套接字,之后使用select,但每次select的返回结果都是0,为什么?
代码如下(省略部分声明):
m_sock = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if(m_sock==INVALID_SOCKET)
{
return FALSE;
}
addr.sin_family = PF_INET;
addr.sin_port = INADDR_ANY;
addr.sin_addr.s_addr = INADDR_ANY;
if(bind(m_sock,(struct sockaddr *)&addr,sizeof(addr))!=0)
{
return FALSE;
}
addr.sin_family =PF_INET;
addr.sin_port = htons(4000);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
//发送数据
ret = sendto(m_sock,sendbuf,len,0,(sockaddr *)&addr,sizeof(addr));
FD_ZERO(&fdr);
FD_SET(m_sock, &fdr);
ret = select(m_sock, &fdr, NULL,NULL, &timeout);
上面的ret一直是0。
但这些代码在Window2000下能正确执行,ret返回1。
|
|