【文件属性】:
文件名称:C++Ping一个IP地址的例子
文件大小:15KB
文件格式:RAR
更新时间:2018-12-17 13:51:32
C++ Ping
===========================================
使用方法:
1、引入以下4个文件到项目:
ping.h
ping.cpp
PingThread.h
PingThread.cpp
2、在StdAfx.h中加入以下代码:
#include // MFC socket extensions
#define WM_MSG_STATUS WM_USER + 0x0100
#define WM_PING_END WM_USER + 0x0101
// string message allocator for posting messages between windows...
static char* AllocBuffer(CString strMsg)
{
int nLen = strMsg.GetLength();
char *pBuffer = new char[nLen+1];
strcpy(pBuffer,(const char*)strMsg);
ASSERT(pBuffer != NULL);
return pBuffer;
}
3、定义一个变量:
CPingThread m_pingThread;
4、定义两个消息响应(WM_MSG_STATUS, WM_PING_END):
LRESULT OnStatus(WPARAM wParam, LPARAM lParam);
LRESULT OnPingEnd(WPARAM wParam, LPARAM lParam);
5、调用:
m_pingThread.StartPing(5, strIPAddr, m_hWnd);
注1:参数5表示ping 5次,实际应用中随意;
6、分析结果
每ping 1次,OnStatus都会收到结果消息,如
失败返回:Request Timed Out
成功返回:Reply[n] from: 192.168.1.109: bytes=32 time=0ms TTL=64
注2:其中n 表示ping的索引(它不重要)
注3:可以在文件ping.cpp修改返回消息(void CPing::Ping(UINT nRetries,LPCSTR pstrHost,HWND hWnd))
【文件预览】:
PingDemo
----ping.h(2KB)
----PingDemoDlg.h(2KB)
----PingThread.cpp(2KB)
----res()
--------PingDemo.ico(1KB)
--------PingDemo.rc2(400B)
----PingDemoDlg.cpp(5KB)
----PingDemo.rc(5KB)
----PingThread.h(818B)
----PING.cpp(5KB)
----StdAfx.cpp(210B)
----resource.h(777B)
----PingDemo.cpp(2KB)
----StdAfx.h(1KB)
----PingDemo.dsw(539B)
----PingDemo.h(1KB)
----PingDemo.dsp(4KB)
----ReadMe.txt(1KB)