5

我有这个简单的 TCP 服务器:

var net = require('net');

var server = net.createServer(function (socket) {

    socket.on('connect', function() {
        console.log("New client!");
    });

});

server.listen(8000, function(){
    console.log("server running...")
});

然后我有另一个文件作为client.js

var net = require('net');

var client = net.connect({port: 8000},
    function() { 
    console.log('client connected');
});

client.on('error', console.error);

我在一个终端窗口中运行服务器,然后在另一个窗口中运行客户端,并希望看到服务器日志“新客户端”。虽然,这不会发生。那么,“连接”事件究竟是什么时候发出的呢?

4

2 回答 2

18

net.createServer将给定函数设置为connection事件的侦听器。

换句话说,在服务器端,当您获得回调时,套接字已经连接,并且您尝试侦听的事件不会在已连接的套接字上发出。

于 2013-10-13T07:47:37.660 回答
0

I made a different test. The server object has "timeout" property. When you call the follow code:

server.setTimeout(500); //Now after 0,5 second you can call "connection" event. The default value is 120000.

But, I still have no idea what this change will cause.

于 2015-03-15T02:56:48.263 回答