通过多线程扫描局域网内的所有机器怎么实现?

ju_feng 2002-12-29 05:22:09
以前做过总有一些bug;

不知道具体怎么实现

主要碰到一些如下的难题;

我建立一个线程通过该线程创建了50个线程来扫描局域网内的机器

怎样判断当前的线程已经扫描完毕。

我创建的50个线程都是调用了同一个threadstart代理的实例。怎样让他不相互修改数据,原来的时候我写了一个类传递参数调用可以实现 不知道在一个类里面怎么实现。

最好有例子
...全文
84 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajn_sailing 2002-12-30
  • 打赏
  • 举报
回复
up
icelight 2002-12-29
  • 打赏
  • 举报
回复
Q: 怎样判断当前的线程已经扫描完毕?怎样让他不相互修改数据?

A: 你先说清楚,你传给线程函数的参数是什么结构。每次传给线程的参数是不是NEW得来。如果不是NEW得到的当然会被线程们互相修改数据。

一个简单的SAMPLE:
class ThreadInfo
{
public:
bool m_bIsFinished; //判断当前的线程已经扫描完毕
HANDLE m_hThread; //当前线程的句柄
sockaddr addr; //目标地址
ThreadInfo()
{
m_bIsFinished = false;
m_hThread = NULL;
}
}

主线程:
ThreadInfo* arrayThreadInfo[50];
......
for(int i=0;i<50;i++)
{
arrayThreadInfo[i] = new ThreadInfo;
arrayThreadInfo[i].m_hThread=_beginthread(subThreadPing,0,arrayThreadInfo[i]);
}
qrlvls 2002-12-29
  • 打赏
  • 举报
回复
http://www.vckbase.com/上面都有源代码下载
上海老李 2002-12-29
  • 打赏
  • 举报
回复
你单线程的实现没?就是把检测放到另一个线程呗!

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧