我的LAN网络上的端口4028
上有一个打开的tcp on machine,IP地址为192.168.1.166
。我想用节点net.connect
连接到它,但我可能在这里遗漏了一些东西。
我的代码:
var net = require("net");
var s = new net.Socket({
fd: null,
allowHalfOpen: true,
readable: true,
writable: true
});
s.connect(4028, "192.168.1.166");
s.write("{\"command\":\"status\"}");
s
.on('data',function(data){
console.log(data.toString());
JSON.stringify(data, null, 4);
})
.on('connect', function(data){
console.log("connected!");
});
错误:
$node app.js
net.js:50
throw new TypeError('Unsupported fd type: ' + type);
^
TypeError: Unsupported fd type: TTY
at createHandle (net.js:50:9)
at new Socket (net.js:156:20)
at Object.<anonymous> (/home/XXXX/node/net/app.js:3:9)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
到目前为止,我正在跟进api文档http://nodejs.org/api/net.html,但我肯定错过了一些东西。
我已经设法用
做到了var net = require("net");
var client = net.connect(4028, "192.168.1.166");
.on('data',function(data){
console.log(data.toString());
JSON.stringify(data, null, 4);
})
.on('connect', function(data){
console.log("connected!");
});
但是我该怎么写呢?
答案 0 :(得分:0)
Socket
对象中的选项是可选的,fd
选项在Windows中不完全支持。
来自文档http://nodejs.org/api/net.html
fd允许您指定套接字的现有文件描述符。组 可读和/或可写为真以允许对此进行读取和/或写入 socket(注意:仅在传递fd时有效)。 关于allowHalfOpen,请参阅createServer()和'end'事件。
也看到了这个
node.js - share sockets between processes
打开连接的首选方式是
你可以在connect
事件被解雇后开始写作。