通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  列兵

注册:2014-3-3
跳转到指定楼层
1#
发表于 2014-3-21 13:25:16 |只看该作者 |倒序浏览
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环境下)

举报本楼

本帖有 1 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

版规|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2025-8-6 05:37 , Processed in 0.075176 second(s), 17 queries , Gzip On.

Copyright © 1999-2025 C114 All Rights Reserved

Discuz Licensed

回顶部