Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RMI程序执行_Java_Rmi - Fatal编程技术网

Java RMI程序执行

Java RMI程序执行,java,rmi,Java,Rmi,=============服务器接口:Server.java================ import java.rmi.*; public interface Server extends Remote { void register (Client cl) throws RemoteException; void broadcastCord () throws RemoteException; } =============Server Class:ServerImpl

=============服务器接口:Server.java================

 import java.rmi.*;
 public interface Server extends Remote
 {
 void register (Client cl) throws RemoteException;
 void broadcastCord () throws RemoteException;
 }


 =============Server Class:ServerImpl.java===============

 import java.rmi.*;
 import java.rmi.server.*;
 import java.util.*;
 import java.net.*;
 public class ServerImpl extends UnicastRemoteObject implements Server
 {

 public ServerImpl() throws RemoteException
  {

   }

 public synchronized void register (Client cl) throws RemoteException
 {
  System.out.println("===>register Method of Process:");
  cl.receiveInq();

 }


 //=========Broadcast Inquiry==================
 public synchronized void broadcastCord () throws RemoteException
 {
 System.out.println("===>broadcastCord Method of Process:");
  }


 //==============Main Function===================
 public static void main (String[] args)
 {
 try
 {
 System.out.println(InetAddress.getLocalHost().toString());
 Naming.rebind("Server", new ServerImpl());
 }
 catch(Exception e)
 {
 System.err.println("Problem..."+e)  ;
 }
 }
 }

 ============Client InterfaceClient.java:=============

 import java.rmi.*;
 public interface Client extends Remote
 {
 void receiveInq() throws RemoteException;
 void receiveGrt() throws RemoteException;
 }

 ==============Client Class:ClientImpl.java==============

 import java.rmi.*;
 import java.rmi.registry.*;
 import java.rmi.server.*;
 import java.net.*;
 import java.util.*;
 import javax.swing.*;
 import java.awt.event.*;
 import java.net.*;
 import java.io.*;
 import java.awt.*;
 import javax.swing.*;

 public class ClientImpl extends java.rmi.server.UnicastRemoteObject implements Client
  {

 private Server mycs;
 public ClientImpl(Server cs) throws RemoteException
     {

  mycs=cs;
  mycs.register(this);
     }
 //=====Greater List========
  public synchronized void receiveGrt() throws RemoteException
  {
 System.out.println("===>recieveGRT Method of Process:");
  }

 //=====RECIEVE INQUIRY========
     public synchronized void receiveInq () throws RemoteException
  {
  System.out.println("===>receiveInq Method of Process:");
  mycs.broadcastCord();
      }

  public static void main(String args[])
      {
  String url = "rmi://localhost:1099/Server";
  try{
  Server cs= (Server) Naming.lookup(url);
  new ClientImpl(cs);
  }
  catch(Exception e)
  {
  System.err.println("Problem..\n"+e) ;
      }
      }
 }
它不能完全执行……如果我们关闭客户端程序 完成…但我不知道为什么它不能正确执行…它不会抛出任何错误 例外情况


删除“已同步”。你陷入僵局了。RMI回调在与原始调用不同的线程上执行。

您希望具体的行为是什么?一旦客户端启动…它调用服务器的register方法…然后调用客户端的ReceiveInq方法…den调用服务器的broadcastCord…这就是执行挂起的原因。。。。。我不明白为什么广播线不起作用……你能给我一个解决方案吗。。