繁体   English   中英

此Java代码的等效nodejs代码

[英]equivalent nodejs code for this java code

我遇到了这个Java代码,链接: java套接字发送和接收字节数组

Socket socket = ...
DataInputStream dIn = new DataInputStream(socket.getInputStream());

int length = dIn.readInt();                    // read length of incoming message
if(length>0) {
    byte[] message = new byte[length];
    dIn.readFully(message, 0, message.length); // read the message
}

我只是想知道他们是否在node.js中是等效的代码?

只需从套接字读取 4个字节,然后将其转换为32位带符号的big endian整数 ,然后再读取更多字节:

function readLength(cb) {
  var length = socket.read(4);
  if (length === null)
    socket.once('readable', function() { readLength(cb); });
  else
    cb(length.readInt32BE(0, true));
}

function readMessage(cb) {
  readLength(function retry(len) {
    var message = socket.read(len);
    if (message === null)
      socket.once('readable', function() { retry(len); });
    else
      cb(message);
  });
}

// ...

readMessage(function(msg) {
  // `msg` is a Buffer containing your message
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM