Science Fair Project Encyclopedia
As of 2005, no official statistics exist to verify the proportion of DirectConnect users using DC++. However, it is generally believed to be the most extensively used by a large margin; administrators of popular public DirectConnect hubs generally agree that DC++ is the client used by a significant majority.
DC++ is an open-source alternative to the original client, NeoModus Direct Connect (NMDC). It connects to the same file-sharing network, and supports the same file-sharing protocol. One of the reasons commonly attributed to the aforementioned popularity of DC++ is the fact that it has no adware of any kind; NMDC on the other hand contains adware.
Many other clients exist for the Direct Connect network, and most of these are DC++ "mods": modified versions of DC++, based on DC++'s source code. A partial list of DC++ mods is given below. Some of these clients were developed for specialized communities (e.g., music-sharing communities), or in order to support specific experimental features, or perhaps features that have been rejected from inclusion in DC++ itself. An example of an experimental feature is hashing, which was initially implemented in BCDC++ and later adopted by DC++.
A problem is that because DC++ is open source, several hacks for DC++ have been released that allow users to abuse the network. As of 2002, DC++ was still not accepted into some hubs because it was understood that the number of slots is shared by all the hubs that the client is connected to. When the DC++ tag was added to the client, a hack was to remove the tag in an attempt to mask the identity of the client. Other hacks can make it possible to report an inflated share size to the hub (which, in turn, allows entry to "better" hubs with higher minimum share requirements) or to lock all upload slots (effectively making it impossible to download anything from that user). However, operators in most hubs posess tools to automatically scan for such "hacked clients" and kick or ban users who use them.
An advantage of DC++ being open source, is that several mods have been released that add features to the original client. Many users send patches to DC++ that get included, but some features are rejected by the DC++ developer, either because they are coded poorly or they do not fit into the main client. Examples include: bandwidth limiting (many users with a decent connection feel that bandwidth limiting is a form of cheating, others see it as a necessity to get decent download speeds), colorized chat, specialized operator functions (e.g. client/share checking). The developers of some mods, notably those working on BCDC++, contribute every feature/bug-fix that might be appropriate for the main client back to DC++. The developers of other mods, notably rmDC, refuse to admit that their code is based on DC++ and break the GPL by not releasing the source code.
Below, a list of well-known mods and their features:
- Automatic active mode IP configuration (on hubs that support $UserIP2)
- Bandwidth limiting
- Chat coloring (e.g. nickname highlighting)
- Custom description (tag) setting and DC++ emulation (abusable and often cited as a problem with BCDC++)
- Lua scripting support
- Winamp, MPlayerC and iTunes "Now Playing" messages (ability to use a command to send the currently playing media file to the chat)
This client is the successor of oDC. It is also the most commonly used mod of DC++.
- Chat colorization (nick and custom highlighting)
- Chat log rotation (deletion)
- MSN-ish popups on certain events (PM, hub disconnection).
- rmDC, features: GPL-violation
- Rev(erse) Connect, features: multisource downloads (often caused file corruption until recently)
- PhantomDC, based on BCDC++, features: a similar graphical interface as oDC and support for plugins
- DCDM++, based on BCDC++, features: finding fake sharers
- More can be found on: DC++ FAQ: Windows clients
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details