Hallo
Hab ein Programm das über RMI eine Methode von einem anderen Programm aufruft. Das Problem dabei ist, das jedesmal beim Versuch eine Verbindung herzustellen eine Exception kommt:
Hab schon so einiges rumprobiert, aber es will einfach nicht klappen. Wenn ich es lokal ausführe, d.H. beides an einem Rechner funktioniert es einwandfrei. Nun aber soll es über WLAN von einem Laptop zu einem Access Point gehen, von diesem zu einen Switch und von dort zum PC. Router ist eigendlich keiner dazwischen. Hab am PC (Server) bereits mit netstat nachgesehen, Port 1099 ist dort vorhanden und wird auch von java verwendet. Der Laptop ist Client.
Habe es so implementiert:
Server:
Client:
danke im Vorraus
mfg
Hab ein Programm das über RMI eine Methode von einem anderen Programm aufruft. Das Problem dabei ist, das jedesmal beim Versuch eine Verbindung herzustellen eine Exception kommt:
Code:
java.rmi.ConnectException: Connection refused to host: 10.0.0.5; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at arm.zatacka.GamePanel.transfer(GamePanel.java:307)
at arm.zatacka.Frame$1.actionPerformed(Frame.java:117)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1329)
at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:568)
at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:465)
at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:411)
at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:306)
at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:817)
at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2353)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2245)
at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2203)
at java.awt.Component.dispatchEventImpl(Component.java:4399)
at java.awt.Container.dispatchEventImpl(Container.java:2081)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
at java.awt.Container.dispatchEventImpl(Container.java:2067)
at java.awt.Window.dispatchEventImpl(Window.java:2458)
at java.awt.Component.dispatchEvent(Component.java:4331)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Hab schon so einiges rumprobiert, aber es will einfach nicht klappen. Wenn ich es lokal ausführe, d.H. beides an einem Rechner funktioniert es einwandfrei. Nun aber soll es über WLAN von einem Laptop zu einem Access Point gehen, von diesem zu einen Switch und von dort zum PC. Router ist eigendlich keiner dazwischen. Hab am PC (Server) bereits mit netstat nachgesehen, Port 1099 ist dort vorhanden und wird auch von java verwendet. Der Laptop ist Client.
Habe es so implementiert:
Server:
Code:
try {
LocateRegistry
.createRegistry(Registry.REGISTRY_PORT);
Transfer stub = (Transfer) UnicastRemoteObject
.exportObject(getFrame(), 0);
RemoteServer.setLog(System.out);
Registry registry = LocateRegistry
.getRegistry();
registry.rebind("Transfer", stub);
} catch (RemoteException e) {
e.printStackTrace();
}
Client:
Code:
Registry registry;
try {
registry = LocateRegistry.getRegistry();
Transfer trans = (Transfer) registry.lookup("Transfer");
trans.transfer(new SerializedImage(sf), hind, winScore, abprallen,
geschw, sp);
} catch (AccessException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
danke im Vorraus
mfg