java.net.connectexception连接超时

时间:2013-12-09 14:18:08

标签: java rmi

我正在使用此代码进行rmi

RmiServer.java

import java.rmi.*;

import java.rmi.registry.*;

import java.rmi.server.*;

import java.net.*;



public class RmiServer extends java.rmi.server.UnicastRemoteObject

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 gReceiveMessageInterfaceh.

    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(registryfs 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);

    }

     }

}

RmiClient.java

import java.rmi.*;
import java.rmi.registry.*;
import java.net.*;

public class RmiClient
{
    static public void main(String args[])
    {
       ReceiveMessageInterface rmiServer;
       Registry registry;
       String serverAddress=args[0];
       String serverPort=args[1];
       String text=args[2];
       System.out.println("sending "+text+" to "+serverAddress+":"+serverPort);
       try{
           // get the �gregistry�h
           registry=LocateRegistry.getRegistry(
               serverAddress,
               (new Integer(serverPort)).intValue()
           );
           // look up the remote object
           rmiServer=
              (ReceiveMessageInterface)(registry.lookup("rmiServer"));
           // call the remote method
           rmiServer.receiveMessage(text);
       }
       catch(RemoteException e){
           e.printStackTrace();
       }
       catch(NotBoundException e){
           e.printStackTrace();
       }
    }
}

ReceiveMessageInterface.java

 import java.rmi.*;

public interface ReceiveMessageInterface extends Remote

{

  public   void receiveMessage(String x) throws RemoteException;


}

这通常可以正常工作,但是当计算机通过手机连接到互联网或者从其他电脑共享互联网时它无法正常工作

我收到此错误。

java.net.connectexception连接超时

当我试图telnet它无法连接,但当我尝试运行该程序的PC 对我的电脑有用。

请让我知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

听起来像是防火墙或代理服务器问题。