设为首页 加入收藏

TOP

2.3.2 具体编码(2)
2013-10-07 15:54:39 来源: 作者: 【 】 浏览:89
Tags:2.3.2 具体 编码

2.3.2  具体编码(2)

(3) 编写nbtstat线程函数NbtstatThread(LPVOID param),用于向指定范围的IP发送数据。具体代码如下:

  1. UINT NbtstatThread(LPVOID param)  
  2. {  
  3. //循环对要查询的IP发数据  
  4. do  
  5. {  
  6. if(bExit) //是否退出线程  
  7. {  
  8. AfxMessageBox("exit thread!");  
  9. pDlg->GetDlgItem(IDC_BTN_SEND)->EnableWindow(true);  
  10. pDlg->GetDlgItem(IDC_EDIT1)->EnableWindow(true);  
  11. pDlg->GetDlgItem(IDC_SPIN1)->EnableWindow(true);  
  12. pDlg->GetDlgItem(IDC_IPADDRESS1)->EnableWindow(true);  
  13. pDlg->GetDlgItem(IDC_IPADDRESS2)->EnableWindow(true);  
  14. pDlg->GetDlgItem(IDC_BTN_EXIT)->EnableWindow(false);  
  15. bExit = false;  
  16. return 1;  
  17. }  
  18. pDlg->m_strIP.Format("%d.%d.%d.%d",B1[0],B1[1],B1[2],B1[3]);//得到IP  
  19. pDlg->m_ListBox.InsertString(0,  
  20. pDlg->m_strIP); //将该IP插入ListView的IP字段  
  21. if(B1[3]!=0 && B1[2]!=0)  
  22. pDlg->m_UDPSocket.SendTo((void*)bs, 50,  
  23. destPORT, pDlg->m_strIP, 0); //向指定的IP发数据报  
  24. int nWait = pDlg->m_spin.GetPos(); //设置超时  
  25. WaitForSingleObject(  
  26. wait_handle,    // 等待事件的句柄  
  27. nWait   // 超时  
  28. );  
  29. ResetEvent(wait_handle); //将事件重新置回非触发状态  
  30. //=============================================  
  31. //生成下一个要查询的IP  
  32. if(B1[2] <= B2[2])  
  33. {  
  34. if(B1[3] < B2[3]) B1[3]++;  
  35. else if(B1[2]<B2[2] && B1[3]<255) B1[3]++;  
  36. else if(B1[2]<B2[2] && B1[3]==255)  
  37. {  
  38. B1[3] = 0;  
  39. B1[2]++;  
  40. }  
  41. }  
  42. else break;  
  43. if(B1[3]>=B2[3] && B1[2]>=B2[2]) break;  
  44. } while(B1[2]<=255 && B1[3]<=255);  
  45. pDlg->m_ListBox.InsertString(0, "-----complete!-----");  
  46. pDlg->GetDlgItem(IDC_BTN_SEND)->EnableWindow(true);  
  47. pDlg->GetDlgItem(IDC_EDIT1)->EnableWindow(true);  
  48. pDlg->GetDlgItem(IDC_SPIN1)->EnableWindow(true);  
  49. pDlg->GetDlgItem(IDC_IPADDRESS1)->EnableWindow(true);  
  50. pDlg->GetDlgItem(IDC_IPADDRESS2)->EnableWindow(true);  
  51. pDlg->GetDlgItem(IDC_BTN_EXIT)->EnableWindow(false);  
  52. return 0;  
  53. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.3.2 具体编码(1) 下一篇2.3.2 具体编码(3)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)