在MFC中用多线程实现使用SendArp实现了探测计算机在线,改为C++ BUILDER如何实现?

zteclx 2008-10-21 10:39:06
在MFC中用多线程实现使用SendArp实现了探测计算机是否在线,如何修改为C++ BUILDER?
sendArp是API函数;还有就是C++ BUILDER中如何实现多线程?
...全文
203 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanreid 2008-10-22
  • 打赏
  • 举报
回复
刚刚写好的


long hr;
IPAddr ipAddr;
ULONG pulMac[2];
ULONG ulLen;

ipAddr = inet_addr(LabeledEdit1->Text.Trim().c_str());
memset(pulMac, 0, sizeof(pulMac));
ulLen = sizeof(pulMac);

hr = SendARP(ipAddr, 0, pulMac, &ulLen);

if(hr == NO_ERROR)
{
size_t i, j;
char* szMac = new char[ulLen*3];
PBYTE pbHexMac = (PBYTE)pulMac;

//
// Convert the binary MAC address into human-readable
//
for(i = 0, j = 0; i < ulLen-1; ++i)
{
j += sprintf(szMac + j, "%02X:", pbHexMac[i]);
}

sprintf(szMac + j, "%02X", pbHexMac[i]);
ShowMessage("Mac地址:"+AnsiString(szMac));
delete[] szMac;
}
else
{
ShowMessage("失败");
}
qsgs 2008-10-22
  • 打赏
  • 举报
回复
顶一下啊顶一下
yumikoo 2008-10-21
  • 打赏
  • 举报
回复
File-New-Thread Object,创建好一个线程类,假设为ThdNew,在其Execute()事件里写线程执行代码。
在你的mainform里ThdNew *Blow = new ThdNew(true);Blowr->Resume();启动线程执行。
zteclx 2008-10-21
  • 打赏
  • 举报
回复
在C++ BUILDER中如何使用发ARP包的方式探测计算机在线?

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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