Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
此java代码的等效nodejs代码_Java_Node.js - Fatal编程技术网

此java代码的等效nodejs代码

此java代码的等效nodejs代码,java,node.js,Java,Node.js,我遇到了这个java代码, 链接: 我只是想知道他们的代码是否与node.js中的代码相同???仅从套接字中读取4个字节,然后读取更多字节: function readLength(cb) { var length = socket.read(4); if (length === null) socket.once('readable', function() { readLength(cb); }); else cb(length.readInt32BE(0, tr

我遇到了这个java代码, 链接:

我只是想知道他们的代码是否与node.js中的代码相同???

仅从套接字中读取4个字节,然后读取更多字节:

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
});

如果您使用的是nodejs TCP服务器,那么您只需将数据写入套接字。您可以将数据写入一个缓冲区,然后将其写入套接字。
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
});