多线程gethostbyaddr或WSAAsyncGetHostByAddr根本就跟单线程速度一样,为什么,大哥? up 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 照理说gethostbyaddr出现这种情况也就罢了,但WSAAsyncGetHostByAddr是异步操作,不应该存在此问题啊 ADSL上网,扫描一个网段差不多要15分钟(256台) 线程代码如下:void Threadgetname(void *ipcode){ int dip=(int)ipcode; struct sockaddr_in sin; sin.sin_addr.s_addr =htonl(startip+dip);//目标机ip WSAAsyncGetHostByAddr(HwndMain,GETHOSTNAME,(LPCSTR)&sin.sin_addr.S_un.S_addr,4,PF_INET,computername[dip],100); _endthread(); return;} WSAAsyncGetHostByAddr是异步的,你虽然放在多线程里执行,但使用的主窗口句柄都是一个,所以消息将放到该窗口消息队列中排队,这和循环调用结果是一样的。所以你的程序没有体现出多线程的优势。但你用多线程调用gethostbyaddr的效果就和循环调用gethostbyaddr的速度就是不一样的,因为gethostbyaddr是同步的。 请指点用WSAAsyncGetHostByAddr实现快速获取主机名的办法 另外,用多线程的GetHostByAddr返回的hostent *的IP地址并不与搜索到的主机名对应,真的好怪 Win32 API中如何从缓冲区把已写入的数据还原 关于内存块的取反操作 从网上下的DLL有办法包入程序中吗? Visual C++ 2010 beta2试用之体验 我想用声卡采集声音信号,那位大虾能给一下思路 为何的函数中给字符串数组赋值正常,但作为全局常量时就出错? 怎样判断一个IP地址是内网的还是外网的? 一程序源代码,编译错误,麻烦各位高手帮忙一下,谢谢~!!!!! 怎么把DIALOG的背景色设为透明? 再问关于CWnd继承类实例析构问题,急求教! 关于自动调用excel的问题 ? 急问vc小问题
void Threadgetname(void *ipcode)
{
int dip=(int)ipcode; struct sockaddr_in sin; sin.sin_addr.s_addr =htonl(startip+dip);//目标机ip
WSAAsyncGetHostByAddr(HwndMain,GETHOSTNAME,(LPCSTR)&sin.sin_addr.S_un.S_addr,4,PF_INET,computername[dip],100); _endthread(); return;
}