import calc_val.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import java.io.*; publicclass calc_client { static calc calcimpl; publicstaticvoid main(String args[]) { try { double result=0.0,num1=0.0,num2=0.0; ORB orb=ORB.init(args,null); org.omg.CORBA.Object objref=orb.resolve_initial_references("NameService"); NamingContextExt ncref=NamingContextExtHelper.narrow(objref); String pathname="calc"; calcimpl=calcHelper.narrow(ncref.resolve_str(pathname)); int ch=1; while(ch!=0) { System.out.println("1. Addition"); System.out.println("2. Subtraction"); System.out.println("3. Multiplication"); System.out.println("4. Division"); System.out.println("0. Exit"); BufferedReader in1=new BufferedReader(new InputStreamReader(System.in)); System.out.println("enter your choice:"); ch=Integer.parseInt(in1.readLine()); if(ch==0) break; BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); System.out.println("enter number1:"); num1=Double.parseDouble(in.readLine()); System.out.println("enter number2:"); num2=Double.parseDouble(in.readLine()); switch(ch) { case 1: result=calcimpl.addfn(num1,num2); break; case 2: result=calcimpl.subfn(num1,num2); break; case 3: result=calcimpl.mulfn(num1,num2); break; case 4: result=calcimpl.divfn(num1,num2); break; } System.out.println("result is:"+result); } } catch(Exception e) { System.out.println(e); } } } ----------------- calc_server.java ----------------- import calc_val.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA; class serverimpl extends calcPOA { private ORB orb; publicvoid setorb(ORB orb_val) { orb=orb_val; } publicdouble addfn(double n1,double n2) { return(n1+n2); } publicdouble subfn(double n1,double n2) { return(n1-n2); } publicdouble mulfn(double n1,double n2) { return(n1*n2); } publicdouble divfn(double n1,double n2) { return(n1/n2); } } publicclass calc_server { publicstaticvoid main(String args[]) { try { ORB orb=ORB.init(args,null); org.omg.CORBA.Object objref1=orb.resolve_initial_references("RootPOA"); POA rootpoa=POAHelper.narrow(objref1); rootpoa.the_POAManager().activate(); serverimpl serverobj=new serverimpl(); serverobj.setorb(orb); org.omg.CORBA.Object objref2=rootpoa.servant_to_reference(serverobj); calc href=calcHelper.narrow(objref2); org.omg.CORBA.Object objref3= orb.resolve_initial_references("NameService"); NamingContextExt ncref=NamingContextExtHelper.narrow(objref3); String pathname="calc"; NameComponent path[]=ncref.to_name(pathname); ncref.rebind(path,href); System.out.println("server ready and waiting..."); orb.run(); } catch(Exception e) { System.out.println(e); } } } ************* OUTPUT ************* E:\DIPI1\corba prgs\calculator>java calc_client -ORBInitialPort 1050 -ORBInitial Host a 1. Addition 2. Subtraction 3. Multiplication 4. Division 0. Exit enter your choice: 1 enter number1: 12 enter number2: 45 result is:57.0 1. Addition 2. Subtraction 3. Multiplication 4. Division 0. Exit enter your choice: 2 enter number1: 45 enter number2: 90 result is:-45.0 1. Addition 2. Subtraction 3. Multiplication 4. Division 0. Exit enter your choice: 3 enter number1: 12 enter number2: 5 result is:60.0 1. Addition 2. Subtraction 3. Multiplication 4. Division 0. Exit enter your choice: 4 enter number1: 35 enter number2: 2 result is:17.5 1. Addition 2. Subtraction 3. Multiplication 4. Division 0. Exit enter your choice: 0
No comments:
Post a Comment