DC++ is a free, open-source file-sharing client for Windows that connects to Direct Connect networks. It supports both the newer ADC protocol and the older NMDC protocol, and is released under the GNU GPL with no advertising.
How hubs connect users
A Direct Connect hub is a server run by an individual user. It lists who is online, carries a shared main chat and passes search requests between members, but it does not store any files. Transfers happen directly between two clients. Each hub sets its own rules, often a minimum share size.
DC++ can stay connected to several hubs at the same time. Public hubs accept anyone, while private hubs need a username and password. The Public Hubs window loads hub directories from hub list servers. Addresses beginning with adcs:// or nmdcs:// open an encrypted connection.
Favorite Hubs works like a bookmark list with per-hub settings. Each entry can carry its own nick, password and user description, falling back to the defaults when left blank. Hubs can be sorted into groups.
Hub chat and the user list
A hub window in DC++ splits into the chat area and the list of connected users. The user list shows each member’s nick, share size, description, connection speed and open slots. A filter box can hide rows by word or regular expression.
Right-clicking a user opens actions such as downloading their file list or sending a private message. Other actions include granting an extra upload slot for the session, ignoring their chat or adding them to favorites. A security icon in the status bar shows whether the hub connection is encrypted and trusted.
Sharing folders and upload slots
Folders are added to the share from settings or by dragging them from Windows Explorer. Each folder gets a virtual name, which other users see instead of the real path. Giving several folders the same virtual name merges them into one folder in the file list. DC++ calculates a file’s Tiger Tree Hash (TTH) before offering it. A progress dialog shows the hashing.
Upload slots set how many people can download from the user at once, with each remote user taking one slot per hub. Small files under 512 KiB and file lists can go through extra mini-slot connections without using a regular slot. An optional rule opens extra slots when average upload speed drops below a set value.
Searching other users’ shares
The Search window sends keywords to all connected hubs or only to selected ones. Words starting with a minus sign are excluded. Results can be narrowed by size, file type or TTH. Other options limit results to users with free slots or hide files already in the user’s own share. Results with the same hash are grouped into one entry, with a Hits count showing how many users have that file.
From a result, DC++ can queue the file, queue its whole folder, open a plain-text file in a viewer, or start a new search for alternate sources.
Browsing file lists
Every user’s share is published as a file list. “Get file list” downloads the whole list, while “Browse file list” fetches only the folders actually opened. The browser shows folders on the left and files with size and TTH on the right. It can queue single files or entire folders. Match queue compares a list against the download queue by hash and adds that user as a source for any matching file.
Download queue and file integrity
Queued items appear in a folder tree with their sources, status and per-source errors. A file can come from one or more sources. Because DC++ identifies files by TTH rather than by name, it treats identical files from different users as the same download. Hash checking also catches corrupted data. A Tiger tree mismatch flags the source. Interrupted downloads resume where they stopped once the full tree is available.
Priorities run from Paused to Highest and can be set per file or folder. DC++ can assign priority automatically by file size and search periodically by hash for more sources. It can also drop or disconnect sources that stay below a speed threshold. Unfinished files sit in a separate temporary folder and move to the download folder when complete.
Connection setup and bandwidth
DC++ can detect connectivity settings on its own, including configuring port mapping on compatible routers through UPnP or NAT-PMP. A log explains which mode it chose. Manual settings remain available for setups such as VPNs. Uploads, downloads, file transfers and private messages can be encrypted with SSL.
Upload and download rates can be capped, and a secondary set of limits and slot counts can apply during a daily time window.
Languages and plugins
The interface is translated into many languages by the community. DC++ also loads plugins packaged as .dcext files and managed from the File menu. Available plugins add features such as Lua scripting, spell checking in chat, chat highlighting rules and a protocol analyzer for ADC and NMDC traffic.






