工控编程吧
标题:
340上位机VC MFC实现Ping工具的编写
[打印本页]
作者:
qq263946146
时间:
2016-9-20 16:35
标题:
340上位机VC MFC实现Ping工具的编写
(, 下载次数: 5)
上传
点击文件名下载附件
340上位机VC MFC实现Pi实现Ping工具的编写
功能展示
Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障,我们当前例程自己编写PING工具,效果如图。输入要Ping的主机IP及重复的次数,点击<开始PING>就可执行Ping指令,执行的过程及结果都会显示在列表框中;
要点提示
Ping功能的实现主要是通过套接字库函数实现,要注意的是在使用这些函数前必须调用初始化函数AfxSocketInit()不然全部函数都不可用;
另外PING过程中的信息回馈是通过发送自定义消息WM_MSG_STATUS实现,通过将一个自己的函数与此信息关联ON_MESSAGE(WM_MSG_STATUS,OnStatus),就可以获得回馈的ping状态;例程中关联的函数形式为OnStatus(WPARAM wParam, LPARAM lParam)其中第二参数Lparam是通过形式(LPARAM) AllocBuffer(str)传递,所以参数传递完信息后,建议delete关键字删除;
实现功能
1.新建基于对话框的应用程序
2.将例程根目录实现ping功能的四个文件PING.CPP,PING.h, PingThread.cpp, PingThread.h复制到自己工程根目录并加载到工程中使用;
3.依照例程界面添加编辑框IDC_EDIT1,IDC_EDIT2用于主机IP的输入PING重复次数的输入,添加列表框IDC_LIST1,并关联变量CListCtrl m_ListStatus;用于ping状态的接收显示。添加开始PING按钮,关联点击函数,实现PING功能
void CGkbc8Dlg::OnPing()
{
m_ListStatus.DeleteAllItems();
int nRetries =GetDlgItemInt(IDC_EDIT2);//PING 次数
CString sIP;
GetDlgItemText(IDC_EDIT1,sIP);//PING ip
m_PingThread.StartPing(nRetries,sIP,m_hWnd);//开始ping
}
4.其中函数内变量m_PingThread为我们添加的ping类的实例,所以在主对话框头文件包含#include “PingThread.h”及添加变量CPingThread m_PingThread; ping过程信息接收,我们编写了函数OnStatus()来实现,添加函数的定义,申明,函数与消息WM_MSG_STATUS有关联;
LRESULT CGkbc8Dlg::OnStatus(WPARAM wParam, LPARAM lParam)
{
char* pMsg = (char*) lParam;
int nCnt =m_ListStatus.GetItemCount();
int i =m_ListStatus.InsertItem(nCnt,pMsg,wParam);
m_ListStatus.EnsureVisible(i,FALSE);
delete pMsg;
return 0;
}
5.最后在程序初始化时,我们要初始化控件及套接字库,在主对话框初始化函数Oninitial()添加
if (!AfxSocketInit())
{
AfxMessageBox("套接字初始化 出错");
return FALSE;
}
//<>
m_ListStatus.ModifyStyle(0,LVS_REPORT,NULL);
m_ListStatus.InsertColumn(0,"当前Ping状态",LVCFMT_LEFT,800);
SetDlgItemText(IDC_EDIT1,"127.0.0.1");
SetDlgItemText(IDC_EDIT2,"3");
我们来演示下功能实现的整个过程ng工具的编写
[iqiyi]http://player.video.qiyi.com/62e502f778558ec3e24da6064ba2528b/0/0/w_19rstist2x.swf-albumId=6347591509-tvId=6347591509-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件 [weixinlianxi]1[/weixinlianxi]
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4