Skip to content

Commit

Permalink
update commons-validator + add 10Gbit/s speed
Browse files Browse the repository at this point in the history
  • Loading branch information
harp077 committed Dec 13, 2023
1 parent ca5b314 commit 3dd0c47
Showing 7 changed files with 47 additions and 57 deletions.
Binary file removed ftp-srv-best-speed_16-07-22.png
Binary file not shown.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>my.harp07</groupId>
<artifactId>pj-ftp-server</artifactId>
<version>1.0.98</version>
<version>1.0.99</version>
<packaging>jar</packaging>

<properties>
@@ -75,7 +75,7 @@
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.7</version>
<version>1.8.0</version>
</dependency>

<dependency>
33 changes: 13 additions & 20 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,20 @@
![ftp](pj-ftp-server.png?raw=true)

In snap below speed is in MByte/sec ( Mbyte/sec = 8 Mbit/sec) !

![ftp-speed](ftp-srv-best-speed_16-07-22.png?raw=true)

In snap above speed is in MByte/sec ( Mbyte/sec = 8 Mbit/sec) !

Pure Java FTP server. Free portable cross-platform.
Run as root/admin !
1) Fully multi-threaded.
2) Multi platform support.
3) High speed - up to 920 Mbit/s (115 Mbyte/s) on 1Gbit/s channel when used SSD-drives on both sides.
4) Can run in GUI-mode: # java -jar pj-ftp-server.jar
5) Can run in CMD-mode (used cmd-mode-config.properties): # java -jar pj-ftp-server.jar cmd
6) IP-filter (access list) support.
7) Writable=true/false support
8) Support listening on different local interfaces
9) Speed limit support
10) Anonymous-mode support
11) Different free TCP-ports support
12) Folder-select support
13) Logging support
14) Support limit max concurrent logins
15) Support limit max concurrent logins per IP
Need JRE-1.8: https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
3) Can run in GUI-mode: # java -jar pj-ftp-server.jar
4) Can run in CMD-mode (used cmd-mode-config.properties): # java -jar pj-ftp-server.jar cmd
5) IP-filter (access list) support.
6) Writable=true/false support
7) Support listening on different local interfaces
8) Speed limit support
9) Anonymous-mode support
10) Different TCP-ports support
11) Logging support
12) Support limit max concurrent logins
13) Support limit max concurrent logins per IP
14) Need JRE-1.8:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
Source = https://github.com/harp077/pj-ftp-server
29 changes: 14 additions & 15 deletions readme.txt
Original file line number Diff line number Diff line change
@@ -2,18 +2,17 @@ Pure Java FTP server. Free portable cross-platform.
Run as root/admin !
1) Fully multi-threaded.
2) Multi platform support.
3) High speed - up to 920 Mbit/s (115 Mbyte/s) on 1Gbit/s channel when used SSD-drives on both sides.
4) Can run in GUI-mode: # java -jar pj-ftp-server.jar
5) Can run in CMD-mode (used cmd-mode-config.properties): # java -jar pj-ftp-server.jar cmd
6) IP-filter (access list) support.
7) Writable=true/false support
8) Support listening on different local interfaces
9) Speed limit support
10) Anonymous-mode support
11) Different free TCP-ports support
12) Folder-select support
13) Logging support
14) Support limit max concurrent logins
15) Support limit max concurrent logins per IP
Need JRE-1.8: https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
Source = https://github.com/harp077/pj-ftp-server
3) Can run in GUI-mode: # java -jar pj-ftp-server.jar
4) Can run in CMD-mode (used cmd-mode-config.properties): # java -jar pj-ftp-server.jar cmd
5) IP-filter (access list) support.
6) Writable=true/false support
7) Support listening on different local interfaces
8) Speed limit support
9) Anonymous-mode support
10) Different TCP-ports support
11) Logging support
12) Support limit max concurrent logins
13) Support limit max concurrent logins per IP
14) Need JRE-1.8:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
Source = https://github.com/harp077/pj-ftp-server
32 changes: 15 additions & 17 deletions src/main/java/pj/ftp/server/ActionsFacade.java
Original file line number Diff line number Diff line change
@@ -69,6 +69,7 @@ public class ActionsFacade {
speedMap.put("10 Mbyte/s=80 Mbit/s", 10_000_000);
speedMap.put("100 Mbyte/s=800 Mbit/s", 100_000_000);
speedMap.put("125 Mbyte/s=1000 Mbit/s", 125_000_000);
speedMap.put("1250 Mbyte/s=10000 Mbit/s", 1250_000_000);
//
aclTypeMap.put("allow", IpFilterType.ALLOW);
aclTypeMap.put("deny", IpFilterType.DENY);
@@ -94,7 +95,7 @@ public static String ipCalculator (String ipadr) {
SubnetUtils su = new SubnetUtils(ipadr);
//su=new SubnetUtils("10.73.2.111/23");
//su=new SubnetUtils("10.73.2.111", "255.255.254.0");
String result = "\n IP-data for "+ConfigFTP.aclType.toUpperCase()+" Network:\n";
String result = "\n IP-data for "+ConfigFTP.aclType.toUpperCase()+" Network:\n";
result = result + "\n Low Address = " + su.getInfo().getLowAddress();
result = result + "\n High Address = " + su.getInfo().getHighAddress();
result = result + "\n Broadcast Address = " + su.getInfo().getBroadcastAddress();
@@ -162,22 +163,19 @@ public static void about(ImageIcon iii) {
+ "\n Run as root (Linux) or admin (Windows) !"
+ "\n 1) Fully multi-threaded."
+ "\n 2) Multi platform support."
+ "\n 3) High speed - up to 920 Mbit/s (115 Mbyte/s) on 1Gbit/s channel when used SSD-drives on both sides. "
+ "\n 4) Can run in GUI-mode: # java -jar pj-ftp-server.jar"
+ "\n 5) Can run in CMD-mode (use cmd-mode-config.properties): # java -jar pj-ftp-server.jar cmd"
+ "\n 6) IP-filter (access list) support."
+ "\n 7) Writable=true/false support."
+ "\n 8) Support listening on different local interfaces."
+ "\n 9) Speed limit support."
+ "\n 10) Anonymous-mode support."
+ "\n 11) Different free TCP-ports support."
+ "\n 12) Folder-select support."
+ "\n 13) Logging support."
+ "\n 14) Support limit max concurrent logins."
+ "\n 15) Support limit max concurrent logins per IP."
+ "\n 16) Need JRE-1.8."
+ "\n Create by Roman Koldaev, "
+ "\n Saratov city, Russia. "
+ "\n 3) Can run in GUI-mode: # java -jar pj-ftp-server.jar"
+ "\n 4) Can run in CMD-mode (use cmd-mode-config.properties): # java -jar pj-ftp-server.jar cmd"
+ "\n 5) IP-filter (access list) support."
+ "\n 6) Writable=true/false support."
+ "\n 7) Support listening on different local interfaces."
+ "\n 8) Speed limit support."
+ "\n 9) Anonymous-mode support."
+ "\n 10) Different TCP-ports support."
+ "\n 11) Logging support."
+ "\n 12) Support limit max concurrent logins."
+ "\n 13) Support limit max concurrent logins per IP."
+ "\n 14) Need JRE-1.8."
+ "\n Roman Koldaev, Saratov city, Russia."
+ "\n mail: harp07@mail.ru "
+ "\n SourceForge: https://sf.net/u/harp07/profile/ "
+ "\n GitHub: https://github.com/harp077/ ";
2 changes: 1 addition & 1 deletion src/main/java/pj/ftp/server/ConfigFTP.java
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@ public class ConfigFTP {
public static String port=ICFG.DEFAULT_PORT;
public static int MAX_CONCURRENT_LOGINS = 10;
public static int MAX_CONCURRENT_LOGINS_PER_IP = 3;
public static int MAX_IDLE_TIME = 900;
public static int MAX_IDLE_TIME = 999;
public static int MAX_THREADS_LOGINS = 100;
public static int MAX_SPEED = 125_000_000;// = Integer.MAX_VALUE;99_999;//Integer.MAX_VALUE; = in Kbit/sek !!
public static Boolean writable = true;
4 changes: 2 additions & 2 deletions src/main/java/pj/ftp/server/PjFtpServer.java
Original file line number Diff line number Diff line change
@@ -249,7 +249,7 @@ private synchronized static void startServer(String args[]) throws FtpException,
}
j4log.log(Level.INFO, "Max concurrent Logins = "+connectionConfig.getMaxLogins());
j4log.log(Level.INFO, "Max concurrent Logins per IP = "+ConfigFTP.MAX_CONCURRENT_LOGINS_PER_IP);
j4log.log(Level.INFO, "Server Listen Address = "+listenerFactory.getServerAddress());
j4log.log(Level.INFO, ("Server Listen Address = "+listenerFactory.getServerAddress()).replace(" null", " all"));
j4log.log(Level.INFO, "Server Listen Port = "+listenerFactory.getPort());
j4log.log(Level.INFO, "Server Idle TimeOut = "+listenerFactory.getIdleTimeout() + " sec");
j4log.log(Level.INFO, "Writable = "+ConfigFTP.writable);
@@ -920,7 +920,7 @@ public void run() {
JDialog.setDefaultLookAndFeelDecorated(true);
JOptionPane.setRootFrame(frame);
frame.setSize(ICFG.FW, ICFG.FH);
frame.setLocation(50, 50);
frame.setLocation(222, 222);
frame.setResizable(true);
frame.setVisible(true);
}

0 comments on commit 3dd0c47

Please sign in to comment.