Node.JS客户端应用程序模拟1000 / +客户端连接

时间:2013-09-10 12:29:42

标签: javascript node.js sockets network-programming


我正在尝试创建一个基于控制台的node.js应用程序,该应用程序模拟1000 / +客户端与现有node.js基于TCP服务器应用程序的连接。

更新: 使用此代码的当前版本^我在TypeError: cannot call method 'write' of undefined收到错误connx[connNos].Write(str)。我想我将不得不重新考虑/重写这段代码;任何指针都是受欢迎的。

到目前为止,这是我想出来的,但这并不像隐含的那样:

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 7000;
var timeout = 30000;

var connx = [];

for(var connNos = 0; connNos < 10; connNos++){

    connx[connNos] = net.createConnection(PORT,HOST);
    //connx.push(connx[connNos]);
    connx[connNos].on('connect', function(err){
        console.log('Client: Connected');
    });

    connx[connNos].on('error', function(data){
        console.log('>> ' + data);
    });

    connx[connNos].on('close', function(){
        console.log('Client: Conn Closed');

        process.exit();
    });

    process.stdin.on('data', function(data){
        console.log('sending data..');
        //connection.write(data);
        var str = "486229^4049^1018436^D^2013-04-01 00:02:09^22.715939100^88.374148220^27238^0^308^0^192.168.1.1^1^2013-04-01 19:49:04";
        connx[connNos].write(str);
        //connection.end();

    });

    process.stdin.resume();

}

任何帮助将不胜感激 TIA:D

2 个答案:

答案 0 :(得分:3)

来自doc

  

net.createConnection(options,[connectionListener])#   构造一个新的套接字对象并打开到给定位置的套接字。建立套接字后,将发出'connect'事件。

     

对于TCP套接字, options参数应该是一个对象,它指定:

     

port:客户端应连接的端口(必需)。   host:客户端应该连接的主机。默认为“localhost”。   localAddress:绑定到网络连接的本地接口。

     

对于UNIX域套接字, options参数应为对象,指定:

     

path:客户端应连接的路径(必需)。

我想

connx[connNos] = net.createConnection(PORT,HOST);

应该是

connx[connNos] = net.createConnection({port:PORT,host: HOST});

答案 1 :(得分:0)

认为async,最有可能的原因是当你调用socket.write时socket连接没有建立。您应该在调用之前检查连接,或者您可以将代码放在连接侦听器中。