---------------------------------------------------------------------------------- IDL ---------------------------------------------------------------------------------- module DateTimeApp { interface DateTime { string ServerDT(); string DateDiff(in long dd,in long mm,in long yy); string TimeDiff(in long hh,in long min,in long 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; public void 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; } public void shutdown() { orb.shutdown(false); } } public class DateTimeServer { public static void 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.*; public class DateTimeClient { public void showClientDateTime() { Date d = new Date(); String s = d.toString(); System.out.println(\"Client Date nad Time is : \"+s); } public static void 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