如何检查客户端是否断开连接?在RMI

时间:2015-03-14 14:10:32

标签: java rmi

当我的客户关闭或断开连接时,我遇到了一些问题。现在客户端通过RMI向服务器发送数据。

服务器代表naming.rebind(建立rmi服务) 客户端正在寻找服务器naming.looking。

我希望在我的服务器中以某种方式检查客户端是否在发生错误或其他情况时断开连接,因为如果发生这种情况我需要停止一些while循环。

线程方法在我的服务器中运行:

public void run() {

    try {
        java.rmi.registry.LocateRegistry.createRegistry(1099); // Registers data service for Temperature

        RemoteI remote = new ReceiveTemperatureData();
        Naming.rebind("rmi://localhost/temperatureservice", remote);
        System.out.println("Temperature sensor service registered");
        System.out.println("Waiting for response");
        System.out.println("");
    }catch (Exception e) {
        System.out.println("RMI service could not be registret");
    }

    while (true) {
        if (data != 0) {
            ar.add((byte) data);
            calculateAverage();
            System.out.println("data er: " + data);

            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        } 

    }

}

如果客户端断开连接,我想停止while循环,我能做些什么吗?希望有人可以提供帮助,因为我们整天都在寻找解决方案:S

在我的服务器中也有这个方法,

public void SendTemperature(double data) throws RemoteException {
    this.data = data;       
}

也许我可以用它来检查方法是否没有被调用?

0 个答案:

没有答案