使用electron建立TCP连接

1,259 阅读2分钟

如何使用electron建立TCP连接(node介绍net网络通讯网址) 本文章只介绍客户端如何去进行TCP连接

使用场景

  1. 使用electron去连接后端的TCP服务(这也是我为什么写这篇文章的原因,我遇到了这个问题)

注意事项

  1. 如果要是electron去连接TCP的话,可能要要接触到线程之间的通讯,需要了解 使用方法,如果eletcron的electronBuilder配置nodeIntegration为true的话,那么可以在渲染线程使用node的东西,可以直接使用,不需要使用到线程通讯(我使用的electron V26,electron-builder V19版本)

  2. 引入net(记得要安装)

  3. 创建soceket实例,记得是new net.Socket()(net对象下的Socket函数,)

  4. 绑定事件,一般来说绑定data、close、error、timeout事件即可满足我们的使用(触发了error事件后一定会触发close事件)

  5. 主动断开连接

话不多说,贴代码

let net = require('net');
let client = new net.Socket();
client.setEncoding('utf8');
client.connect(502, '192.168.0.192', function () {
    console.log('客户端已连接');
    client.write('hello');
    console.log('发送数据');
    let data = new Uint8Array([0, 0, 0, 1, 0, 15, 255, 1, 68, 48, 48, 50, 49, 50, 53, 48, 48, 54, 54, 52, 30, 51]);
    console.log(data)
    client.end(data);//发送像服务端发送数据,可以发送方字节流,字符串
});
client.on('data', function (data) {//每次接收到了服务端返回的数据都会触发这个回调
    console.log("接收数据");
    console.log(decodeUtf8(data));
    // client.destroy(); 
});
client.on('error', function (error) {
    //连接出现错误
    console.log(error.message);
});
client.on('close', function (hadError) {
   //连接断开    套接字完全关闭后触发。 参数 `hadError` 是一个布尔值,表示套接字是否由于传输错误而关闭。
    console.log('连接关闭',client.closed);//可以判断是否断开连接
});

client.destroyed()//主动断开连接