当前位置: 首页 > 后端技术 > Node.js

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

时间:2023-04-03 20:23:00 Node.js

1.创建一个TCP客户端constnet=require('net');letsocket=newnet.Socket([选项]);options对象与TCP服务器的options参数属性相同socket.connect(port,[host],[connectListener])socket.connect(path,[connectListener]);此时socket端口有如下属性remoteAddress:连接另一端使用的远程地址remotePort:连接另一端使用的端口号localAddress:用于本地建立连接的地址localPort:用于建立连接的本地端口号。套接字端口对象可用于写入发送到客户端或服务器的流数据。流数据写入后,会立即发送给客户端或服务端。当需要写入流数据时,使用socket端口对象的write方法*`socket.write(data,[encoding],[callback]);`回调函数不需要参数在快速网络中,当数据量小,Node.js总是直接将数据发送到操作系统中专门用于发送数据的TCP缓冲区,然后从TCP缓冲区中取出数据发送一个对象。在较慢的网络中或需要发送大量数据时这种情况下,TCP客户端或服务端发送的数据可能不会立即被对方接收到。在这种情况下,Node.js会将数据缓存在缓存队列中,并在对方可以接收到数据时丢弃缓存。队列中的数据通过TCP缓冲区发送给对象。套接字端口对象的write方法返回一个布尔值。当数据直接发送到TCP缓冲区时,返回值为真。当数据第一次发送到缓冲区排队时,返回值为false。当返回值为false,TCPbuffer中的数据全部发送完毕,触发drain事件。2.一个基本的TCP客户端//创建一个TCP客户端constnet=require('net');letclient=newnet.Socket();client.setEncoding('utf8');client.connect('2596','localhost',function(){console.log('连接到服务器');ent.write('你好,这是一个tcp服务器');setTimeout(function(){client.end('byebye');},10000)});client.on('data',function(data){console.log('已收到服务端发送的数据:'+data);});client.on('error',function(err){console.log(err);client.destroy();});