通信人家园

标题: 关于DNS解析UDP非阻塞(select解决方案设计)  [查看完整版帖子] [打印本页]

时间:  2014-3-21 13:25
作者: lishabeey     标题: 关于DNS解析UDP非阻塞(select解决方案设计)

windows环境下:现在我要建立多个socket,UDP,每一次的出去的端口不一样,sendto发送后,recvfrom()只能是等待该socket发出去后的结果。容易造成阻塞;我举个例子讲下:

int my_gethostbyname(char *domain, int localport, char *dns_ip)
{
WSAStartup();
SOCKET SocketFd;
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
setsockopt(SocketFd,**);
sendto(SocketFd,**);
recvfrom(SocketFd,buff,**); ---//等待阻塞
getip_dns_packet(ip,buff);
}

int main()
{
for()
{
      my_gethostbyname(" www.g.cn ",localport, "10.1.1.1");
}
}

现在我不想用recvfrom和sendto在一个函数里,这样容易阻塞,我想用select放在线程里,但是select这个集合体不知道怎样把不同的socket放进去;(windows环境下)

时间:  2014-3-21 16:42
作者: yc826

xuexi




通信人家园 (https://www.txrjy.com/) Powered by C114