gethostbyname()会到DNS服务器取IP,也就是会用到网络,那调用时会阻塞?有一直塞下去的可能么?能非阻塞调用么?
解决方案 »
- 劳驾各位帮我推荐几本书
- Dll中输出C++类的问题
- 怎样检测线程的状态 尤其是已退出的线程的状态 郁闷
- MFC中edit控件中的CString类型转换成char*类型与char*的区别
- 使某个窗口标题闪烁的消息是什么?
- 文件包含问题
- #◎#◎#◎ 急急急, 问关于MDI的问题 ◎#◎#◎#
- 大家好!我现在在一个培训部教VC++6.0,可我自已以前从没有接触过,现在上起课来好吃力,谁能给我一个好的方法?
- 是中国人都应该看一看这个网页!!11!!!
- 我想写个程序遍历文件夹和子文件夹中的图片,将大于200*300的图片按比例缩小
- SNMP发送接收消息的问题,头大
- 请问VC++的win32程序如何实现窗口震动?
如果没有错误发生,gethostbyname()返回一个指向hostent结构的指针,否则,返回一个空指针。
按照你说的,可能会发生如下错误:
错误代码列表:
WSANOTINTIALISED 在应用这个API前,必须成功地调用WSAStartup()。
WSAENTDOWN Windows Sockets实现检测到了网络子系统的错误。
WSAHOST_NOT_FOUND 没有找到授权应答主机。
WSATRY_AGAIN 没有找到非授权主机,或者SERVERFAIL。
WSANO_RECOVERY 无法恢复的错误,FORMERR,REFUSED,NOTIMP。
WSANO_DATA 有效的名字,但没有关于请求类型的数据记录。
WSAEINPROGRESS 一个阻塞的Windows Sockets操作正在进行。
WSAEINTR 阻塞调用被WSACancelBlockingCall()取消了.
非阻塞的异步API,不是马上完成,是马上返回是否成功调用这个API的结果,然后调用完后,再将结果以消息模型发送给你程序窗口.那么这个API可以理解为在"后台悄悄的工作",期间你可以执行其它操作,不象阻塞那样要一直在等它完成后才能执行下一条语句.GetHostByname是有异步版本的,WSAAsyncGetHostByName()
while(i<100) {
gethostbyname("www.sohu.com");
printf("%d\n", i); //中间肯定要卡住几次
}但可以设置超时