资讯专栏INFORMATION COLUMN

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

cnsworder / 2900人阅读

摘要:创建客户端对象与服务器的参数属性一样此时端口有下边的几个属性连接另一端所使用的远程地址连接另一端所使用的端口号本地用于建立连接的地址本地用于建立连接的端口号端口对象可以被用来写入向客户端或服务器端发送的流数据当流数据被写入后将立即发送到客户

1. 创建TCP客户端
const net = require("net");
let socket = new net.Socket([options]);

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

socket.connect(port, [host], [connectListener])

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

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();
});

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92889.html

相关文章

  • Node.js学习之路10——创建TCP服务器

    摘要:创建服务器方法返回被创建的服务器参数参数值为一个对象可以在给兑现各种使用一个布尔类型的属性当为时当服务器接收到客户端发送的一个包时将会回发一个包当为时服务器接收到客户端发送的包时不回发包这使得服务器可以继续向客户端发送数据但是不会继续接收客 1.创建TCP服务器 let server = net.createServer([options], [connectionListener]...

    LeexMuller 评论0 收藏0
  • Node.js学习之路03——Buffer类初识

    摘要:然而,在处理流或文件流时,必须要处理二进制数据。因此,在中,定义了一个类,该类用来创建一个专门存放二进制数据的缓存区。因为在计算字符串的长度时,以位子作为一个单位,而在计算缓存区的长度时,以字节作为一个单位。 buffer对象 1. 什么是buffer 在客户端Javascript脚本代码中,对于二进制数据没有提供一个很好的支持。然而,在处理TCP流或文件流时,必须要处理二进制数据...

    DobbyKim 评论0 收藏0
  • 双十二大前端工程师读书清单

    摘要:本文最早为双十一而作,原标题双大前端工程师读书清单,以付费的形式发布在上。发布完本次预告后,捕捉到了一个友善的吐槽读书清单也要收费。这本书便从的异步编程讲起,帮助我们设计快速响应的网络应用,而非简单的页面。 本文最早为双十一而作,原标题双 11 大前端工程师读书清单,以付费的形式发布在 GitChat 上。发布之后在读者圈群聊中和读者进行了深入的交流,现免费分享到这里,不足之处欢迎指教...

    happen 评论0 收藏0
  • 双十二大前端工程师读书清单

    摘要:本文最早为双十一而作,原标题双大前端工程师读书清单,以付费的形式发布在上。发布完本次预告后,捕捉到了一个友善的吐槽读书清单也要收费。这本书便从的异步编程讲起,帮助我们设计快速响应的网络应用,而非简单的页面。 本文最早为双十一而作,原标题双 11 大前端工程师读书清单,以付费的形式发布在 GitChat 上。发布之后在读者圈群聊中和读者进行了深入的交流,现免费分享到这里,不足之处欢迎指教...

    余学文 评论0 收藏0

发表评论

0条评论

cnsworder

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<