wince 下cmd ping命令的执行
来源:互联网 发布:淘宝3c数码是哪个类目 编辑:程序博客网 时间:2024/04/29 08:14
#include <winsock2.h>
#include <iphlpapi.h>
#pragma comment(lib, "iphlpapi.lib")
#include <icmpapi.h>
void Ctest111Dlg::CEPing(CString cIPAddr,CListBox * pListBox,UINT uiTimes)//CWnd * pWnd ,
{
WSAData wsaData;
//初始化Socket动态链接库
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0)
{
return ;
}
// 最少 ping 的次数
if (uiTimes == 0)
uiTimes = 4;
//将IP地址转换成单字节
char szDestIPAddr[255];
ZeroMemory(szDestIPAddr,255);
WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK
,cIPAddr.GetBuffer(cIPAddr.GetLength()),cIPAddr.GetLength()
,szDestIPAddr,cIPAddr.GetLength(),NULL,NULL);
IPAddr ipAddr;
//将目标字符串IP地址转换成IPAddr结构
ipAddr = inet_addr(szDestIPAddr);
if (ipAddr == INADDR_NONE)
{
AfxMessageBox(_T("地址无效"));
return ;
}
// 打开ping服务
HANDLE hIP = IcmpCreateFile();
if (hIP == INVALID_HANDLE_VALUE) {
AfxMessageBox(_T("不能打开Ping服务"));
return ;
}
// 构造ping数据包
char acPingBuffer[64];
memset(acPingBuffer, '*', sizeof(acPingBuffer));
PICMP_ECHO_REPLY pIpe = (PICMP_ECHO_REPLY)GlobalAlloc( GMEM_FIXED | GMEM_ZEROINIT,
sizeof(ICMP_ECHO_REPLY) + sizeof(acPingBuffer));
if (pIpe == 0) {
AfxMessageBox(_T("分配ping包缓冲区失败"));
return ;
}
CString m_recv;
// 发送ping数据包
m_recv = _T("ping ")+cIPAddr+_T(" with 64 Bytes");
pListBox->AddString(m_recv);
for (UINT i=0; i<uiTimes; i++)
{
//发送ping服务包,等待接收时间为1秒
DWORD dwStatus = IcmpSendEcho(hIP,ipAddr,
acPingBuffer, sizeof(acPingBuffer), NULL, pIpe,
sizeof(ICMP_ECHO_REPLY) + sizeof(acPingBuffer), 4000);
//当dwStatus不等于0,代表接收到回应
if (dwStatus != 0)
{
m_recv.Format(_T("Reply From %d.%d.%d.%d :bytes=%d time=%dMS TTL")
,int(LOBYTE(LOWORD(pIpe->Address)))
,int(HIBYTE(LOWORD(pIpe->Address)))
,int(LOBYTE(HIWORD(pIpe->Address)))
,int(HIBYTE(HIWORD(pIpe->Address)))
,int(pIpe->DataSize)
,int(pIpe->RoundTripTime)
,int(pIpe->Options.Ttl));
//pListBox->InsertString(0,m_recv);
pListBox->AddString(m_recv);
Sleep(500);
// 显示最后一行
// pListBox->SetLocale(i);
// pListBox->SetSel(i,TRUE);
// pListBox->SetTopIndex(i);
}
else
{
pListBox->AddString(_T("Error obtaining info from ping packet."));
}
//pWnd->UpdateWindow();
}
//释放已分配的内存
GlobalFree(pIpe);
//关闭Ping服务
IcmpCloseHandle(hIP);
//释放Socket资源
WSACleanup();
}
- wince 下cmd ping命令的执行
- WinCE添加CMD命令提示符添加ping命令
- Delphi 执行Cmd下的命令
- python下执行cmd命令
- asp.net环境下的cmd命令执行
- asp.net环境下的cmd命令执行
- Asp.net环境下的cmd命令执行
- VBA调用cmd命令行下执行的命令
- java执行windows下cmd命令的方法
- java执行windows下cmd命令的方法
- cmd命令---ping!
- 命令行下CMD不能使用ping和ipconfig命令
- cmd下输入ping命令 出现sid字样
- window下使用cmd执行php命令
- windows下cmd命令执行php语句
- java调用cmd命令ping
- 必须掌握的八个cmd 命令一,ping
- ping和taskkill和cmd和avac命令的详解
- 在使用ajaxcontroltoolkit时出现 'SYS' 未定义
- 利用LD_PRELOAD发现程序潜在的问题
- C# 九宫格游戏
- VC++使用ADO连接SQL Server数据库
- struts2文件上传中,如何限制上传的文件类型
- wince 下cmd ping命令的执行
- 网站装饰品---地图,时钟
- 技巧: 使用truss、strace或ltrace诊断软件的"疑难杂症"
- 圆角图片制作
- 开源网站
- 一次解决系统性能的日记(Solaris8)
- Solaris下的性能与调整
- java字符串的各种编码转换 (转)
- 两种排序算法 插入排序 和冒泡排序:插入排序要比冒泡快2倍以上