JLop 1.04.260

Peer 2 Peer OpenNap client for (pure) Java 6-beta2

What is JLop?

JLop means "Java LOPster". It is similar to lopster except is fully written in java language. So it runs on all Java 6 - beta2 enabled platforms.

Jlop is a peer to peer application : you can connect to many OpenNap servers and search for users having the file that you want and download it. JLop automates the work to continuosly search for that file and enter in other users queues waiting to download that file. JLop can automatically retry a broken download, rebuild the file by many fragments downloaded from multiple sources, finally JLop can automatically search & download for a file.

Why JLop?

By many years i'm interested in fully portable programs: sources or executables that can be run 'unmodified' on many different computing machinery, on different os, different processors, different hardware. I think that in the future the general purpouse computers will move to the full intercompatibility at the user program level. Today Java is the main language that implements this beautiful behavior and so, for me, is a fascinating language.

So, as a indeep study of Java language, i have write down an open nap client, think to be fully portable on any Java 6 enabled computer. The main software-structural choose for JLop was 'deep' multithread architecture: many medium-little processes that interacts themselves. Another main structural choose is to use only Java 6 standard libraries, so JLop should be compatible with all Java 6 enabled computers.

JLop is an ''my interpretation'' of an open nap client. I have experimented with Lopster, winMx, napster, kazaa and i have found in these softwares my goods and odds.

JLop try to be the client that i wish : minimal on graphics, ui, and without many gadgets that does not matter directly with P2P; but fully operative on necessary P2P operations.

JLop is quite new and not yet tested by many people, so I suggest to try JLop only to people familiar with other P2P programs and with Java runtime environment.

Advanced JLop features

* * * Multiple identity * * *

That means : user can buildup a set of identities, each whith his shares file list, and configure each network with a different identity, giving to different networks a different Nick, Firewalled flag, Shares list, Client name .

EG: If there is a server that ban you for a file from your share, you can buildup another identity without that file and use this new id on that server, retaining ''full share'' id on other servers.

EG: If you are behind a NAT network and on this private network there are open nap servers, is cool to connect internal server in NON-FIREWALLED mode and retain external servers connected in firewalled mode. This mode improves the probability of a successful download becouse our JLOP client can connect to other firewalled (on our NAT) users.

* * * Full protocol logging * * *

Means that, activating the log, user can see the ''internals'' of a single Download process, Upload process, Server protocol, ecc ... This is very usefoul for understanding why a connection with a server or user can't be established. Or simply can be interesting to see.

* * * Burst download * * *

Means that, finding eg. 2000 results you can try all toghether with 2 clicks. Same for retrying a broken, incomplete, download.

Warning : JLop if (un)correctly configured can really fire a burst of requests to server, so you should not exceed with this behavior, respecting sysadms.

* * * Network management * * *

JLop imports Lopster and WinMx (.wsx) OpenNap network files.

JLop finds and removes duplicate servers in list.

JLop tracks connections counter for finding ''dead'' servers or networks.

JLop finds and removes those dead servers or networks.

This behavior is due to various kind of network wsx files found on the net. Importing many of those files cause namy duped networks on list or many retry on totally old and dead servers. So JLop try to detect duped and inactive servers/networks and remove them.

* * * Advanced multisource download algorithm * * *

Jlop can download the same file simultaneously from different concurrent sources.

The strategy used by JLop is slightly different respect to other clients. The main "multisource download odd" of some clients is that when the end of a fragment is reached, but no EOF reached, the download process is ever broken. JLop try to use again this process for downloading another missing part of the file. See "HoleAlgorithm"

Quick start & download

Take a look at jlop.howto.txt

Another info doc here jlop.desc.txt

Revision history here jlop.revhist.txt

JLop download link : Sourceforge project page

Java 6 beta 2 can be found here : Java SE Early Access Downloads

NOTICE : If you want to try JLop with java 5 you must use the older JLop 1.02

Source code specifications - Early javadoc

JLop is structured with 2 packages


JLop swing user interface. Enable user to interact with JLop objects.


For processing all task of OpenNap upload/download and server management. This package knows nothing about user interface, is just a set of classes that implements all the OpenNap protocol. This package is the main engine of Open Nap client and could be used on his own by other applications.

See javadoc here


* * * thank to sourceforge for hosting * * *

Java is a trademark or registered trademark of Sun Microsystems, Inc.in the U.S. or other countries.


JLop 2005-2006 by amz - updated: 09 - 28 - 2006