Pyro4与java连接

时间:2015-02-12 22:03:26

标签: java python rmi

大家好我有关于Pyro4和Java的问题。我的问题是如何在Java中的RMI服务器和Python中的客户端RMI之间发送信息? 这是我的代码,我没有任何错误,但我不能发送任何内容。

Java代码:

implements ReceiveMessageInterface
{
    int      thisPort;
    String   thisAddress;
    Registry registry;    // rmi registry for lookup the remote objects.

    // This method is called from the remote client by the RMI.
    // This is the implementation of the �gReceiveMessageInterface�h.
    public void receiveMessage(String x) throws RemoteException
    {
        System.out.println(x);
    }

    public RmiServer() throws RemoteException
    {
        try{
            // get the address of this host.
            thisAddress= (InetAddress.getLocalHost()).toString();
        }
        catch(Exception e){
            throw new RemoteException("can't get inet address.");
        }

        thisPort=3232;  // this port(registry�fs port)
        System.out.println("this address="+thisAddress+",port="+thisPort);
        try{
        // create the registry and bind the name and object.
        registry = LocateRegistry.createRegistry( thisPort );
            registry.rebind("rmiServer", this);
        }
        catch(RemoteException e){
        throw e;
        }
    }

    static public void main(String args[])
    {
        try{
        RmiServer s=new RmiServer();
    }
    catch (Exception e) {
           e.printStackTrace();
           System.exit(1);
    }
     }
}

这是我在Python中的代码:

  

导入Pyro4

     

代理= Pyro4.core.Proxy( “PYRONAME:PhDJara / 127.0.1.1”)

     

print(“5 * 11 =%d”%proxy.multiply(5,11))print(“'x'* 10 =%s”%   proxy.multiply( 'X',10))

感谢您的帮助。

jarain78

1 个答案:

答案 0 :(得分:0)

是什么让你认为你应该能够连接这两个? Pyro4在概念上与Java的RMI类似,但它们是两个完全不同的协议。你无法直接连接它们。

如果您想使用Pyro编写Python客户端并与服务器通信,那么该服务器必须是Pyro服务器。在Java中创建一个的唯一方法是使用Jython + Pyro。