【问题标题】:Java url.openStream() not working on some computersJava url.openStream() 在某些计算机上不起作用
【发布时间】:2014-07-19 18:15:05
【问题描述】:

我正在 libdgx 中制作游戏,并将在线高分列表存储在一个文件中。我的一台计算机能够在线访问该文件,而连接到同一路由器的另一台计算机则不能。我尝试关闭防火墙,但没有帮助。这个问题的原因可能是什么?

    try {

    URL url = new URL("ftp://.............highscores.txt");

    InputStream in = url.openStream();
    java.util.Scanner s = new java.util.Scanner(in).useDelimiter(" ");
    for(int i=0;i<5;i++)
    {
        scores[i] = s.nextInt();
    }
    for(int i=0;i<5;i++)
    {
        names[i] = s.next();
    }
    }

    catch(java.io.IOException e){}

这是堆栈跟踪

java.net.SocketException: Permission denied: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at sun.net.ftp.impl.FtpClient.readServerResponse(FtpClient.java:421)
at sun.net.ftp.impl.FtpClient.readReply(FtpClient.java:498)
at sun.net.ftp.impl.FtpClient.issueCommand(FtpClient.java:533)
at sun.net.ftp.impl.FtpClient.issueCommandCheck(FtpClient.java:544)
at sun.net.ftp.impl.FtpClient.openPassiveDataConnection(FtpClient.java:607)
at sun.net.ftp.impl.FtpClient.openDataConnection(FtpClient.java:710)
at sun.net.ftp.impl.FtpClient.getFileStream(FtpClient.java:1284)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:428)
at java.net.URL.openStream(URL.java:1037)

【问题讨论】:

标签: java url


【解决方案1】:

这一行

catch(java.io.IOException e){}

意味着您正在吞噬您的代码可能抛出的任何异常。

至少,这段代码应该是

catch(java.io.IOException e)
{
  e.printStackTrace();
}

但最好是使用日志框架并将其注销。

获得日志后,请更新您的问题。否则,就没有什么可做的了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-02
    • 2011-12-22
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多