Skip to content
This repository has been archived by the owner on May 27, 2020. It is now read-only.

Commit

Permalink
Add API.java + API.class to access the API
Browse files Browse the repository at this point in the history
  • Loading branch information
kanoi committed Nov 30, 2011
1 parent 45068ce commit 2a3c99f
Show file tree
Hide file tree
Showing 2 changed files with 155 additions and 0 deletions.
Binary file added API.class
Binary file not shown.
155 changes: 155 additions & 0 deletions API.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
/*
*
* Usage: java API command ip port
*
* If any are missing or blank they use the defaults:
*
* command = 'summary'
* ip = '127.0.0.1'
* port = '4028'
*
*/

import java.net.*;
import java.io.*;

class API
{
static private final int MAXRECEIVESIZE = 65535;

static private Socket socket = null;

private void closeAll() throws Exception
{
if (socket != null)
{
socket.close();
socket = null;
}
}

public void display(String result) throws Exception
{
String value;
String name;
String[] sections = result.split("\\|", 0);

for (int i = 0; i < sections.length; i++)
{
if (sections[i].trim().length() > 0)
{
String[] data = sections[i].split(",", 0);

for (int j = 0; j < data.length; j++)
{
String[] nameval = data[j].split("=", 2);

if (j == 0)
{
if (nameval.length > 1
&& Character.isDigit(nameval[1].charAt(0)))
name = nameval[0] + nameval[1];
else
name = nameval[0];

System.out.println("[" + name + "] =>");
System.out.println("(");
}

if (nameval.length > 1)
{
name = nameval[0];
value = nameval[1];
}
else
{
name = "" + j;
value = nameval[0];
}

System.out.println(" ["+name+"] => "+value);
}
System.out.println(")");
}
}
}

public void process(String cmd, InetAddress ip, int port) throws Exception
{
char buf[] = new char[MAXRECEIVESIZE];
int len = 0;

System.out.println("Attempting to send '"+cmd+"' to "+ip.getHostAddress()+":"+port);

try
{
socket = new Socket(ip, port);
PrintStream ps = new PrintStream(socket.getOutputStream());
ps.print(cmd.toLowerCase().toCharArray());
ps.flush();

InputStreamReader isr = new InputStreamReader(socket.getInputStream());
len = isr.read(buf, 0, MAXRECEIVESIZE);

closeAll();
}
catch (IOException ioe)
{
System.err.println(ioe.toString());
closeAll();
return;
}

String result = new String(buf, 0, len);

System.out.println("Answer='"+result+"'");

display(result);
}

public API(String command, String _ip, String _port) throws Exception
{
InetAddress ip;
int port;

try
{
ip = InetAddress.getByName(_ip);
}
catch (UnknownHostException uhe)
{
System.err.println("Unknown host " + _ip + ": " + uhe);
return;
}

try
{
port = Integer.parseInt(_port);
}
catch (NumberFormatException nfe)
{
System.err.println("Invalid port " + _port + ": " + nfe);
return;
}

process(command, ip, port);
}

public static void main(String[] params) throws Exception
{
String command = "summary";
String ip = "127.0.0.1";
String port = "4028";

if (params.length > 0 && params[0].trim().length() > 0)
command = params[0].trim();

if (params.length > 1 && params[1].trim().length() > 0)
ip = params[1].trim();

if (params.length > 2 && params[2].trim().length() > 0)
port = params[2].trim();

new API(command, ip, port);
}
}

0 comments on commit 2a3c99f

Please sign in to comment.