-- JLOP -- -- Pure JAVA OpenNap client program -- -- 2005-2006 By AMZ -- -- sourceforge.net/projects/jlop -- -- http://jlop.sourceforge.net -- Quick start guide for release 1.04.260 --------------- - Requirements --------------- - Any computer Java enabled with JRE Java Runtime Environment 6.0-beta 2 correctly installed. !! NOTICE : This version of JLop (1.03) is compatible !! ONLY with Java 6. If you want to use Java 5 !! you must download older JLop 1.02 - 64 Mb free ram available - A lot of disk space - Alive internet connection - A wsx file containing the OpenNap network, in WinMx format OR a Lopster "server.list" network file - You also should be skilled about OpenNap & p2p before use JLop. - This documentation is for a skilled p2p user. --------------------------- - Installation and running --------------------------- - Copy JLop.jar into a new folder, open a shell, go in that folder and type 'java -jar JLop.jar' and confirm. - If you are unsure about java version use 'java -version' and check for "java 1.6.0-beta2" - If you have installed multiple java versions you must use the executable 'java' of the jre 1.6 eg: (in windows) "C:\Program files\Java\jdk1.6.0\bin\java" - JLop should start, ready to work. - JLop creates his download directory, if not found. See Configuration paragraph if you want to change download directory. ------------------------ - Sharing & Downloading ------------------------ !! NOTICE : You need a WinMx '*.wsx' file or a Lopster 'server.list' network file to import OpenNap p2p networks. --- config pane --- - JLop starts showing 'Config' pane. Here you can configure your identities (nickname, connection parameters, files to share). - You can see the default ''defaultnick'' identity. Choose username, password, share set, and other stuff for connecting, describing your identity. Optionally click 'add' to create other identities. If unsure about 'firewalled' flag, use the value 'true'. - Firewalled flag means : FALSE : We can accept connections from the net TRUE : We cannot accept connections from the net we can only connect to outside peers. This means that we are behind a NAT or a firewall. Today there are very large NAT networks that contains internal openNap servers. The NAT users can receive connect from other (same) NAT users, but cannot receive external-NAT connections. So is good to connect internal servers in NON firewalled mode and connect to outer servers in firewalled mode. This means the possibility to download from all users of internal NAT. - use "add id" button to create new id - use "del sel id" button to delete all selected identities - use "add directory" button to add an entire shared directory to ALL selected identities !! NOTICE: this operation can be longer (and blocking jlop) if u share thousands of files, next jlop version will implement a background thread to fluidificate this op. - use "add file" button to add a shared file to ALL selected identities use "del sel share" button to delete selected shared files from only one selected identity - use "Save all" button to save all options to disk (identities, shared files, networks, running parameters) !! NOTICE : Exiting JLop does not save automatically the configuration! - use "Exit" button to quit -- Networks pane --- - Go in 'Networks' pane Import your network file, 'Import wsx' for WinMX .wsx files, or 'Import lop' for server.list lopster network file. - Take a look to 'Log' pane to see results of this (and other) operations. On a first JLop runs, this log shows some 'file not found' errors. This is right until a configuration is saved on disk (with button 'Save all' on 'Config' pane). !! NOTICE: If you have configured more than 1 identity you can connect different servers with different identities and, so, different shares. So if a network restrict shares only to (eg.) .mp3 you can create an identity only with mp3 files shared to use with this network. The other regular networks can be configured with another your identity that contain all your shared files. - Optionally click on 'Remove dupes' to scan networks and remove duplicate servers. A server is removed if has the same name and the same port of another. This command cheks hostname, host number and port number, and should be used after resolving all hostnames. The procedure first checks for the same hostnames:hostport and if not then checks for same hostnumber:hostport (if hostnumber is resolved) - Optionally click on 'remove inactive' to tremove inactive servers. This remove all servers that have at least 3 connections try and 0 connections established. - Now click on 'Select all' and then on 'Connect all' and wait for some networks in 'CONNECTED' state. !! NOTICE: scanning for > 100 networks on a slow computer can cause a slow feedback for some seconds. JLop has no limit about networks to start, but i suggest to begin with less than 100 networks running (here 'running' means 'networks that try to connect'). - If you want to try less networks at same time, simply select them on the table and click 'Connect sel' (means:Connect Selected). --- Search pane --- - Go in 'Search' pane Input something into 'search string' field eg: 'hung .mp3' Wait some results, click 'Select all', click 'Download sel'. By default only 1 request per nickname will be added even though there are many selected results for the same nick. - Go in 'Downloads' pane Check the downloader list and wait for a complete download. A complete download will be painted in blue. - The downloaded file going by default into 'Download' directory created into JLop folder. - Retry from a broken download file !! NOTICE : To retry a incomplete file is better to use "retry incomplete" button on Self downl. panel. See nex paragraph - JLop broken and active downloads files got this filename format : jlf$[type]$[size]$[start]$[search string]$[idx]$[name-ext] where: jlf = identifier for JLopFragment [type] = A = header, F = fragment, T = tail, C = complete, R = running [size] = size of fully downloaded file [start] = start of this fragment. The end of fragment is start+this.lenght [search string] = searched string that has produced download for this file. This string is useful to regenerate a search that can refind tis file on other peer with all "filename bad chars" removed. [idx] = integer for uniquify this filename. eg: 2 downolads of the same file from the same search got different [idx] [name-ext] = final name of the downloaded file - You can retry here only from 'H' or 'F' files. - Go in 'Search' pane, and search for other peers to retry from. You can search by 'search string', or optionally even by size. - Wait results, push 'select all' and push on 'retry sel' button. Choose the 'jlf*' file where retry from, and click ok. JLop scans only the selected results that match the final size of the file to retry, and generates download actions that begin at the end of selected fragment. --- Self downl. pane --- - When you push the "Start self download" button in Download pane the result currently selected will be automatically added to this list. Then jlop continuosly search for that file (with given search string and given size) and try to download it. Multiple sources are allowed. At the end of process jlop rebuilds the final file from various fragment downloaded. - use "retry incomplete" button to open a "jlf*" file (incomplete) This action makes automatically the right "self download" procedure for that file. After downloaded the last fragment of the file the SelfDownloader automatically starts a Rebuilder that put all fragments togheter into final file. - Selecting a SelfDownload, in the lower half of the windows, you can see all downloaders involved in his process. ----------- -- Logging ----------- - You can see the main log in 'Log' pane. - When JLop trace is active another pane will show on main window. Into this new pane there is the log of the actually selected network, download, upload object. Selecting the 'Log' pane will show even the 'LocalServer' object log (that is the object that accepts local connections from outer peers). - On these logs you can see each phase of the protocols involved in OpenNap P2P. - To activate trace logging set the traceSize parameter to a value > 0. See next paragraph. ----------------- -- Configuration ----------------- - Configuration is stored on disk ONLY by clicking the button 'Save all' on 'Config' pane. This action produces 4 files: .jlop.identities.properties --> contains ids and shared files for each id .jlop.networks.properties --> contains networks and servers The format of this file has changed by last release. This JLop release reads the old format and converts it to new. .jlop.nicks.properties --> contains nicknames and related ban flags .jlop.prefs.properties --> contains jlop configuration parameters - These files are loaeded, if existent, while JLop starts. - These files are NOT saved automatically when JLop exits. --- - The file .jlop.prefs.properties contains entry to configure JLop parameters, and can be read even while JLop is running. Edit this file, press the button 'Load prefs' and new parameters will be online. - There are few parameters that request a JLop restart to change, they are signaled here with *** - The parameters are : localServerPort : port of incoming connections localServerMaxOpenRetries : retries if port is locked, each try adds 1 to localServerPort socketDelayReadWriteMillis : 50 millis default. time to wait polling socket received data status. time to wait polling socket send queue. progressiveDelayMillis : delay to start multiple server connections or multiple downloads eg: starting 10 server : the first will be immediately connected, the second after progressiveDelayMillis, the third after progressiveDelayMillis*2, the fourth after progressiveDelayMillis*3, and so on. protocolMessagesMaxSize *** : lines in server messages window in 'Networks' pane networkCheckoutWaitSecs : time to check if a connected server is still alive each time we check, we ping the server to verfy his aliveness. searchTimeOutMillis : server search timeout downloadTimeoutSecs : downloads connections & rw timeout downloadQueueRetrySecs : timer to check out the queue position in other peer downloaderMaxBandKbSec : standard downloader speed, this is interface-editable for each download downloadDir : download directory eg : d\:\\download\\ Notice that the string must be in java format means \: for colon and \\ for backslash . EG: "d\:\\download\\" means "d:\download\" EG: "/mnt/download" means "/mnt/download" downloadMaxConnections : max sockets connected to other downloading peers maxNickDlRequests : max enqueuing request per nickname Does not matter the server where nickname went from maxNickUlRequests : max queue positions per nickname Does not matter the server where nickname went from uploadTimeoutSecs : uploads connections timeout & rw timeout uploadMaxConnections : max sockets connected to other uploading peers uploaderQueueTimeoutSecs : timeout for a nickname to mantain our queue position uploaderMaxBandKbSec : standard uploader speed, this is interface-editable for each upload interfaceRefreshMillis*** : millis to wait for each screen refresh traceSize*** : size of the trace of all JLop objects, if > 0 switchs on another pane in main window that shows the selected object trace. If the size is impair (1,3,5,7, ...) in the bottom of the window will appear the thread counter. This is a memory eating operation. logSize*** : main jlop log size, this log is showed into pane 'Log' selfDownloaderInternalTimingSec : seconds to wait in internal selfDownloader process. 10 is the default. serverRecvDelayMillis : millis to separate received packet from server, default 20 networkCheckinWaitSecs : time to wait to connect next server in network, if the preceding is faulty at the end of servers list the process reloop from begin waiting connectWaitSecs seconds (configurable for each network). !! NOTICE: This values are not yet fully checked for consistency, so setting values different by default can cause jlop to stop working or crash.