Code for Corba program of game in Java
// IDL
module GameModule
{
interface Game
{
double guess(indouble operand1);
};
};
// GameImpl// Contains the implementation of the methods defined in the IDL file.
import GameModule.GamePOA;
class GameImpl extends GamePOA
{
GameImpl()
{
super();
System.out.println("game Object Created");
}
publicdouble guess(double num)
{
if(num < 50)
return(-1);
elseif(num > 50)
return(1);
elsereturn(0);
}
}
// OUTPUT
1
1
You enter number is Lower
Enter no=
32
32
You enter number is Lower
Enter no=
34
34
You enter number is Lower
Enter no=
65
65
You enter number is Higher
Enter no=
99
99
You enter number is Higher
Enter no=
50
50
You enter Exact num in trial =5
// Server
import GameModule.Game;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
class GameServer
{
publicstaticvoid main(String[] args)
{
try
{
// initialize the ORB
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);
// initialize the BOA/POA
POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootPOA.the_POAManager().activate();
// creating the calculator object
GameImpl game = new GameImpl();
// get the object reference from the servant class
org.omg.CORBA.Object ref = rootPOA.servant_to_reference(game);
System.out.println("Step1");
Game h_ref = GameModule.GameHelper.narrow(ref);
System.out.println("Step2");
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
System.out.println("Step3");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
System.out.println("Step4");
String name = "Game";
NameComponent path[] = ncRef.to_name(name);
ncRef.rebind(path,h_ref);
System.out.println("Game Server reading and waiting....");
orb.run();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
// Client
import GameModule.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import java.io.DataInputStream;
import java.lang.Integer;
class GameClient
{
publicstaticvoid main(String args[])
{
Game GameImpl=null;
int count=0;
int data;
try
{
// initialize the ORB
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
String name = "Game";
GameImpl = GameHelper.narrow(ncRef.resolve_str(name));
while(true)
{
int num;
System.out.println("Enter no=");
DataInputStream in=new DataInputStream(System.in);
num=Integer.parseInt(in.readLine());
System.out.println(num);
data=(int) GameImpl.guess(num);
if(data == -1)
{
System.out.println("You enter number is Lower");
count=count+1;
}
elseif(data == 1)
{
System.out.println("You enter number is Higher");
count=count+1;
}
elseif(data == 0)
{
System.out.println("You enter Exact num in trial ="+count);
break;
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}