Add verbose mode
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/net/trunk@1782366 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/examples/ftp/TFTPExample.java b/src/main/java/examples/ftp/TFTPExample.java
index dad8b32..37e4e75 100644
--- a/src/main/java/examples/ftp/TFTPExample.java
+++ b/src/main/java/examples/ftp/TFTPExample.java
@@ -26,6 +26,7 @@
import java.net.UnknownHostException;
import org.apache.commons.net.tftp.TFTP;
import org.apache.commons.net.tftp.TFTPClient;
+import org.apache.commons.net.tftp.TFTPPacket;
/***
* This is an example of a simple Java tftp client.
@@ -58,15 +59,18 @@
"\t-s Send a local file\n" +
"\t-r Receive a remote file\n" +
"\t-a Use ASCII transfer mode\n" +
- "\t-b Use binary transfer mode\n";
+ "\t-b Use binary transfer mode\n" +
+ "\t-v Verbose (trace packets)\n"
+ ;
public static void main(String[] args)
{
boolean receiveFile = true, closed;
int transferMode = TFTP.BINARY_MODE, argc;
String arg, hostname, localFilename, remoteFilename;
- TFTPClient tftp;
+ final TFTPClient tftp;
int timeout = 60000;
+ boolean verbose = false;
// Parse options
for (argc = 0; argc < args.length; argc++)
@@ -84,6 +88,8 @@
transferMode = TFTP.BINARY_MODE;
} else if (arg.equals("-t")) {
timeout = 1000*Integer.parseInt(args[++argc]);
+ } else if (arg.equals("-v")) {
+ verbose = true;
} else {
System.err.println("Error: unrecognized option.");
System.err.print(USAGE);
@@ -108,7 +114,16 @@
remoteFilename = args[argc + 2];
// Create our TFTP instance to handle the file transfer.
- tftp = new TFTPClient();
+ if (verbose) {
+ tftp = new TFTPClient() {
+ @Override
+ protected void trace(String direction, TFTPPacket packet) {
+ System.out.println(direction + " " + packet);
+ }
+ };
+ } else {
+ tftp = new TFTPClient();
+ }
// We want to timeout if a response takes longer than 60 seconds
tftp.setDefaultTimeout(timeout);