Haloa, mijn probleem is het volgende:
Ik heb een linux bak met daarop een rmiregistry, deze draait op 1099, en er draait ook een server java programma op deze bak. Zover alles goed.
Het probleem is dat de clients dynamisch een poort innemen, iets wat ik ivm m`n firewall niet wil. Als ik de firewall uitzet werkt het wel, maar das uiteraard niet de oplossing.
De server code is als volgt:
De client is als volgt:
En de implementatie class
Hoe krijg ik het voor elkaar dat de clients een statische poort krijgen?
Thnx.
ps. sorry van de layout
Ik heb een linux bak met daarop een rmiregistry, deze draait op 1099, en er draait ook een server java programma op deze bak. Zover alles goed.
Het probleem is dat de clients dynamisch een poort innemen, iets wat ik ivm m`n firewall niet wil. Als ik de firewall uitzet werkt het wel, maar das uiteraard niet de oplossing.
De server code is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| import java.rmi.*;
import java.util.Vector;
import java.net.ServerSocket;
public class Server
{
static Vector resetInfo;
static boolean reset=false;
public static void main(String[] argv)
{
System.setSecurityManager(new RMISecurityManager());
try
{
Impl implementation = new Impl("myRMIImplInstance");
Naming.rebind("rmi://127.0.0.1:1099/myRMIImplInstance" , implementation);
while(true)
{
Thread.sleep(1000);
resetInfo=implementation.getReset();
}
}
catch (Exception e)
{
System.out.println("Exception occurred: " + e);
}
}
} |
De client is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;
import java.util.Date;
import java.util.Vector;
public class Client
{
static Vector resetInfo;
public static void main(String[] argv)
{
System.setSecurityManager(new RMISecurityManager());
if (argv.length != 2)
{
System.exit(0);
}
String hostIP = argv[0];
String clientName = argv[1];
try
{
while (true)
{
TaskBag myServerObject = (TaskBag) Naming.lookup("rmi://"+hostIP+":1099/myRMIImplInstance");
resetInfo=myServerObject.getReset();
{
myServerObject.resetDone();
}
}
// System.out.println("Date on server is " + d);
}
catch(Exception e)
{
System.out.println("Exception occured: " + e);
System.exit(0);
}
System.out.println("RMI connection successful");
}
} |
En de implementatie class
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;
import java.util.Vector;
public class Impl extends UnicastRemoteObject implements TaskBag
{
Vector resetInfo;
public Impl(String name) throws RemoteException
{
super();
resetInfo = new Vector(2);
try
{
Naming.rebind(name, this);
}
catch(Exception e)
{
System.out.println("Exception occurred: " + e);
}
}
}
} |
Hoe krijg ik het voor elkaar dat de clients een statische poort krijgen?
Thnx.
ps. sorry van de layout
[ Voor 4% gewijzigd door Rempage0611 op 15-08-2003 02:37 ]