有人用NODE做过TCP服务/客户端吗
发布于 7 年前 作者 itonyday 3100 次浏览 来自 问答

我刚才用几行代码试了一下用Node做 tcp 的server跟client 感觉挺简单和流畅的,想问一下你们,有用node做过tcp服务端跟客户端的经验吗。

项目背景

  • 需要做TCP接口,硬件向接口发送数据。
  • 另外,还要做客户端进行数据的查看,管理等。
  • 服务端亦会向硬件TCP接口发送数据。

感觉如何,适用吗,相比用其它语言,例如C#,用NODE有什么优势与劣势? 谢谢。

var net = require("net");
var client = new net.Socket();
client.connect(7777, "127.0.0.1", function () {
    console.log("connected");
    client.write("hello server");
});

client.on("data", function (data) {
    console.log("receiving....");
    console.log(data.toString("utf8"));
});

setTimeout(() => {
    var buffer = new Buffer("hi", "utf8");
    client.write(buffer);
    console.log("wrote");
}, 2000);

setTimeout(() => {
    var buffer = new Buffer("hi again", "utf8");
    client.write(buffer);
    console.log("wrote");
}, 5000);


3 回复

相比其他语言, 官方的库就蛮实用, 对底层封装的很好, 习惯异步编程, 事件机制或者流处理写起来很舒服.

没有太密集的 CPU 运算就好, 对数据的处理如果很复杂可考虑分开进程去做.

没有很完备的 Struct (结构体) 方案, 数据拼包可能需要自己下些功夫

  1. 语言本身没有任何优势,看你自己哪方面更熟悉啦。(如果放到 C# 来说,那基本 windows only 算是 C# 的劣势,虽然这个编程语言本身很棒)
  2. 相比自己设计协议,直接实现 HTTP 的一个子集可能更好。
  3. 如果考虑效率与流量,需要作二进制协议设计, 按 js 语言的功能,应该会麻烦死了吧。

都说了,看你哪个熟

回到顶部