#define SHAREINFO 2//共享列表信息
#define DOWNLOAD3//下载请求信息转#define SEARCH4//文件搜索信息
#define LEADERINFO 5//Group-leader peer信息
#define FILEDATA6//文件数据
#define MAX_SIZE (2048*10) //文件数据的大小
typedef struct
{
int type;//表示是何种信息,下同
ULONG size; //文件大小
ULONG downloadTimes; //文件下载次数
char name[100]; //文件名
}FileMsg; //文件信息结构体
typedef struct
{
int type;
ULONG size;//文件大小
ULONG downloadTimes;//文件下载次数
char ip[20];//文件所在IP
char name[100];//文件名
}ShareMsg; //共享信息列表结构体
typedef struct
{
int type;
ULONG size; //文件大小
ULONG seek;//文件数据块在文件中的位置
char name[100];//文件名
}DownloadMsg;//下载请求结构体
typedef struct
{
int type;
ULONG tips; //文件搜索跳数
char name[100]; //文件名
}SearchMsg; //文件搜索结构体
typedef struct
{
int type;
ULONG connectedNumber;//连接数量
ULONG fileNumber; //文件数目
char ip[20];//Group-leader peer的IP
}LeaderMsg;//Group-leader peer信息结构体
typedef struct
{
int type;
ULONG seek;//文件数据块在文件中的位置
ULONG bytes; //buff中的实际字节数
ULONG size; //文件大小
char name[100];//文件名
char buff[MAX_SIZE];//文件数据
}FileData;//文件数据结构体
(2)信息传输函数的声明。
void uploadShareList(const FileMsg& file);//upload local share list to leader
void download(const DownloadMsg& msg);//download file data
void search(QString fileName, UINT tips);//search a file
void downShareList();//download other peers' share list from leader
void otherLeadersInfo();//get other leaders' info through the connected leader
void searchBack();//seach result back, read it
void uploadFile(int sock);//upload the file data that downloader requested
void receiveList(int sock);//receive peer's share list
void sendShareList(ComSocket* socket); //send share list to peer -> socket
void sendOtherLeaderInfo(ComSocket* socket);//send other leaders' info to peer
void sendLeaderInfo(ComSocket* socket);//send leader's info to some leader
void search(int sock);//received search request from peer
void remoteSearch(SearchMsg msg);//send search to logoned leader
void leaderSearch(int sock);//received leader's search request