// Count.idl module Counter { interface Count { attribute long sum; long increment(); double check(indouble a); }; }; // CountClient.java import Counter.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import java.io.*; class CountClient { static Count countImpl; publicstaticvoid main(String args[]) { try { // Initialize the ORB org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null); // get the root naming context org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt instead of NamingContext. This is // part of the Interoperable naming Service. NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // resolve the Object Reference in Naming String name = "Count"; countImpl = CountHelper.narrow(ncRef.resolve_str(name)); // Set sum to initial value of 0 countImpl.sum((int)0); int choice=0; double value1,num; BufferedReader b1=new BufferedReader(new InputStreamReader(System.in)); while(true) { System.out.println("Do you want to guess a number(1:Yes / 2:No):"); choice=Integer.parseInt(b1.readLine()); if(choice==2) break; System.out.println("Guess a number and enter that number!!"); num=Integer.parseInt(b1.readLine()); countImpl.increment(); if(countImpl.sum()==5) { System.out.println("SORRY YOUR 5 TRIALS ARE OVER"); System.out.println("Trials = " + countImpl.sum()); break; } value1=countImpl.check(num); if(value1==0) { System.out.println("CONGRATULATIONS!!! GUESSED THE RIGHT NUMBER!!!"); System.out.println("Trials = " + countImpl.sum()); break; } elseif(value1<0) { System.out.println("NUMBER is less than the actual no!!!"); System.out.println("Trials = " + countImpl.sum()); } elseif(value1>0) { System.out.println("NUMBER is greater than the actual no!!!"); System.out.println("Trials = " + countImpl.sum()); } } } catch(Exception e) { System.err.println("System Exception"); System.err.println(e); } } } // CountServer.java: The Count Server main program import Counter.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import java.util.*; class CountImpl extends Counter.CountPOA { privateint sum; int tempnum; // Constructors CountImpl(String name) { super(); System.out.println("Count Object Created"); sum = 0; Random a=new Random(); double a1; while(true) { a1=a.nextGaussian()*100; if(a1<100 && a1>0) break; } tempnum=(int)a1; } // get sumpublicint sum() { return sum; } // set sumpublicvoid sum(int val) { sum = val; } // increment methodpublicint increment() { sum++; return sum; } publicdouble check(double num) { return(num-tempnum); } } class CountServer { staticpublicvoid main(String[] args) { try { // Initialize the ORB org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null); // Initialize the BOA POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); // Create the Count object CountImpl count = new CountImpl("My Count"); // get object reference from the servant org.omg.CORBA.Object ref = rootpoa.servant_to_reference(count); Count href = Counter.CountHelper.narrow(ref); // get the root naming context// NameService invokes the name service org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt which is part of the Interoperable// Naming Service (INS) specification. NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); // bind the Object Reference in Naming String name = "Count"; NameComponent path[] = ncRef.to_name( name ); ncRef.rebind(path, href); System.out.println("HelloServer ready and waiting ..."); // wait for invocations from clients orb.run(); } catch(Exception e) { System.err.println(e); } } } // OUTPUT 1 : E:\DIPI1\corba prgs\numgame>java CountClient -ORBInitialPort 1050 -ORBInitialHost a Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 50 NUMBER is less than the actual no!!! Trials = 1 Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 75 NUMBER is greater than the actual no!!! Trials = 2 Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 73 NUMBER is greater than the actual no!!! Trials = 3 Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 72 CONGRATULATIONS!!! GUESSED THE RIGHT NUMBER!!! Trials = 4 // OUTPUT 2 E:\DIPI1\corba prgs\numgame>java CountClient -ORBInitialPort 1050 -ORBInitialHos t a Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 23 NUMBER is less than the actual no!!! Trials = 1 Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 56 NUMBER is less than the actual no!!! Trials = 2 Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 78 NUMBER is greater than the actual no!!! Trials = 3 Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 67 NUMBER is greater than the actual no!!! Trials = 4 Do you want to guess a number(1:Yes / 2:No): 1 Guess a number and enter that number!! 56 SORRY YOUR 5 TRIALS ARE OVER Trials = 5
No comments:
Post a Comment