Node.js学习之路11——建立TCP客户端

1. 建立TCP客户端

const net = require('net');
let socket = new net.Socket([options]);

options对象与TCP服务器的options参数属性同样javascript

  • socket.connect(port, [host], [connectListener])
  • socket.connect(path, [connectListener]);
    此时socket端口有下边的几个属性java

    • remoteAddress:链接另外一端所使用的远程地址
    • remotePort:链接另外一端所使用的端口号
    • localAddress:本地用于创建链接的地址
    • localPort:本地用于创建链接的端口号

socket端口对象能够被用来写入向客户端或服务器端发送的流数据,当流数据被写入后将当即发送到客户端或服务器.当须要写入流数据时,使用socket端口对象的write方法缓存

* `socket.write(data, [encoding], [callback]);`该回调函数不须要参数

在一个快速的网络中,当数据量较少的时候,Node.js老是将数据直接发送到操做系统专用于发送数据的TCP缓存区中,而后从该TCP缓存区中取出数据发送个对象.在一个慢速的网络中或者须要发送大量数据的时,TCP客户端或服务器所发送的数据并不必定会当即被对方所接收,在这种状况下,Node.js会将这些数据缓存在缓存队列中,在对方能够接收数据的状况降低缓存队列中的数据经过TCP缓存区发送给对象.socket端口对象的write方法返回一个布尔类型值,饭改数据直接被发送到TCP缓存区中时,该返回值为true,当数据首先被发送到缓存队列时,该返回值为false.当返回值为false且TCP缓存区中的数据已所有发送出去时,触发drain事件.服务器

2. 一个基本的TCP客户端

// 建立TCP客户端
const net = require('net');
let client = new net.Socket();
client.setEncoding('utf8');
client.connect('2596', 'localhost', function () {
    console.log('已链接到服务器');
    client.write('hello, this is a tcp server');
    setTimeout(function () {
        client.end('byebye');
    }, 10000)
});
client.on('data', function (data) {
    console.log('已接收服务器端发送的数据:' + data);
});

client.on('error', function (err) {
    console.log(err);
    client.destroy();
});
相关文章
相关标签/搜索