【发布时间】:2009-03-22 06:54:13
【问题描述】:
(原谅我,因为我不经常用 Java 编写代码。)
我正在用 Java 编写客户端网络应用程序,但遇到了一个有趣的问题。每次调用 readInt() 都会抛出一个EOFException。该变量的类型为DataInputStream(初始化为:DataInputStream din = new DataInputStream(new BufferedInputStream(sock.getInputStream()));,其中sock 的类型为Socket)。
现在,sock.isInputShutdown() 返回 false 和 socket.isConnected() 返回 true。我假设这意味着我与我正在连接的另一台机器建立了有效的连接。我还执行了其他检查以确保我已正确连接到另一台机器。
DataInputStream 是否设置不正确?有没有我遗漏的先决条件?
非常感谢任何帮助。
@tofubeer:我实际上向套接字写入了 17 个字节。套接字已连接到另一台机器,我正在等待该机器的输入(如果不清楚,我很抱歉)。我首先成功地从流中读取(以启动握手),这工作得很好。我现在正在检查我发送的请求是否格式错误,但我认为不是。另外,我尝试从流中读取一个字节(通过read()),它返回-1。
【问题讨论】:
-
发布源代码会有所帮助。还可以尝试通过其他方式验证远程端是否正常工作。
标签: java multithreading exception networking sockets