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

📄 kadc.txt

📁 p2p类源代码 kadc协议官方源代码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
#define OP_REVCONNPACKEDPROT	0xD1

/***************************************************************************/

/* Overnet  - using symbolic names derived from Ethereal's plugin */
/* In Overnet PEER is 23 byte long, as TCPport is missing */

#define OP_EDONKEYHEADER		0xE3

#define OVERNET_CONNECT                     0x0A  /* > <PEER (sender)[23]> [2+23=25]				*/
#define OVERNET_CONNECT_REPLY               0x0B  /* < <LEN[2]> <PEER [23]>[len]	[2+2+23*LEN]		*/

#define OVERNET_PUBLICIZE                   0x0C  /* > <PEER (sender)[23]> [2+23=25]				*/ /* OvernetPublicize in mldonkey */
#define OVERNET_PUBLICIZE_ACK               0x0D  /* < (null) [2+0=2]								*/

#define OVERNET_SEARCH                      0x0E  /* > <PARAMETER[1]> <HASH> [2+1+16=19]			*/ /* OvernetSearch in mldonkey */
#define OVERNET_SEARCH_NEXT                 0x0F  /* < <HASH> <LEN[1]> <PEER>[len] 2+16+1+23*LEN]	*/ /* OvernetSearchReply in mldonkey */

/* if the peer lists itself in the OVERNET_SEARCH_NEXT reply, the initiator may send it a OVERNET_SEARCH_INFO */
#define OVERNET_SEARCH_INFO                 0x10  /* > <HASH> 0 <MIN> <MAX> [2+16+1+2+2 = 23]		*/ /* OvernetGetSearchResults in mldonkey */
												  /*   <HASH> 1 <SEARCH_TREE> <MIN> <MAX> */ /* OvernetGetSearchResults in mldonkey */
#define OVERNET_SEARCH_RESULT               0x11  /* < <SEARCH_HASH> <FILE_HASH> <CNT4> <META>[cnt]*//* OvernetSearchResult in mldonkey */
/* the two ushorts are listed by OvernetClc:
> s fat day -Audio
> Got results. (2650,2650)
  Got results. (4564,4564)
Meaning?? */
#define OVERNET_SEARCH_END                  0x12  /* < <HASH> <two ushorts> [2+16+4=22]*/	/* OvernetNoResult in mldonkey */

/* cDonkey only publishes 2 METAs: filename (EDONKEY_STAG_NAME) and filesize (EDONKEY_STAG_SIZE) */
/* OvernetClc publishes filename, filesize, filetype (EDONKEY_STAG_TYPE) fileformat (EDONKEY_STAG_FORMAT) and availability (EDONKEY_STAG_AVAILABILITY) */
#define OVERNET_PUBLISH                     0x13  /* >  <kwHASH> <fileHASH> <CNT4> <META>[cnt] (publishing filename, filetype, fileformat, filesize...)
														<fileHASH> <myHASH> <CNT4> <META>[cnt] (publishing loc) */	/* OvernetPublish in mldonkey */
#define OVERNET_PUBLISH_ACK                 0x14  /* < <firstHASHinPublish>	[2+16=18]						*/	/* OvernetPublished in mldonkey */

#define OVERNET_IDENTIFY                    0x1E  /* > (null)	[2+0=2]							*/ /* (not defined in mldonkey) */
#define OVERNET_IDENTIFY_REPLY              0x15  /* < <CONTACT (sender)> [2+22=24]				*/	/* (not defined in mldonkey) */
#define OVERNET_IDENTIFY_ACK                0x16  /* > <PORT_tcp (sender)> [2+2=4]				*/	/* (not defined in mldonkey) */

/* please open a TCP connection to my PORT_tcp (and send me the file targetHASH?)  */
#define OVERNET_FIREWALL_CONNECTION         0x18  /* > <targetHASH> <senderTcpPORT> [2+16+2=20]	*/ /* OvernetFirewallConnection in mldonkey */
#define OVERNET_FIREWALL_CONNECTION_ACK     0x19  /* < <targetHASH>	[2+16=18]					*/ /* OvernetFirewallConnectionACK in mldonkey */
#define OVERNET_FIREWALL_CONNECTION_NACK    0x1A  /* < <targetHASH>	[2+16=18]					*/ /* OvernetFirewallConnectionNACK in mldonkey */

#define OVERNET_IP_QUERY                    0x1B  /* > <PORT_tcp> [2+2=4]						*/ /* OvernetGetMyIP in mldonkey */
#define OVERNET_IP_QUERY_ANSWER             0x1C  /* < <IP>		[2+4=6]							*/ /* OvernetGetMyIPResult in mldonkey */
#define OVERNET_IP_QUERY_END                0x1D  /* < (null)	[2+0=2] only if Tport accessible*/ /* OvernetGetMyIPDone in mldonkey */

#define OVERNET_PEER_NOTFOUND				0x21  /* > <HASH> <IP> <PORT> <FLAG> mldonkey removes the peer when it receives it*/  /* OvernetPeerNotFound in mldonkey */

/*
   PARAMETER used in OVERNET_SEARCH:
   Search for loc or metadata: uses only 0x02
   Publishing:                 uses only 0x04
   Lookup for its own hash:    uses only 0x14
   Apparently during startup
 */

#define OVERNET_FIND_SEARCH		0x02 /* use when searching for metadata or loc - NOT used during publishing. */
#define OVERNET_FIND_ONLY		0x04 /*    used during publishing */
#define OVERNET_FIND_UNKN		0x0A /*    10 ?? never seen by EM */
#define OVERNET_FIND_SELF		0x14 /*    20 - used only for node lookups of itself */

/* EDONKEY TAG_TYPEs */
#define EDONKEY_MTAG_UNKNOWN             0x00
#define EDONKEY_MTAG_HASH                0x01
#define EDONKEY_MTAG_STRING              0x02
#define EDONKEY_MTAG_DWORD               0x03
#define EDONKEY_MTAG_FLOAT               0x04
#define EDONKEY_MTAG_BOOL                0x05
#define EDONKEY_MTAG_BOOL_ARRAY          0x06
#define EDONKEY_MTAG_BLOB                0x07

/* EDONKEY SPECIAL TAGS */
#define EDONKEY_STAG_UNKNOWN             0x00
	/* only following 4 used in Overnet: */
	/* Note: Overnet's GUI labels "format" the widget to select type;
	   OvernetClc generates "format" tags for -<Type> command options */
#define EDONKEY_STAG_NAME                0x01
#define EDONKEY_STAG_SIZE                0x02
#define EDONKEY_STAG_TYPE                0x03 /* audio, video, doc... */
#define EDONKEY_STAG_FORMAT              0x04 /* MP3, zip... */

#define EDONKEY_STAG_COLLECTION          0x05
#define EDONKEY_STAG_PART_PATH           0x06
#define EDONKEY_STAG_PART_HASH           0x07
#define EDONKEY_STAG_COPIED              0x08
#define EDONKEY_STAG_GAP_START           0x09
#define EDONKEY_STAG_GAP_END             0x0a
#define EDONKEY_STAG_DESCRIPTION         0x0b
#define EDONKEY_STAG_PING                0x0c
#define EDONKEY_STAG_FAIL                0x0d
#define EDONKEY_STAG_PREFERENCE          0x0e
#define EDONKEY_STAG_PORT                0x0f
#define EDONKEY_STAG_IP                  0x10
#define EDONKEY_STAG_VERSION             0x11
#define EDONKEY_STAG_TEMPFILE            0x12
#define EDONKEY_STAG_PRIORITY            0x13
#define EDONKEY_STAG_STATUS              0x14
#define EDONKEY_STAG_AVAILABILITY        0x15
#define EDONKEY_STAG_QTIME               0x16
#define EDONKEY_STAG_PARTS               0x17

/* EMULE SPECIAL TAGS */
#define EMULE_STAG_COMPRESSION         0x20
#define EMULE_STAG_UDP_CLIENT_PORT     0x21
#define EMULE_STAG_UDP_VERSION         0x22
#define EMULE_STAG_SOURCE_EXCHANGE     0x23
#define EMULE_STAG_COMMENTS            0x24
#define EMULE_STAG_EXTENDED_REQUEST    0x25
#define EMULE_STAG_COMPATIBLE_CLIENT   0x26


/* SEARCH_TREE's are Forward Polish Notation expressions :

SEARCH   ::= 	0x00 <OPERATOR> <SEARCH> <SEARCH>
	   			0x01 <STRING>
	   			0x02 <META_VALUE[]> <META_NAME[]>
	   			0x03 <DWORD[4]> <MINMAX[1]> <META_NAME[]>
OPERATOR ::=	0x00 // AND
				0x01 // OR
				0x02 // NOT AND
MINMAX   ::=	0x01 // MIN
				0x02 // MAX
*/

/* EDONKEY SEARCH TYPES */

/* <Search> ::=  <Operator> <Search Query> <Search Query> */
#define EDONKEY_SEARCH_BOOL              0x00

/* <Search> ::=  <String> */
#define EDONKEY_SEARCH_NAME              0x01

/* <Search> ::=  <String> <Meta tag Name> */
#define EDONKEY_SEARCH_META              0x02

/* <Search> ::=  <SizeLimit (guint32)> <Minmax (1)> <Meta tag Name> */
#define EDONKEY_SEARCH_LIMIT             0x03

/* EDONKEY SEARCH OPERATORS */
#define EDONKEY_SEARCH_AND               0x00
#define EDONKEY_SEARCH_OR                0x01
#define EDONKEY_SEARCH_ANDNOT            0x02

/* EDONKEY SEARCH MIN/MAX   */
#define EDONKEY_SEARCH_MIN               0x01
#define EDONKEY_SEARCH_MAX               0x02



****** Time intervals

mldonkey uses these values:
- every 3 minutes looks for better peers where to publish data that need to be published
- every 3 hours republishes
- before publishing, it waits for at least 50 seconds of bootstrap (OvernetConnect)
- a search is terminated anyway after 140 s (or after finding enough hits, 200 by default)
- queries are not repeated for at least 5 s


⌨️ 快捷键说明

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