Java Connector.open的文件描述符不足

Java Connector.open的文件描述符不足,java,java-me,network-programming,Java,Java Me,Network Programming,以下是大部分相关代码,运行在带有FRC Java映像的cRIO上: try { SocketConnection http = (SocketConnection) Connector.open("socket://" + BEAGELIP); InputStream data = http.openInputStream(); database = ""; int p = data.read(); while (p

以下是大部分相关代码,运行在带有FRC Java映像的cRIO上:

try {
        SocketConnection http = (SocketConnection) Connector.open("socket://" + BEAGELIP);
        InputStream data = http.openInputStream();
        database = "";
        int p = data.read();
        while (p >= 0) {
            database += (char) p;
            p = data.read();
        }
        data.close();
        http.close();
} catch (Exception e) {
    System.out.println(e);
}
正在重复调用此方法

在多次连接失败(例如,服务器未插入)后,IOException在套接字创建期间从
java.io.IOException:ConnectException:connect-seeded
切换到
java.io.IOException:errno:24 on fd:-1

我们认为发生这种情况的原因可能是,在发生故障时,
Connector.open
返回null,而我们不能
close()
,从而冻结文件描述符

防止在此过程中使用所有文件描述符的正确方法是什么


如果有人能就如何完成这项工作提出建议,那就太好了。

你的结案一定是在一个finally{}块中。否则,如果出现异常,它们不会发生,并且迟早会出现异常,

我们尝试了这一点,但是,Connector.open无法将其返回保存到变量中,因此我们只能关闭null。如果确实需要这样做的话,请给出更深入的解释。