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

📄 cresponse.h

📁 java 调用linux 下的ping源码
💻 H
字号:
#ifndef __ITM_CRESPONSE_H__
#define __ITM_CRESPONSE_H__

#define CRESPONSE 1

#if (CRESPONSE)
#include "jni.h"
#endif

#include <stdio.h>
#include <time.h>

#ifdef WIN32
#include <winsock.h>
#else
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <netdb.h>
#define  closesocket close

typedef unsigned char      u_char;
typedef unsigned short     u_short;
typedef unsigned int       u_int;
typedef unsigned long      u_long;
typedef u_int              SOCKET;
typedef unsigned long      DWORD;
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr *LPSOCKADDR;

typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr_in *PSOCKADDR_IN;
typedef struct sockaddr_in *LPSOCKADDR_IN;
#endif

#define REQ_DATASIZE 32		// Echo Request Data size

// IP Header -- RFC 791
typedef struct tagIPHDR
{
	u_char  VIHL;			// Version and IHL
	u_char	TOS;			// Type Of Service
	short	TotLen;			// Total Length
	short	ID;				// Identification
	short	FlagOff;		// Flags and Fragment Offset
	u_char	TTL;			// Time To Live
	u_char	Protocol;		// Protocol
	u_short	Checksum;		// Checksum
	struct	in_addr iaSrc;	// Internet Address - Source
	struct	in_addr iaDst;	// Internet Address - Destination
}IPHDR, *PIPHDR;


// ICMP Header - RFC 792
typedef struct tagICMPHDR
{
	u_char	Type;			// Type
	u_char	Code;			// Code
	u_short	Checksum;		// Checksum
	u_short	ID;				// Identification
	u_short	Seq;			// Sequence
	char	Data;			// Data
}ICMPHDR, *PICMPHDR;


#define REQ_DATASIZE 32		// Echo Request Data size
#define ICMP_ECHOREQ	8

// ICMP Echo Request
typedef struct tagECHOREQUEST
{
	ICMPHDR icmpHdr;
	DWORD	dwTime;
	char	cData[REQ_DATASIZE];
}ECHOREQUEST, *PECHOREQUEST;


// ICMP Echo Reply
typedef struct tagECHOREPLY
{
	IPHDR	ipHdr;
	ECHOREQUEST	echoRequest;
	char    cFiller[256];
}ECHOREPLY, *PECHOREPLY;


u_short in_cksum(u_short *addr, int len);
int SendEchoRequest(SOCKET s, LPSOCKADDR_IN lpstToAddr);
int WaitForEchoReply(SOCKET s);
int RecvEchoReply(SOCKET s, LPSOCKADDR_IN lpsaFrom, u_char *pTTL, char* ipAddress);
//UINT PingThread( LPVOID pParam );

#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    displayHelloWorld
 * Signature: ()V
 */
//JNIEXPORT jintArray JNICALL Java_com_servinvent_itmanager_snmp_cping_CResponse_GetTime(JNIEnv *env, jobject obj, jstring s, jint rcount);

#if (CRESPONSE==1)
JNIEXPORT jintArray JNICALL Java_com_qwserv_itm_util_protocol_RemotePing_CResponse_GetTime(JNIEnv *env, jobject obj, jstring s, jint rcount);
#endif


#ifdef __cplusplus
}
#endif

#endif //__ITM_CRESPONSE_H__

⌨️ 快捷键说明

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