www.pudn.com > UDP文件传输.rar > zs_p2pfilecmd.h


#ifndef ZS_P2P_FILE_CMD_H 
#define ZS_P2P_FILE_CMD_H 1 
//////////////////////////////////////////////////////////////////////////// 
 
 
//文件名		: zs_p2pfilecmd.h 
 
//功能			: 中搜UDP文件传输命令包格式定义文件 
 
//创建			: 2004.11.14 
 
//修改日期		: 2004.11.14 
 
//作者			: 韩国静 
// 
 
#include "zs_p2p_const.h" 
typedef struct  
{ 
	UNI_WORD	type; 
	UNI_WORD	cmd; 
	UNI_DWORD	trans_id; 
	UNI_DWORD	pack_id; 
	UNI_DWORD	stream_size; 
	UNI_DWORD	out_ip; 
	UNI_WORD	out_port; 
	UNI_DWORD	use_ip; 
	UNI_WORD	use_port; 
	UNI_DWORD	other_len;//可能是文件名的长度(包含结束0) 
	UNI_DWORD	user_data_len; 
	UNI_DWORD	other_info;	//一般接收方忽略此值, 
							//但UDP_SVR_FILE_WAIT命令中服务要带一个数据,客户应在UDP_CLIENT_FILE_REQ中回发此数据 
							//UDP_FILE_NEXT命令使用此字段标识接收方的最大接收缓冲区 
	char	user_name[MAX_NAME];//自己的用户名,有可能是猪号 
	char	append_str[MAX_NAME];//外发给服务时接受者的用户名或登录时的用户密码 
	//////////////// 
	/* 
	当other_len不为零时,文件信息出现在这里且objectInfoLen是它的长度 
	*/ 
	/////////////////// 
	/* 
	当user_data_len不为零时,用户自定义数据出现在这里,且userDataLen是它的长度 
	*/ 
	////////////////// 
 
}FILE_CMD,*PFILE_CMD; 
 
 
typedef struct{ 
	FILE_CMD head; 
////////////////////////////////////////// 
	char fileName[MAX_FILE_NAME]; 
}UDPFILE_CMD,*PUDPFILE_CMD; 
 
//#define SIZE_OBJECT (sizeof(UDPFILE_CMD)-sizeof(FILE_CMD)) 
 
typedef enum { 
	UDP_COMMAND_TEST=-1, 
	UDP_COMMAND_NOT_USE=0, 
	//客户与服务通信的命令 
	UDP_CLIENT_QUIT,	//1 
	UDP_CLIENT_HERE,	//2 
	UDP_CLIENT_ACK,		//3 
	UDP_CLIENT_FILE_REQ,	//4 
	//服务与客户通信的命令 
	UDP_SVR_FILE_WAIT,		//5 
	UDP_SVR_FILE_NO,//服务代替接收者取消或拒绝文件 
	UDP_SVR_FILE_ACK,		//7 
 
	UDP_SVR_FILE_REQ,		//8 
 
	UDP_SVR_ACK,			//9 
	//发送方与接收方通信的命令 
	UDP_READY_OK,			//a 
	UDP_FILE_DATA,			//B 
	UDP_FILE_SEND_CANCEL,	//C 
	UDP_FILE_END,			//D 
	UDP_FILE_SUCCESS_ACK,	//E 
 
	//接收方发送给发送方的命令 
	UDP_READY_TEST,//此命令用来试测对方能否收到,对方以UDP_READY_OK 
	UDP_FILE_NEXT,			//10 
	UDP_FILE_RECV_CANCEL,	//11 
	UDP_FILE_SUCCESS, 
	 
	 
}E_UDP_CMD; 
typedef enum{ 
	UDP_FILE_CMD=0, 
	UDP_FILE_PROXY, 
	UDP_FILE_TEST, 
}E_UDP_TYPE; 
 
///////////////////////////////////////////////// 
#endif