gpt4 book ai didi

java - Node 缓冲区打印问题

转载 作者:行者123 更新时间:2023-12-01 15:17:33 24 4
gpt4 key购买 nike

我正在尝试让 Java TCP 客户端和 Node.js TCP 服务器一起对话。这是我目前的代码:

  • Java 客户端

    导入java.net。;导入java.io。;

    公共(public)类 Client2{

    public static void main(String[] args)  throws Exception{
    Socket s = new Socket("192.168.1.35",8500);
    DataOutputStream dos = new DataOutputStream(s.getOutputStream());
    dos.writeUTF("abcdefgh");
    dos.close();
    s.close();
    }

    }

  • Node.js 服务器

    var net = require('net'), 服务器 = net.createServer();

    server.on('连接', 函数(客户端){

    console.log('Hello World !');

    client.on('data', function(data) {

    var message = data.toString('utf8');
    console.log('***' + message +'***');

    });

    });

    服务器.listen(8500);

这个例子将返回这个结果:

Hello World !
**abcdefgh***
  • 但以此作为输入:

    abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

它返回:

Hello World !
***�abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz***
  • 使用此输入:

    qq32we3w87d 38s1d87s4df7s4d1+s2d7f+sfdsf4sà$àà3663%ç%&ç%&ç

它返回:

Hello World !
***@qq32we3w87d 38s1d87s4df7s4d1+s2d7f+sfdsf4sà$àà3663%ç%&ç%&ç***

tldr:有时在记录缓冲区时, Node 会在开头添加字符(带有数字或?的矩形),或者事件在开头删除一些字符。

- 如何记录缓冲区并将它们以正确的方式分配给变量?

最佳答案

我不是 DataOutputStream 方面的专家,但如果它确实添加了额外的字符,您应该使用其他东西。

当我做服务器工作时,我使用了 BufferedReader 和 BufferedWriter。它看起来像这样:

        Socket s = new Socket(<<WEB ADDRESS AS STRING>>,<<PORT NO AS INT>>);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
//left out a bunch of lines. This is where you should read the lines
//of input (with an inner loop) and send stuff back
s.shutdownInput();
bw.flush();
s.shutdownOutput();

请注意,如果您要处理大页面,这可能会导致问题,因为 BUFFEREDREADER 和 BUFFEREDWRITER 将在您准备好之前就填满。如果这是一个问题,我'查看其他 Reader 和 Writer 类。据我了解,它们相当丰富,应该能满足您的需求。

关于java - Node 缓冲区打印问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11424260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com