3


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

更新:使用此代码的当前版本^我在以下位置出现错误TypeError: cannot call method 'write' of undefinedconnx[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

4

2 回答 2

3

文档

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

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

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

对于 UNIX 域套接字,选项参数应该是一个对象,它指定:

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

我猜

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

应该

connx[connNos] = net.createConnection({port:PORT,host: HOST});
于 2013-09-10T12:45:40.277 回答
0

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

于 2021-02-12T18:50:41.960 回答