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

📄 kadmain.h

📁 Kademlia---第第3代P2P原代码
💻 H
字号:
#pragma once

#ifdef KADEMLIA_EXPORTS
#define KADAPI __declspec(dllexport)
#else
#define KADAPI
#endif

#define KADEMLIA_LIBRARY_VERSION 1.23

typedef bool (__cdecl *PartialRequestHandler)(unsigned int ip, unsigned short tcpport, unsigned short udpport, const unsigned char* tth, unsigned char inPartsCount, const unsigned short* inPartsInfo, const unsigned char* extension, unsigned char* outPartsCount, unsigned short* outPartsInfo);
typedef bool (__cdecl *PartialResponseHandler)(unsigned int ip, unsigned short tcpport, unsigned short udpport, const unsigned char* tth, unsigned char partsCount, const unsigned short* partsInfo);
typedef void (__cdecl *FileResultHandler)(const unsigned char* filehash, int ip, unsigned short tcpport, unsigned short udpport);
typedef void (__cdecl *KeywordResultHandler)(unsigned int ip, unsigned short port, const unsigned char* filehash, const char* filename, unsigned int filesize);
typedef void (__cdecl *RevConnectRequestHandler)(unsigned int ip, unsigned short tcpport, unsigned short udpport, const unsigned char* data, unsigned int dataLen);

struct KadFileInfo
{
    unsigned char*  hash;
    char*           name;
    unsigned int    size;
	int             type;
};

KADAPI int __cdecl StartKademlia(unsigned char* id, unsigned short udp, unsigned short tcp);
KADAPI void __cdecl StopKademlia();
KADAPI double __cdecl GetKademliaVersion();

//KADAPI void __cdecl PublishFile(const unsigned char* fileHash, const char* filename, unsigned int filesize);
KADAPI void __cdecl PublishFile(const unsigned char* tth, bool ahead);
//KADAPI bool __cdecl RepublishFiles(const unsigned char* fileHashList, int iCount);
KADAPI void __cdecl ResetPublishingQueue();
KADAPI bool __cdecl PublishKeyword(const unsigned char* keyhash, const struct KadFileInfo* files, int count);
KADAPI bool __cdecl FindFile(const unsigned char* fileHash);
KADAPI bool __cdecl FindKeyword(const unsigned char* keyhash, const char** _keywords, int filetype, unsigned int minsize, unsigned int maxsize);
KADAPI bool __cdecl SendPartialRequest(unsigned int ip, unsigned short port, const unsigned char* tth, unsigned char partsCount, const unsigned short* partsInfo, unsigned int extLen, const char* extBuf);
KADAPI bool __cdecl SendRevConnectRequest(unsigned int targetIp, unsigned short targetUdpPort, unsigned short localTcpPort, const unsigned char* data, unsigned int dataLen);
KADAPI void __cdecl ProcessPacket(const unsigned char* data, unsigned int dataLen, unsigned int ip, unsigned short port);

/**
 * Callback
 */ 
KADAPI void __cdecl SetFindFileResultHandler(FileResultHandler callback);
KADAPI void __cdecl SetFindKeywordResultHandler(KeywordResultHandler callback);
KADAPI void __cdecl SetPartialRequestHandler(PartialRequestHandler callback);
KADAPI void __cdecl SetPartialResponseHandler(PartialResponseHandler callback);
KADAPI void __cdecl SetRevConnectRequestHandler(RevConnectRequestHandler callback);


#define CheckKademliaVersion() (GetKademliaVersion() == KADEMLIA_LIBRARY_VERSION)

⌨️ 快捷键说明

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