Java 创建新的 ObjectInputStream 块

2023-12-07

我正在尝试使用从 Socket 检索的 InputStream 创建一个新的 ObjectInputStream。这是我的代码:

这是我的 MessageGetterSender 类的构造函数。程序未到达检查点 4。

public MessageGetterSender(Socket socket) {

    System.out.println("MessageGetterSender: Checkpoint 1");

    this.socket = socket;

    // Get input and output streams
    try {
        System.out.println("MessageGetterSender: Checkpoint 2");

        InputStream is = socket.getInputStream();

        System.out.println("MessageGetterSender: Checkpoint 3");

        this.in = new ObjectInputStream(is);

        System.out.println("MessageGetterSender: Checkpoint 4");

    } catch (IOException ioe) {
        System.out.println("Could not get ObjectInputStream on socket: " + socket.getLocalPort());
    }

    try {
        this.out = new ObjectOutputStream(socket.getOutputStream());
    } catch (IOException ioe) {
        System.out.println("Could not get ObjectOutputStream on socket: " + socket.getLocalPort());
    }

    System.out.println("MessageGetterSender: Checkpoint 5");
}

我正在从一个类实例化一个新的 MessageGetterSender 对象,在该类中我连接到服务器以获取套接字。这是相关代码。它是 InstantMessageClass 的构造函数,该类实例化 MessageGetterSender 对象:

public InstantMessageClient(String username) {

try {
    socket = new Socket("localhost", 5555);
} catch (IOException ioe) {
    System.out.println("Error: Could not connect to socket on port: " + serverPort);
}

messageGetterSender = new MessageGetterSender(socket);

...

由于代码不会执行到检查点 4,但它确实会执行到检查点 3,因此我非常确定 ObjectInputStream 的实例化是罪魁祸首。但我不明白为什么。有任何想法吗?谢谢您的帮助。


当你构造一个ObjectInputStream,在构造函数中,该类尝试读取关联的标头ObjectOutputStream连接的另一端已写入。在读取该标头之前它不会返回。因此,如果您看到构造函数“挂起”,那是因为套接字的另一端尚未使用ObjectOutputStream,或者尚未刷新数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 创建新的 ObjectInputStream 块 的相关文章

  • Google 地图查询返回的 JSON 包含像 \x26 这样的编码字符(如何解码?)

    在 Java 应用程序中 我获取 JSON 来自 Google 地图 其中包含以下字符 x26我想将其转换为其原始字符 据我所知 这是一个 UTF 8 表示法 但我不完全确定 在源 JSON 中 可能会出现各种编码字符 例如 x3c div
  • 用 @DataJpaTest 注释的测试不是用 @Autowired 注释的自动装配字段

    我有一个 Spring Boot 应用程序 其中包含 Spring Data Jpa 存储库 我需要围绕这个存储库运行单元 或组件 测试 我对 Spring Data Jpa 没有太多经验 这是我的测试 这很简单 我无法让它通过 impor
  • MP3:一种以毫秒为单位获取任何给定字节位置的位置的方法?

    我创建了一个 servlet 它返回从客户端请求的任何给定字节位置开始的流 来自 MP3 文件 这允许客户端在任何给定字节位置立即开始播放 而无需进行任何本地查找 现在 我有一个滑块可以直观地显示进度 我正在使用当前字节位置来更新滑块 但是
  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • 使用 Spring 时实例化对象,用于测试与生产

    使用 Spring 时 应该使用 Spring 配置 xml 来实例化生产对象 并在测试时直接实例化对象 这样的理解是否正确 Eg MyMain java package org world hello import org springf
  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • Java 变量的作用域

    我不明白为什么这段代码的输出是10 package uno public class A int x 10 A int x 12 new B public static void main String args int x 11 new
  • Spring Stomp over Websocket:流式传输大文件

    我的SockJs客户端在网页中 发送帧大小为16K的消息 消息大小限制决定了我可以传输的文件的最大大小 以下是我在文档中找到的内容 Configure the maximum size for an incoming sub protoco
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • Java:VM 如何在 32 位处理器上处理 64 位“long”

    JVM 如何在 32 位处理器上处理 64 位的原始 long 在多核 32 位机器上可以并行利用多个核心吗 64 位操作在 32 位机器上慢了多少 它可能使用多个核心来运行不同的线程 但不会并行使用它们进行 64 位计算 64 位长基本上
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • Install4j:如何在安装结束时执行命令行 java -jar filename.jar

    在 Intall4j 中 在安装结束时 我只想通过执行如下命令行来初始化某些内容 java jar filename jar 我怎样才能归档这个任务install4j Thanks 将 运行可执行文件或批处理文件 操作添加到 安装屏幕 并设
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • 如何将实例变量传递到 Quartz 作业中?

    我想知道如何在 Quartz 中外部传递实例变量 下面是我想写的伪代码 如何将 externalInstance 传递到此作业中 public class SimpleJob implements Job Override public v
  • Java 推断泛型类型

    我正在寻找类似的推断捕获泛型类型的概念 类似于以下方法片段 但不是捕获泛型类型的类 public

随机推荐

  • 使用应用程序脚本通过电子邮件发送 Google 电子表格中的图表

    我到处寻找答案 但没有运气 得到了一个 Google 电子表格 它使用应用程序脚本连接到数据库 将一些原始数据提取到电子表格中 然后 我使用各种电子表格公式来操作该数据 最后创建一个图表 我的下一个挑战是我希望能够通过应用程序脚本将该图表嵌
  • 使用 Dev C++ 时未定义对“SDL_main”的引用

    我目前在使用 SDL 库的 dev c 中编译我的项目时遇到问题 我所做的是首先下载文件SDL2 devel 2 0 3 mingw tar gz MinGW 32 64位 从这里site 然后在 工具 gt 编译器选项 然后在 Direc
  • 从 URL 获取内容时出现 403 错误

    我正在尝试自动化一个流程 为此 我需要在 1 次运行中多次点击 URL 来获取 XML 然后解析它 对于该程序的 1 次运行 该 URL 可能会被点击 4 到 25 次 这一切看起来都很好 直到返回 403 错误响应 有趣的是 每 5 或
  • 如何将字符串html内容显示到web浏览器控件中?

    我有一个 C win 应用程序 我将 html 格式的文本保存在数据库中 但我想在网络浏览器中向我的用户显示它 如何将字符串 html 内容显示到网络浏览器控件中 尝试这个 webBrowser1 DocumentText Please e
  • 如何在Python中高效计算两个高斯分布的热图?

    我正在尝试生成一个热图 其中像素值由两个独立的二维高斯分布控制 令它们分别为 Kernel1 muX1 muY1 sigmaX1 sigmaY1 和 Kernel2 muX2 muY2 sigmaX2 sigmaY2 更具体地说 每个内核的
  • 避免 Java 中重复的字符串

    我想问一个关于Java中避免字符串重复的问题 The context是 一个带有标签和属性的 XML 如下所示
  • Prefuse图表手动设置力参数

    Like here 我的 Prefuse 图太密集 看不到任何东西 所以我尝试了 bcr 在接受的答案中建议的方法 但是 它对我不起作用 这是我尝试过的 我恢复了默认设置 然后我改变了第二个参数NBodyForce from ForceSi
  • 比较 HTTP 和 FTP 传输文件的方法

    通过 Internet 传输文件时 其中一种方法相对于另一种方法有哪些优点 或限制 我知道这两种协议的安全形式 我想听听个人经验在性能 可靠性 文件大小限制等方面的比较 这是一个性能比较两者之中 HTTP 对于小文件的请求响应响应速度更快
  • Pandas 列值到列? [复制]

    这个问题在这里已经有答案了 我已经看到了将 Pandas 数据框的列 系列分解为多个列的主题的一些变体 但我一直在尝试做一些事情 但现有的方法并没有真正成功 给定一个像这样的 DataFrame key val id 2 foo orang
  • 检查 iOS 中图像中是否存在子图像[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有 2 个图像 即较小的图像和较大的图像 现在 我想检查较小的图像是否是较大的图像的一部分 或子图像 我不知道如何检查 我想在 iOS 中实现这一切 经过一番研究后 我发现使用
  • 两个div,一个固定宽度,另一个,其余

    我有两个 div 容器 虽然一个需要特定的宽度 但我需要调整它 以便另一个 div 占据剩余的空间 我有什么办法可以做到这一点吗 left float left width 83 display table cell vertical al
  • 我可以在 PHP 中重载方法吗?

    Example 我想要有两个不同的构造函数 并且我不想使用 func get arg 因为这样就看不到可能的参数了 写其中两个是否合法 例如 class MyClass public function construct do someth
  • 方法定义和对象的函数属性之间的区别

    这是我的代码 const x a console log a b function console log b 之间有区别吗a b功能 我在某处读到 a 创建方法的方式较短 但会带来一些问题 仅在您确定永远不会使用递归或将函数传递给事件处理
  • php:是否有充分的理由引用所有数组键/索引?

    我正在运行别人的代码 他们不断地避免转义他们的数组键 例如 row rsCatalogsItems 名称 代替 row rsCatalogsItems 名称 所以我不断地对我接触到的一切做出微小的改变 只是为了应对那一点懒惰 但现在我想知道
  • Matlab条形图:更改条形图的颜色以及条形图和轴之间的间距

    我有一个棘手的问题 我认为不能简单地回答 我有一个很大的数据表 想要保存每两个相应平均值的条形图 我已经使用 for循环 做到了这一点 但我无法为我的条形图设置不同的颜色 也无法在条形图和轴之间设置适当的间距 这是最简单的例子 k 2 5
  • 如何自定义UIPickerView高度?

    如何自定义 UIPickerView 的高度 我希望它比250高 我已完成以下操作 但无法设置给定高度 void pickerview id sender pickerView UIPickerView alloc initWithFram
  • 为什么 __getattr__ 能够在 Python 2.x 中处理内置运算符重载,但不能在 Python 3.x 中处理?

    在 python 2 x 中 采用以下类 class Person def init self name self name name def myrepr self return str self name def getattr sel
  • 初始化对象时,{0} 是什么意思?

    When 0 用来初始化一个对象 什么意思呢 我找不到任何参考资料 0 任何地方 并且由于花括号 谷歌搜索没有帮助 示例代码 SHELLEXECUTEINFO sexi 0 what does this do sexi cbSize siz
  • Selenium:如何将值从field1复制到field2?

    我们正在 Firefox 中使用 Selenium IDE 录制测试 我们需要将值从只读字段复制到输入字段 有没有直接的方法可以引用该字段 或者我是否必须存储和使用它 举个例子就太好了 Thanks 您将需要两个命令 一个用于存储 一个用于
  • Java 创建新的 ObjectInputStream 块

    我正在尝试使用从 Socket 检索的 InputStream 创建一个新的 ObjectInputStream 这是我的代码 这是我的 MessageGetterSender 类的构造函数 程序未到达检查点 4 public Messag