- 经验
- 39
- 分贝
- 0
- 家园分
- 135
- 在线时间:
- 20 小时
- 最后登录:
- 2016-2-29
- 帖子:
- 29
- 精华:
- 0
- 注册时间:
- 2014-3-3
- UID:
- 993895
注册:2014-3-3
|
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环境下)
|
|