package org.jacorb.test.listenendpoints.echo;
import java.io.*;
import java.net.InetAddress;
import org.omg.CORBA.*;
public class Client
{
private static void help() {
System.out.println("test.listenendpoints.echo.Client [-help/--help]");
System.out.println("test.listenendpoints.echo.Client <-iorfile/--iorfile filename> <-msg/--msg quoted echo message>");
}
public static void main( String args[] )
{
if( args.length < 1 )
{
help();
System.exit( 1 );
}
PrintWriter out = null;
BufferedReader in = null;
String echoMsg = null;
String iorFile = null;
String corbaloc = null;
try
{
for(int i=0; i < args.length; i++) {
if (args[i] == null) {
continue;
}
String cmd = args[i].trim();
if("-help".equals(cmd) || "--help".equals(cmd)) {
help();
return;
}
if("-iorfile".equals(cmd) || "--iorfile".equals(cmd)) {
if ((i+1) < args.length && args[i+1] != null)
{
iorFile = args[++i].trim();
System.out.println("Got " + cmd + ": " + iorFile);
continue;
}
else
{
System.err.println("Commandline argument " + cmd + " <value> is missing the value");
help();
return;
}
}
if("-msg".equals(cmd) || "--msg".equals(cmd)) {
if ((i+1) < args.length && args[i+1] != null)
{
echoMsg = args[++i];
System.out.println("Got " + cmd + ": " + echoMsg);
continue;
}
}
}
}
catch(Exception ex)
{
System.err.println(ex);
System.exit(1);
}
try
{
ORB orb = null;
org.omg.CORBA.Object obj = null;
if(echoMsg == null)
{
echoMsg = new String(InetAddress.getLocalHost().getHostAddress() +
" is hailing server!");
}
if (iorFile != null)
{
File f = new File( iorFile);
if( ! f.exists() )
{
System.out.println("File " + iorFile +
" does not exist.");
System.exit( -1 );
}
if( f.isDirectory() )
{
System.out.println("File " + iorFile +
" is a directory.");
System.exit( -1 );
}
// initialize the ORB.
orb = ORB.init( args, null );
BufferedReader br =
new BufferedReader( new FileReader( f ));
System.out.println ("Hailing server using IOR string ...");
obj =
orb.string_to_object( br.readLine() );
br.close();
}
else
{
System.err.println("IOR file is missing");
System.exit(1);
}
// and narrow it
// if this fails, a BAD_PARAM will be thrown
EchoMessage echoMessage = EchoMessageHelper.narrow( obj );
// invoke the operation and print the result
System.out.println( echoMessage.echo_simple() );
int cnt = 0;
// Thread sleeper = new Thread();
while ( true )
{
try
{
cnt++;
// Calendar lCDateTime = Calendar.getInstance();
String outMsg = new String(Integer.toString(cnt) + " " + echoMsg);
long tms_out = System.currentTimeMillis();
// send it to the server
String inMsg = echoMessage.echo_wide(outMsg);
long tms_in = System.currentTimeMillis();
long tms_dif = tms_in - tms_out;
if (inMsg.equals(outMsg))
{
System.out.println("OK" + " " + tms_dif + "mSec <" + inMsg + ">");
}
else
{
System.out.println("ERR" + " " + tms_dif + "mSec in=<" + inMsg + "> out=<" + outMsg + ">");
}
Thread.sleep(1 * 1000);
}
catch (Exception e)
{
System.err.println("Got an exception: " + e.getMessage());
break;
}
}
}
catch( Exception ex )
{
ex.printStackTrace();
}
}
}