【问题标题】:EOFException - Server/Client readUTF problemsEOFException - 服务器/客户端 readUTF 问题
【发布时间】:2014-04-26 12:13:08
【问题描述】:

我最近开始有兴趣尝试将我的 Rock-Paper-Scissors 游戏改编为适合多人游戏的程序,所以今天我决定查找有关服务器的教程。看来我正在精确地遵循它(除了使用不同的 IDE)。但是,出了点问题,我不确定它到底是什么,它对教程制作者来说很好用。我查过 EOFException 但它并没有完全帮助我。

The tutorial on Youtube

我的问题截图。

[有关 EOFException 的文档](我在这里有一个链接,但我需要至少 10 个声望才能发布两个以上的链接)

“表示输入期间意外到达文件结尾或流结尾。 此异常主要由数据输入流用来表示流结束。请注意,许多其他输入操作在流结束时返回一个特殊值,而不是抛出异常。"

[这里提出了一个类似但显然未解决的问题](我这里也有一个链接]

顺便说一句,如果您确切地查看我在此处发布的内容,您还会发现我在 DaniWeb 上问过它。我只是在多个地方发帖,以防其中一个没有解决。如果是,那么……知识越多越好。

【问题讨论】:

    标签: sockets client eofexception


    【解决方案1】:

    EOFException during readUTF() 只是意味着它已到达流的末尾,就像它在锡上所说的那样。请注意,此方法不会在流结束时返回 null,这与 readLine() 不同(但与所有其他 readXXX() 方法一样)。

    它可能也意味着您的发送和接收不同步,例如您正在尝试读取一些可笑的大量字节,因为您遗漏了readInt() 或类似内容,或者您​​在对等方写了一些您不应该拥有的额外内容,因此您正在尝试读取流中的下一个字节不是writeUTF() 的结果。这是一个应用程序协议错误。

    这是如何在您发布的代码中发生的另一个问题,但是您的代码没有关闭套接字,这没有帮助。将out.close() 添加到您的服务器代码,并将in.close() 添加到客户端代码。但是,无论是否关闭,我都无法重现您的问题。你确定这是真正的代码吗?

    【讨论】:

    • 感谢您的意见。我一定会关闭套接字。我已经通过教程第二次检查了。该代码与他在视频中的代码完全相同,并且他在接近尾声时运行得很好。可能是我的端口有问题。
    • 顺便说一句,您在这里看到的是第一个教程中提供的所有代码,再次完美地执行了视频中的教程制作者。
    猜你喜欢
    • 2011-05-26
    • 2012-05-30
    • 2016-03-30
    • 2011-06-06
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多