kadmain.h
来自「Kademlia---第第3代P2P原代码」· C头文件 代码 · 共 51 行
H
51 行
#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 + =
减小字号Ctrl + -
显示快捷键?