美文网首页
构建TCP服务

构建TCP服务

作者: 萘小蒽 | 来源:发表于2020-02-16 14:01 被阅读0次

TCP服务在网络应用中十分常见,目前大多数的应用都是基于TCP搭建而成的。

1. 什么是TCP?

tcp全名叫传输控制协议,在OSI模型(开放式系统互联通信参考模型由七层组成,分别为物理层、数据连接层、网络层、传输层、会话层、表示层、应用层)中属于传输层协议。
许多应用层协议基于tcp构建,典型是HTTP、SMTP、IMAP等协议。

HTTP、SMTP、IMAP等 应用层
加密\解密等 表示层
通信连接\维持会话 会话层
TCP\UDP 传输层
IP 网络层
网络特有的链路接口 链路层
网络物理硬件 物理层

\color{#595959}{\small\mathbf{ 视图:OSI模型(七层协议)}}

TCP是面向连接的协议,其显著的特征是在传输之前需要三次握手:请求,确认,连接。

**tcp传输之前的三次握手**

只有在会话形成之后,服务器端和客户端之间才能相互发送数据
在创建会话的过程中,服务端和客户端分别提供一个套接字(socket),这两个套接字共同形成一个链接。服务器端与客户端则通过套接字实现两者之间的操作。

2. 创建TCP服务器端

基本了解tcp的工作原理之后,开始创建一个TCP服务器端来接受网络请求:

//createServer.js
var net = require('net');
var server = net.createServer(socket => {  //创建TCP服务端
    socket.on('data', data => {
        console.log(data.toString()) //服务端接收
    });
    socket.on('end', data => {
        console.log('链接断开')
    })
    socket.write('欢迎光临我的示例:\n');
})
server.listen(8124, () => {
    console.log('server bound');
})

通过net.createServer(listener)创建一个tcp服务,listener是链接事件connection的监听器,也可以使用以下方式进行监听:

var server = net.createServer();
server.on('connection',socket =>{
 //新的链接
})
server.listen(8124);

TCP服务端一旦建立连接成功后,会得到一个socket对象作为回调中的参数,我们可以操作这个socket对象,tcp连接的对象socket是可读可写的流。作为一个流对象,因此能够监听data,end等事件;作为一个可写流,具有write()方法。

在tcp服务对象的‘connection’也能注册监听回调事件,也能从回调的参数中拿到上面所说socket对象。

3. TCP客户端

通过net模块自行构造客户端进行会话:

//client.js
var net = reuire('net');
var client = net.connect({port:8124},fuction(){
  console.log("client  connected";
     client.write('world!')  
  )
})
client.on('data',(data)=>{
  console.log(data.tostring());
  client.end();
});
client.on('end',()=>{
  console.log('client disconnected');
});

当我们执行node client.js和使用telent的会话结果并无差异。

相关文章

  • Python 网络编程 - 04 tcp客户端/tcp服务器

    目录一、tcp客户端构建流程二、tcp服务器端构建流程三、案例——文件下载器四、tcp注意点 一、tcp客户端构建...

  • 构建TCP服务

    TCP服务在网络应用中十分常见,目前大多数的应用都是基于TCP搭建而成的。 1. 什么是TCP? tcp全名叫传...

  • 网络编程

    构建TCP服务 tcp全名传输控制协议,在osi模型中属于传输层协议。许多应用层协议基于TCP构建,典型的是HTT...

  • http请求

    1.tcp连接 浏览器通过网络与服务器建立连接(通过TCP完成)tcp与ip共同构建Internet ->TCP/...

  • Node.js 网络开发

    Node.js 的网络通信模块: 构建 TCP 服务器 使用 Node.js 创建 TCP 服务器 同上 除了 l...

  • 用Node.js的net创建TCP服务进行通信

    Node.js中的net模块提供了对TCP协议的封装,使用net模块可以轻松的构建一个TCP服务器,或构建一个连接...

  • Node-网络编程

    构建TCP服务 TCP是面向连接的协议,其显著的特征是在传输之前需要3次握手形成会话,只有会话形成之后,服务端和客...

  • TCP服务的事件

    在《构建TCP服务》的示例中,代码分为服务器事件和连接事件。 1. 服务器事件 对于通过net.createSe...

  • node 网络(二)

    构建websocket服务 websocket的优势: 客户端与服务器只需要一个tcp连接 服务器可以推送到客户端...

  • Swoole 中 TCP、UDP 和长连接、短连接

    TCP 服务 swoole 文档 - TCP 服务 tcp 服务端 这样就创建了一个 TCP 服务器,监听本机 9...

网友评论

      本文标题:构建TCP服务

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