Files
CrossJeeves/src/com/flaremicro/crossjeeves/CrossJeevesMain.java
Flare Microsystems 16b66b6094 Add more netcode
2024-11-13 08:49:21 -08:00

86 lines
2.1 KiB
Java

package com.flaremicro.crossjeeves;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.flaremicro.util.Util;
public class CrossJeevesMain {
public static void main(String[] args) {
Map<String, String> parsedArgs = Util.parseArgs(args, true, true);
if (parsedArgs.containsKey("host"))
{
try
{
int port = 10801;
if(parsedArgs.get("host").length() != 0)
port = Integer.parseInt(parsedArgs.get("host"));
CrossJeevesHost host = new CrossJeevesHost(port);
try
{
host.startHosting();
}
catch (IOException e)
{
e.printStackTrace();
}
}
catch (NumberFormatException ex)
{
System.out.println("Invalid port specified: " + parsedArgs.get("host"));
System.exit(1);
}
}
else if (parsedArgs.containsKey("agent"))
{
if(!parsedArgs.containsKey("script"))
{
System.out.println("'script' argument must be specified for agent.");
System.exit(1);
}
String[] agents = parsedArgs.get("agent").split("\\s");
List<AgentInfo> agentList = new ArrayList<AgentInfo>();
for(String agent : agents)
{
String agentArgs[] = agent.split("\\+");
if(agentArgs.length == 0)
{
System.out.println("IP must be specified");
System.exit(1);
}
String ipStr = args[0];
String portStr = "10801";
if(args.length >= 2)
portStr = args[1];
try
{
int port = Integer.parseInt(portStr);
InetAddress inetAddress = InetAddress.getByName(ipStr);
agentList.add(new AgentInfo(inetAddress, port));
}
catch (NumberFormatException ex)
{
System.out.println("Invalid port specified: " + portStr);
System.exit(1);
}
catch (UnknownHostException e)
{
System.out.println("Unknown host: " + ipStr);
System.exit(1);
}
}
CrossJeevesClient client = new CrossJeevesClient(agentList, parsedArgs.get("script"));
client.beginJob();
}
else
{
System.out.println("Argument 'host' or 'agent' must be specified.");
System.exit(1);
}
}
}