node.js - 如何在 node.js 中创建一个简单的套接字?

标签 node.js sockets mocking mocha.js

我正在尝试创建一个虚拟套接字以用于我的一些测试

var net = require("net");

var s = new net.Socket();

s.on("data", function(data) {
  console.log("data received:", data);
});

s.write("hello!");

收到此错误

Error: This socket is closed.

我也试过用

创建套接字
var s = new net.Socket({allowHalfOpen: true});

我做错了什么?


作为引用,完整的测试如下所示

it("should say hello on connect", function(done) {

  var socket = new net.Socket();

  var client = Client.createClient({socket: socket});

  socket.on("data", function(data){
    assert.equal("hello", data);
    done();
  });

  client.connect();
  // writes "hello" to the socket
});

最佳答案

我认为服务器没有进入监听状态。这是我用的..

// server
require('net').createServer(function (socket) {
    console.log("connected");

    socket.on('data', function (data) {
        console.log(data.toString());
    });
})

.listen(8080);

// client
var s = require('net').Socket();
s.connect(8080);
s.write('Hello');
s.end();

仅限客户端..

var s = require('net').Socket();
s.connect(80, 'google.com');
s.write('GET http://www.google.com/ HTTP/1.1\n\n');

s.on('data', function(d){
    console.log(d.toString());
});

s.end();

关于node.js - 如何在 node.js 中创建一个简单的套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18664530/

相关文章:

node.js - NodeJs - 异步/等待内部的异步/等待

通过 TCP 的 Python 流数据

javascript - Jest spyOn 仅在第二次调用和第三次调用时模拟实现

javascript - Node.js 将 Buffer 转换为对象/函数

node.js - Jest 检查设置是对还是错

c - 如何使用小缓冲区将格式化字符串发送到套接字?

python - 是否可以模拟 Python 3.6 中的内置 len() 函数?

unit-testing - rust 中的单元测试、模拟和特征

node.js - Nodejs express : compression of response doesn't work

c - 尝试从服务器向客户端发送消息的段错误