ping.h

来自「一个用ACE别写的ping 程序」· C头文件 代码 · 共 61 行

H
61
字号
// Ping.h: interface for the CPing class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PING_H__1795566F_5C91_459D_BF56_62925F416138__INCLUDED_)
#define AFX_PING_H__1795566F_5C91_459D_BF56_62925F416138__INCLUDED_

#include "ace/Basic_Types.h"

class CPing  
{
public:
//如果ping通,返回非0,
//没有ping通,返回0
	static BOOL PingHost(DWORD dwNetOrderIP,int trynums, int timeout);

//如果ping通,返回非0,
//没有ping通,返回0
	static BOOL PingHost(DWORD dwNetOrderIP,int trynums, int timeout,const void * pPingData,int len);
};

class CPingFunc
{
public:
//如果ping通,返回非0,
//没有ping通,返回0
	static int ping(DWORD dwNetOrderIP,int trynums, int timeout,const void * pPingData,int len,ACE_HANDLE sock);

private:
	static void fill_icmp_data(char * icmp_data,ACE_UINT16 i_process_id,ACE_UINT16 seq,const void * pPingData,int len);
	static int decode_resp(const char *buf, int bytes,ACE_UINT16 i_process_id,ACE_UINT16 seq,const void * pPingData,int len);
	
	static ACE_UINT16 checksum(const ACE_UINT16 *buffer, int size);


};

#include "ace/OS_NS_sys_socket.h"

class CPingObj
{
public:
	CPingObj();
	~CPingObj();

public:
	//失败返回0,成功返回其它
	int Init(int timeout=300);

	int ping(DWORD dwNetOrderIP,int trynums,const void * pPingData,int len);

	//由程序随机构成pPingData和len
	int ping(DWORD dwNetOrderIP,int trynums);

private:
	ACE_HANDLE m_sockRaw;
	int m_timeout;

};
#endif // !defined(AFX_PING_H__1795566F_5C91_459D_BF56_62925F416138__INCLUDED_)

⌨️ 快捷键说明

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