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