【问题标题】:Java: "Listening" to a DataStreamJava:“监听”数据流
【发布时间】:2011-08-20 18:30:32
【问题描述】:

我有一个程序连接到服务器,并通过输入和输出数据流发送/接收数据。 我想调试它并查看传递的消息是否正确,因此我必须读取通过流发送的内容,但连接有 1 秒超时。 (在服务器端,我无法控制) 有没有办法收听流,以便我可以将数据从流中获取到控制台并仍然发送数据?

public void foo(DataInputStream in, DataOutputStream out){
    //Some code to make the console write whatever is sent in the out stream
    //And received in the in stream. 

    out.writeUTF("SOME TEXT");
    String s = in.readUTF();
}

【问题讨论】:

    标签: java networking stream


    【解决方案1】:

    Jakarta Commons IO 会帮助你。在您创建DataInputStream 的地方,插入一个写入ByteArrayOutputStreamTeeInputStream。然后,您可以在闲暇时检查该字节数组。

    【讨论】:

    • 讨厌!打败我:)。同意这一点:TeeInputStream 是此类任务的方式、真理和光明。
    • 不幸的是我必须使用 DataInputStream(和输出)类,所以我不能使用任何不扩展它的东西。
    • @Benny - TeeInputStream 是一个装饰器:无论你在哪里创建 DataInputStream,你仍然会这样做。但是,作为构造链的一部分,您将插入 TeeInputStream
    • 哦,所以我从原始流创建了一个 Tee 流,并将其发送到 DataInputStream,对吗?
    • @Benny - 是的。同时,如果您还没有使用BufferedInputStream(JDK 的一部分),您应该将其中一个添加到您的堆栈中。
    猜你喜欢
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    相关资源
    最近更新 更多