当前位置: 首页 > 知识库问答 >
问题:

EOFException-服务器/客户端readUTF问题

谭向晨
2023-03-14

我最近对尝试将我的石头-纸-剪刀游戏改编成一个多人友好的程序感兴趣,所以今天我决定查阅一个关于服务器的教程。似乎我正在精确地跟踪它(除了使用不同的IDE之外)。然而,有些地方出了问题,我不确定到底是什么,它对教程制造商来说很好。我查过EOFException,但并没有帮到我。

Youtube上的教程

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

顺便说一句,如果你查一下我在这里发布的内容,你还会发现我在DaniWeb上问过这个问题。我只是在多个地方发帖,以防它在其中一个或另一个没有解决。如果是,嗯...知识越多越好。

共有1个答案

诸腾
2023-03-14

eofexceptionreadutf()期间只是表示它已经到达流的末尾,就像它在TIN上说的那样。注意,这个方法不像readline()那样在流结束时返回null(但像所有其他readxxx()方法一样)。

这也可能意味着您的发送和接收不同步,例如,您试图读取大量的字节,因为您漏掉了readint()或类似的内容,或者您在对等端写了一些不应该有的额外内容,所以您试图读取流中的下一个字节,作为writeutf()的结果。这是应用程序协议错误。

这是如何发生在您发布的代码中的另一个问题,但您的代码没有关闭套接字,这没有帮助。将out.close()添加到服务器代码中,并将in.close()添加到客户端代码中。然而,我不能复制你的问题有或没有这些关闭。你确定这是真的代码吗?

 类似资料:
  • 我正在实现客户机/服务器文件发送和接收。 正在发送的部分C代码: 部分Java代码接收: 使用readUTF()函数后,服务器挂起或处于无限循环中,不再继续。我已经使用readLine()尝试了BufferedReader。有一个错误是“没有为BufferedReader(InputStream)找到合适的构造函数&readLine()给出警告。除了BufferedReader之外,还有其他替代方

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 我编写了一个监听客户机的简单服务器,当客户机连接时,它打开一个Datainputstream,读取从客户机发送的所有数据(我的客户机wirte UTF数据)。

  • 前面的章节介绍了所有 Redis 的重要功能组件: 数据结构、数据类型、事务、Lua 环境、事件处理、数据库、持久化, 等等, 但是我们还没有对 Redis 服务器本身做任何介绍。 不过, 服务器本身并没有多少需要介绍的新东西, 因为服务器除了维持服务器状态之外, 最重要的就是将前面介绍过的各个功能模块组合起来, 而这些功能模块在前面的章节里已经介绍过了, 所以本章将焦点放在服务器的初始化过程,

  • 我试图在我的本地机器上设置Hazelcast服务器和客户端。我还试图通过scala客户端连接到本地Hazelcast服务器。 对于我在下面代码中使用的服务器, Hazelcast的客户是, 在我build.sbt, 我在错误之下陷入依赖问题。 我查阅了hazelcast的文档。我找不到任何好的hazelcast scala示例来理解设置并开始使用。如果有人能帮助解决这个问题,或者分享非常好的sca