PtokaX wiki

Hub (server) for Direct Connect

User Tools

Site Tools


dcprotocol

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dcprotocol [14/10/2012 05:06]
ppk
dcprotocol [21/01/2013 18:23] (current)
ppk
Line 1: Line 1:
 ====== Direct Connect protocol documentation ====== ====== Direct Connect protocol documentation ======
  
-[[dcprotocol:hub_client|Hub <-> client.]]\\ +===== Basic info ===== 
-[[dcprotocol:client_client|Client <-client.]]+[[http://en.wikipedia.org/wiki/Direct_Connect_%28file_sharing%29|Direct Connect protocol]] is text based [[http://en.wikipedia.org/wiki/Peer-to-peer_file_sharing|peer-to-peer]] file sharing protocol for client-server network. Was created by Jon Hess under company NeoModus. Original protocol don't have official documentation and documentation was created by reverse engineering of original software (see links to original software on bottom). For protocol extensions is in most cases documentation available.\\ 
 + 
 +===== Protocol basics ===== 
 +  * Protocol commands start with **$**.\\ 
 +  * In client from/to hub connection command starting with **<** is used as chat message.\\ 
 +  * Commands starting with another character are usually used as chat when hub send them to client or ignored in client to client connection.\\ 
 +  * Protocol commands end with **|** (pipe).\\ 
 +  * Most commands use $ and space as separators.\\ 
 +  * Original software use default [[http://en.wikipedia.org/wiki/ASCII|ASCII]] character encoding of [[http://en.wikipedia.org/wiki/Operating_system|Operating system]] where is running. It is possible to use [[http://en.wikipedia.org/wiki/Utf-8|UTF-8]] because it is backward compatible with ASCII. Of course software without UTF-8 support don't show all characters correctly. But it is same as with ASCII when software is running on Operating systems with different encoding (most visible when one side is using western encoding and other russian encoding).\\ 
 +  * For hub addresses is used (but optional) <html><b>dchub://</b></html> prefix.\\ 
 +  * Default hub port is **411**, when hub address don't contain port then client automatically connecting to port 411.\\ 
 +  * Client is identified by Nick.\\ 
 +  * Clients can use one of two modes: **Active** or **Passive**. Client in Active mode can download from all clients and use UDP to receive search reply. Client in Passive mode can download only from Active clients and receive search reply over TCP connection with hub. 
 +  * Connection from client to hub use TCP. Connection for transfers between clients use TCP. Search reply is using UDP when user is active.\\ 
 +  * Protocol use [[http://en.wikipedia.org/wiki/Escape_sequence|Escape sequences]] for special characters. Escape sequence is  /%DCNxxx%/ where xxx is decimal number for ASCII character code. 
 +  * Original software use these escape sequences: 
 +    - **/%DCN000%/** (null character is not allowed by protocol). 
 +    - **/%DCN005%/** (enquiry, used by some protocol commands). 
 +    - **/%DCN036%/** ($, used by some commands). 
 +    - **/%DCN096%/** (`). 
 +    - **/%DCN124%/** (|, used as end of command). 
 +    - **/%DCN126%/** (~). 
 +  * When DC++ use correctly original escape sequences for correct [[dcprotocol:hub_client:key|$Key]] command generation, for other part of protocol use html escapes: 
 +    - **&#36;** ($, used by some commands). 
 +    - **&#124;** (|, used as end of command). 
 +    - **&amp;** (&). 
 + 
 +===== Protocol commands ===== 
 +[[dcprotocol:hub_client|Client to Hub and Hub to Client commands.]]\\ 
 +[[dcprotocol:client_client|Client to Client commands.]] 
 + 
 +===== Protocol extensions ===== 
 +[[dcprotocol:hub_client:ipv6|IPv6 extensions.]] 
 + 
 +===== Links to original software ===== 
 +[[http://www.czdc.org/Neo-Modus Direct Connect/DCSetup.exe|Direct Connect client 1]]\\ 
 +[[http://www.czdc.org/Neo-Modus Direct Connect/DCUpgrade.exe|Direct Connect client 1 upgrade to latest 1 version]]\\ 
 +[[http://www.czdc.org/Neo-Modus Direct Connect/DCSetup-220.exe|Direct Connect client 2]] 
 + 
 +[[http://www.czdc.org/Neo-Modus Direct Connect/DCHubSetup.exe|Direct Connect hub 1]]\\ 
 +[[http://www.czdc.org/Neo-Modus Direct Connect/DCHubSetup-20.exe|Direct Connect hub 2]] 
dcprotocol.1350191193.txt.gz · Last modified: 14/10/2012 05:06 by ppk