client getopt

This commit is contained in:
zzz
2015-11-26 18:31:17 +00:00
parent 626f5415c7
commit b9ab933550
2 changed files with 102 additions and 9 deletions

View File

@@ -9,6 +9,8 @@ import java.net.Socket;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import gnu.getopt.Getopt;
import net.i2p.I2PAppContext; import net.i2p.I2PAppContext;
import net.i2p.data.Base32; import net.i2p.data.Base32;
import net.i2p.data.DataHelper; import net.i2p.data.DataHelper;
@@ -37,15 +39,59 @@ public class SAMStreamSend {
/** Connection id (Integer) to peer (Flooder) */ /** Connection id (Integer) to peer (Flooder) */
private final Map<String, Sender> _remotePeers; private final Map<String, Sender> _remotePeers;
private static final String USAGE = "Usage: SAMStreamSend [-s] [-d] [-r] [-v version] [-b samHost] [-p samPort] peerDestFile dataDir";
public static void main(String args[]) { public static void main(String args[]) {
if (args.length < 4) { Getopt g = new Getopt("SAM", args, "drsb:p:v:");
System.err.println("Usage: SAMStreamSend samHost samPort peerDestFile dataFile [version]"); boolean isSSL = false;
int mode = 0; // stream
String version = "1.0";
String host = "127.0.0.1";
String port = "7656";
int c;
while ((c = g.getopt()) != -1) {
switch (c) {
case 's':
isSSL = true;
break;
case 'd':
mode = 1; // datagram
break;
case 'r':
mode = 2; // raw
break;
case 'v':
version = g.getOptarg();
break;
case 'b':
host = g.getOptarg();
break;
case 'p':
port = g.getOptarg();
break;
case 'h':
case '?':
case ':':
default:
System.err.println(USAGE);
return;
} // switch
} // while
int startArgs = g.getOptind();
if (args.length - startArgs != 2) {
System.err.println(USAGE);
return; return;
} }
I2PAppContext ctx = I2PAppContext.getGlobalContext(); I2PAppContext ctx = I2PAppContext.getGlobalContext();
//String files[] = new String[args.length - 3]; SAMStreamSend sender = new SAMStreamSend(ctx, host, port,
SAMStreamSend sender = new SAMStreamSend(ctx, args[0], args[1], args[2], args[3]); args[startArgs], args[startArgs + 1]);
String version = (args.length >= 5) ? args[4] : "1.0";
sender.startup(version); sender.startup(version);
} }

View File

@@ -10,6 +10,8 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import gnu.getopt.Getopt;
import net.i2p.I2PAppContext; import net.i2p.I2PAppContext;
import net.i2p.data.Base32; import net.i2p.data.Base32;
import net.i2p.data.DataHelper; import net.i2p.data.DataHelper;
@@ -38,14 +40,59 @@ public class SAMStreamSink {
/** Connection id (Integer) to peer (Flooder) */ /** Connection id (Integer) to peer (Flooder) */
private final Map<String, Sink> _remotePeers; private final Map<String, Sink> _remotePeers;
private static final String USAGE = "Usage: SAMStreamSink [-s] [-d] [-r] [-v version] [-b samHost] [-p samPort] myDestFile sinkDir";
public static void main(String args[]) { public static void main(String args[]) {
if (args.length < 4) { Getopt g = new Getopt("SAM", args, "drsb:p:v:");
System.err.println("Usage: SAMStreamSink samHost samPort myDestFile sinkDir [version]"); boolean isSSL = false;
int mode = 0; // stream
String version = "1.0";
String host = "127.0.0.1";
String port = "7656";
int c;
while ((c = g.getopt()) != -1) {
switch (c) {
case 's':
isSSL = true;
break;
case 'd':
mode = 1; // datagram
break;
case 'r':
mode = 2; // raw
break;
case 'v':
version = g.getOptarg();
break;
case 'b':
host = g.getOptarg();
break;
case 'p':
port = g.getOptarg();
break;
case 'h':
case '?':
case ':':
default:
System.err.println(USAGE);
return;
} // switch
} // while
int startArgs = g.getOptind();
if (args.length - startArgs != 2) {
System.err.println(USAGE);
return; return;
} }
I2PAppContext ctx = I2PAppContext.getGlobalContext(); I2PAppContext ctx = I2PAppContext.getGlobalContext();
SAMStreamSink sink = new SAMStreamSink(ctx, args[0], args[1], args[2], args[3]); SAMStreamSink sink = new SAMStreamSink(ctx, host, port,
String version = (args.length >= 5) ? args[4] : "1.0"; args[startArgs], args[startArgs + 1]);
sink.startup(version); sink.startup(version);
} }