----------------------------------------------------------------------------------
IDL
----------------------------------------------------------------------------------
module DateTimeApp
{
interface DateTime
{
string ServerDT();
string DateDiff(inlong dd,inlong mm,inlong yy);
string TimeDiff(inlong hh,inlong min,inlong sec);
oneway void shutdown();
};
};
-------------------------------------------------------------------------------------------------
Server
-------------------------------------------------------------------------------------------------
import DateTimeApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
import java.util.Properties;
import java.util.*;
class DateTimeImpl extends DateTimePOA
{
private ORB orb;
publicvoid setORB(ORB orb_val)
{
orb = orb_val;
}
public String ServerDT()
{
Date d = new Date ();
String s = d.toString();
return s;
}
public String DateDiff(int dd,int mm,int yy)
{
Calendar cal = Calendar.getInstance();
int d = cal.get(Calendar.DAY_OF_MONTH) - dd;
int m = cal.get(Calendar.MONTH) - mm;
int y = cal.get(Calendar.YEAR) - yy;
String dt = d + " / " + m + " / " + y;
return dt;
}
public String TimeDiff(int hh, int min, int sec)
{
Calendar cal = Calendar.getInstance();
int h = cal.get(Calendar.HOUR)- hh;
int m = cal.get(Calendar.MINUTE) - min;
int s = cal.get(Calendar.SECOND) - sec;
String tm = h + " " + m + " " + s;
return tm;
}
publicvoid shutdown()
{
orb.shutdown(false);
}
}
publicclass DateTimeServer
{
publicstaticvoid main(String args[])
{
try
{
ORB orb = ORB.init(args, null);
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
DateTimeImpl dateTimeImpl = new DateTimeImpl();
dateTimeImpl.setORB(orb);
org.omg.CORBA.Object ref = rootpoa.servant_to_reference(dateTimeImpl);
DateTime href = DateTimeHelper.narrow(ref);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
String name = "DateTime";
NameComponent path[] = ncRef.to_name( name );
ncRef.rebind(path, href);
System.out.println("DateTimeServer ready and waiting ...");
orb.run();
}
catch (Exception e)
{
System.err.println("ERROR: " + e);
e.printStackTrace(System.out);
}
System.out.println("DateTimeServer Exiting ...");
}
}
-------------------------------------------------------------------------------------------------
Client
-------------------------------------------------------------------------------------------------
import DateTimeApp.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.io.*;
import java.util.*;
publicclass DateTimeClient
{
publicvoid showClientDateTime()
{
Date d = new Date();
String s = d.toString();
System.out.println("Client Date nad Time is : "+s);
}
publicstaticvoid main(String args[])
{
DateTime dateTimeImpl = null;
DateTimeClient dt = new DateTimeClient();
try
{
ORB orb = ORB.init(args, null);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
String name = "DateTime";
dateTimeImpl = DateTimeHelper.narrow(ncRef.resolve_str(name));
int dd = 0, mm = 0, yy = 0, hh = 0, min = 0, sec = 0;
dt.showClientDateTime();
String s = dateTimeImpl.ServerDT();
System.out.println("Server Date nad Time is : "+s);
Calendar cal = Calendar.getInstance();
dd = cal.get(Calendar.DAY_OF_MONTH);
mm = cal.get(Calendar.MONTH);
yy = cal.get(Calendar.YEAR);
hh = cal.get(Calendar.HOUR);
min = cal.get(Calendar.MINUTE);
sec = cal.get(Calendar.SECOND);
String dateD = dateTimeImpl.DateDiff(dd, mm, yy);
String timeD = dateTimeImpl.TimeDiff(hh, min, sec);
System.out.println("The date difference of Server Client is " + dateD);
System.out.println("The time difference of Server Client is " + timeD);
dateTimeImpl.shutdown();
}
catch (Exception e)
{
System.out.println("ERROR : " + e) ;
e.printStackTrace(System.out);
}
}
}
----------------------------------------------------------------------------------
Output
----------------------------------------------------------------------------------
Client Date nad Time is : Fri Dec 03 13:46:08 GMT+05:30 2004
Server Date nad Time is : Fri Dec 03 13:46:08 GMT+05:30 2004
The date difference of Server Client is 0 / 0 / 0
The time difference of Server Client is 0 0 0