⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myping.h

📁 ping 不是很好要完善
💻 H
字号:
// MyPing.h: interface for the CMyPing class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MYPING_H__E07B9CBF_CD10_445E_A5DC_685E5F9CD825__INCLUDED_)
#define AFX_MYPING_H__E07B9CBF_CD10_445E_A5DC_685E5F9CD825__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#pragma pack(1)
#include <winsock2.h>
#include <afxsock.h>
#define ICMP_ECHOREPLY 0
#define ICMP_ECHOREQ 8
#define REQ_DATASIZE 32
//Echo 请求数据的大小
#define WM_MSG_STATUS WM_USER+0x0100
#define WM_PING_END WM_USER+0x0101
class CMyPing  
{
public:
	void Ping(UINT nRetries,LPCSTR pstrHost,HWND hWnd);
	HWND m_hWnd;
	u_short in_cksum(u_short *addr,int len);
	int SendEchoRequest(SOCKET,LPSOCKADDR_IN);
	int WaitForEchoReply(SOCKET s);
	DWORD RecxEchoReply(SOCKET,LPSOCKADDR_IN,u_char*);
	CMyPing();
	virtual ~CMyPing();

protected:
	void WSAError(LPCSTR pstrFrom);
};
typedef struct tagIPHDR
{
	u_char VIHL;
	//版本
	u_char TOS;
	//类型
	short TotLen;
	//总长
	short ID;
	//ID
	short FlagOff;
	u_char TTL;
	u_char Protocol;
	u_short Checksum;
	struct in_addr iaSrc;
	struct in_addr iaDst;
}IPHDR,*PIPHDR;
//ICMP Header-RFC 792
typedef struct tagICMPHSR
{
	u_char Type;
	u_char Code;
	u_short Checksum;
	u_short ID;
	u_short Seq;
	char Data;
}ICMPHDR,*PICMPHDR;
//ICMP请求
typedef struct tagECHOREQUEST
{
	ICMPHDR icmpHdr;
	DWORD dwTime;
	char cData[REQ_DATASIZE];
}ECHOREQUEST,*PECHOREQUEST;
//ICMP回应
typedef struct tagECHOREPLY
{
	IPHDR ipHdr;
	ECHOREQUEST echoRequest;
	char cFiller[256];
}ECHOREPLY,*PECHOREPLY;
#pragma pack()
#endif // !defined(AFX_MYPING_H__E07B9CBF_CD10_445E_A5DC_685E5F9CD825__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -