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

📄 common.h

📁 此源代码只用于学习,不得用于其他商业活动 .
💻 H
字号:
/*
* Copyright (c) 2002, 南京联创系统集成股份有限公司综合结算产品部
* All rights reserved.
*
* 文件名称:common.h
* 摘    要:声明传输程序所用到的数据结构和宏及函数申明
*
* 当前版本:
* 作    者:冯亮(fengl@lianchuang.com)
* 完成日期:
*/
#ifndef	_COMMON_H_
#define	_COMMON_H_

#include <errno.h>
#include "basefun.h"

#define	QLEN			500

#define BUF_SIZE		8192

#define	SOCK_TIME_OUT	600

#define	STRING_LEN		1024

#define	MAX_PATH		255
#define	DATA_LENGTH		10240
#define	FILE_NAME_LEN	255
#define	INFO_LEN		255

extern char *sys_errlist[];

/*数据的传输结构*/
struct	S_DataInfo
{
	/*传输类型: 0:PUTFILE -- 上传文件 1:GETFILE -- 下载文件*/
	int iTransferType;
	/*远端路径*/
	char chRemotePath[MAX_PATH];
	/*远端最终路径*/
	char chRemoteTargetPath[MAX_PATH];
	/*远端备份路径*/
	char chRemoteBackupPath[MAX_PATH];
	/*文件的过滤条件*/
	char chFileFilter[MAX_PATH];
	/*当前文件位置*/
	long lFilePos;
	/*1--压缩;0--不压缩*/
	int iCompress;
	/*返回状态:0--无文件,1--存在文件,2--文件发送完成 -1 ---失败*/
	int iStatus;
	/*错误信息*/
	char chErrorMsg[INFO_LEN];
	/*文件名*/
	char chFileName[FILE_NAME_LEN];
	/*原始文件长度*/
	long lFileLen;
	/*压缩后文件长度*/
	long lZipSize;
	/*数据块长度*/
	long lDataLen;
	/*控制信息校验值*/
	long lCheckValue;
	/*预留字段1*/
	int iReserved1;
	/*预留字段2*/
	int iReserved2;
	/*数据块*/
	char chData[DATA_LENGTH];
};

/*下载文件*/
#define	CMD_GET				1
/*上传文件*/
#define	CMD_PUT				0

/*状态 错误*/
#define	STATUS_ERROR		0
/*无文件*/
#define	STATUS_NOFILE		1
/*存在文件*/
#define	STATUS_FILEEXIST	2
/*现在正在发送文件*/
#define	STATUS_SENDFILE		3
/*这是最后的文件块*/
#define	STATUS_LASTDATA		4
/*文件发送完成*/
#define	STATUS_FINISH		5
/*结束本次会话*/
#define	STATUS_BYBY			6
/*请求发送信息*/
#define	STATUS_FILEINFO		7

#define	COMPRESS			1
#define	NOT_COMPRESS		0

#define	MODE_READ			0
#define	MODE_WRITE			1

struct GOBALINFO
{
	/*程序目录*/
	char chExePath[MAX_PATH];
	/*配置文件名*/
	char chConfigFile[MAX_PATH];
	/*日志文件目录*/
	char chLogPath[MAX_PATH];
	/*告警文件目录*/
	char chAlertPath[MAX_PATH];
	/*移动标志*/
	int iMoveFlag;
	/*侦听端口*/
	int iListenPort;
	/*是否为守护进程*/
	int iDaemonFlag;
	/*进程运行标记*/
	int iRunFlag;
	/*程序调试标志*/
	int iDebugFlag;
	/*备份标志*/
	int iBackupFlag;
};

struct GOBALMUTEX
{
	/*写日志互斥*/
	pthread_mutex_t LogMutex;
	/*写告警互斥*/
	pthread_mutex_t AlertMutex;
	/*搜索文件互斥*/
	pthread_mutex_t SearchFileMutex;
};

extern struct GOBALINFO GobalInfo;
extern struct GOBALMUTEX GobalMutex;

extern int errno;

/*函数原型申明*/
void Msg(const char *chMsg, ...);

void Log(const char *chLog, ...);

void GetFullName(struct S_DataInfo *data, char *chFullName);

void print_data(struct S_DataInfo *data);

long GetFileSize(char *chFileName);

int GetSockData(int iSockfd, struct S_DataInfo *data);

int WriteSockData(int iSockfd, struct S_DataInfo *data);

int TimeWait(int fd, int Mode);

int SearchFile(struct S_DataInfo *data);

int SendFile(int iSockfd, struct S_DataInfo *data, char *chFullName);

int ZipFile(char *chFileName);

int UnZipFile(char *chFileName);

int IsZipFile(char *chFileName);

int DeleteFile(struct S_DataInfo *data);

int ProcessGetConnect(int iSockfd, struct S_DataInfo *data);

int SendFileInfo(int iSockfd, struct S_DataInfo *data);

int ProcessPutConnect(int iSockfd, struct S_DataInfo *data);

int GetFileInfo(int iSockfd,struct S_DataInfo *data);

int SaveFile(struct S_DataInfo *data,char *chLocalDir);

int CheckData(struct S_DataInfo *data);

int SetCheckValue(struct S_DataInfo *data);

int FileToTemp(char *chSrcPath,char *chSrcFile,char * chDescPath,char *chDestFile);

int TempToFile(const char *chSrcPath, const char *chSrcFile, const char *chDescPath, char *chDestFile);

int FileToTargetPath(struct S_DataInfo *data);

int BackupFile(struct S_DataInfo *data);

#endif//_COMMON_H_

//---------------------------------------The End-----------------------------------

⌨️ 快捷键说明

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