我正在尝试创建一个基于控制台的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
答案 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连接没有建立。您应该在调用之前检查连接,或者您可以将代码放在连接侦听器中。