美文网首页
nodejs系列-TCP协议

nodejs系列-TCP协议

作者: 写前端的大叔 | 来源:发表于2020-03-15 17:23 被阅读0次

学海无涯,知识是永远学不完的,前端的知识还没完全搞透,又想来折腾下nodejs了,不管了,先广度,然后再深度,前端体系的知识再怎么着也得都有所了解,首先就从nodejsTCP来开始学。通过写文章来记录学习的点点滴滴,方便日后回顾的时候更容易理解。

什么是TCP

TCP是一种传输层协议,它可以让你将数据从一台计算机完整有序的传输到另一台计算机。基于这样的特点,我们常见的HTTP都是基于TCP协议的。

特点

  • 面向字节:TCP对消息格式没有严格的约束,对字符以及字符编码是完全远程的。
  • 可靠性:由于TCP是基于确认和超时实现一系列的机制来达到可靠性的要求,保证了连接之间的可靠性。
  • 流控件:TCP是通过一种叫流控制的方式来确保两点之间传输数据的平衡。
  • 拥堵控制:TCP有一种内置的机制能够控制数据包的延迟率及丢包率不会太高,以此来确保服务的质量。

TCP连接由服务端和客户端组成,这里通过nodejsAPI来实现一个简单的聊天程序,在nodejs中创建TCP服务端和客户端使用的是net包下面的API,在使用的时候,需要先通过const net = require('net')net引入进来。

服务端

服务端是通过createServer来创建一个服务器,然后再使用listen来绑定一个端口用于监听。服务端的代码如下所示:

const net = require('net')
let count = 0;//用于记录连接的个数
module.exports = function(){
    let server = net.createServer((conn) => {
        conn.setEncoding('utf8');
        console.log('连接成功');
        count ++;
        conn.write('连接成功,一共有有'+count+'人在线');
        conn.on('close',() => {
            count --;
            console.log('一共有有'+count+'人在线')
        })

        conn.on('end',() => {
            console.log('结束')
        })

        conn.on('data',(data) => {
            data = data.replace('\r\n','');
            console.log(data);
        })
    })
    server.listen(3000,() => {
        console.log('开始监听')
    })
}

conn.setEncoding('utf8');用于设置字符编码。
close:用于监听客户端关闭连接。
end:结束连接时触发。
data:用于接收客户端发送的数据。

创建完后服务端后,开始可以使用telnet进行连接,打开系统的终端,输入telnet命令,再输入telnet 127.0.0.1 3000进行连接,连接成功后将提示成功的信息,如下所示:

telnet.png
在终端中输入文字,然后再按回车,在服务端可以接收客户端输入的文字信息。

客户端

客户端主要是使用createConnection进行连接,在该方法中传入服务端的端口号和IP地址,就可以进行连接服务端了。如下所示:

const net = require('net')
module.exports = function(){
    let client = net .createConnection(3000,'127.0.0.1');
    client.setEncoding('utf8');
    client.on('connect',() =>{
        client.write('我是客户端001');
    })
}

createConnection:创建连接
connect:连接成功后执行该回调。
个人博客

相关文章

  • nodejs系列-TCP协议

    学海无涯,知识是永远学不完的,前端的知识还没完全搞透,又想来折腾下nodejs了,不管了,先广度,然后再深度,前端...

  • TCP、UDP协议测试

    基于Nodejs、socket.io,开发了TCP和UDP服务平台,帮助大家做TCP和UDP协议的测试 在做硬件终...

  • TCP/UDP

    1、传输层协议TCP与UDP TCP/IP是个协议组,代表传输控制协议/网际协议,指的是一系列协议。,可分为三个层...

  • TCP/IP协议

    1.前言 互联网的核心是一系列的协议,也就是我们口中所说的“TCP-IP协议”。记住,TCP-IP协议不是指TCP...

  • TCP/IP模型&HTTP协议

    什么是TCP/IP模型?TCP/IP模型是互联网的基础,TCP/IP模型是一系列网络协议的总称。这些协议的目的,就...

  • 你见过这份864页神仙级的TCP/IP协议吗?看不懂就过分了,太

    你可知TCP/IP协议是什么? TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子...

  • 15分钟TCP

    TCP协议详解 介绍TCP协议之前,先区分一下TCP协议,和TCP/IP体系结构。TCP协议是TCP/IP协议体系...

  • TCP 协议 の 连接

    序 这是 TCP 协议系列文章的第二篇,上一篇文章中对 TCP 协议进行了简单介绍,由介绍可知,建立在 TCP 协...

  • TCP/IP协议是什么

    TCP/IP协议是什么? TCP/IP协议是一系列网络协议的总和;它定义了电子设备如何接入互联网,以及数据如何在它...

  • 计算机网络02 - 传输层

    目录 TCP协议和UDP协议TCP首部TCP连接管理UDP首部 1. TCP协议和UDP协议 TCP协议:面向连接...

网友评论

      本文标题:nodejs系列-TCP协议

      本文链接:https://www.haomeiwen.com/subject/ntieehtx.html