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

📄 common.h

📁 本Linux网络应用程序采用客户-服务器模型,并发型交互。在OSI参考模型的传输层,通过调用TCP套接字(Socket)的各种函数,使服务器和各个客户端之间建立快速可靠的连接
💻 H
字号:
#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/wait.h>
#include<netinet/in.h>   /*sockaddr_in 结构体*/
#include<signal.h>
#include<arpa/inet.h>
#include<sys/ioctl.h>
#include<net/ethernet.h>
#include<net/if.h>
#include<net/if_arp.h>

#ifndef _COMMON_H_
#define _COMMON_H_

#define SERVER_PORT 2222

#if 1
#define DEBUG(x...) \
do { \
	FILE *fp = fopen("test", "a");\
	if (fp) {\
		fprintf(fp, "%s[%d] ", __FILE__, __LINE__); \
		fprintf(fp, x); \
		fprintf(fp, "\n"); \
		fclose(fp);\
	}\
} while (0)

#else

#define DEBUG(x...) \
do { \
		printf("%s[%d] ", __FILE__, __LINE__); \
		printf(x); \
		printf("\n"); \
} while (0)

#endif

#define STRIP(s, c) \
do { \
	if (s[strlen(s) - 1] == c) \
		s[strlen(s) - 1] = '\0'; \
} while (0)

#define FCLOSE(fp) \
do { \
	if (fp != NULL) { \
		fclose(fp); \
		fp = NULL; \
	} \
} while (0);

#define CONFIG_FILE "flow.conf"  //保存用户信息。
#define BUF_LEN 	1024

#define DEC 10
#define HEX 16
#define BIN 2

struct avl_data 
{
	time_t time;
	unsigned int ip;	/* key */
	unsigned int ID;
	unsigned int type; //?
	unsigned long long value;	//限制流量
	unsigned long long used;		//已用流量
	int feeRatio; 		//计费率(一元对应的字节数)
};

#define NODE_RESOLVE(node) (struct avl_data *)node->data

#define AVL_NODE_SIZE	(sizeof(struct avl_node) + sizeof(struct avl_data))
#define MAX_LINK_NUM	10000
#define NODE_KEY_LEN	sizeof(unsigned int)

struct flow_info {
		unsigned int ID;
		unsigned int sip;
		unsigned int dip;
		unsigned int type;
		unsigned long long value;
		struct flow_info *next;
		int feeRatio; 		//计费率(一元对应的字节数) 

};


int isin(char *, int);
int parse_line(char *, char *, char*** , int);
int isnum(char *);
unsigned long ip2val(char *);
char *val2ip(unsigned long, char *);
unsigned long long str2ll(char *, int);

#endif

⌨️ 快捷键说明

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