了不起的Node.js--之五 TCP连接
TCP连接
传输控制协议(TCP)是一个面向连接的协议,它保证了两台计算机之间数据传输的可靠性和顺序。
TCP是一种传输层协议,它可以让你将数据从一台计算机完整有序地传输到另一台计算机。
Node.js这个框架的出发点就是为了网络应用开发所设计的。如今,网络应用都是用TCP/IP协议进行通信的。
Node Http服务器是构建于Node TCP服务器之上的。从编程角度来说,也就是Node中得http.Server继承自net.Server(net是TCP模块)。
TCP有哪些特性
TCP的首要特性就是它是面向连接的,面向连接的通信和保证顺序的传递。
还有面向字节、可靠性、流控制、拥堵控制、Telnet等特性。
Telnet详解
Telnet是一个早期的网络协议,旨在提供双向的虚拟终端。在SSH出现前,它作为一种控制远程计算机的方式被广泛使用,如远程服务器管理。它是TCP协议上层的协议。
$ telnet
绝大部分Telnet使用的是23端口。
下面我们一起看一个telnet的例子:下载
# web-server.js
var http=require('http');
var serv=http.createServer(function (req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end('<marquee>Smashing Node!</marquee>');
});
serv.listen(3000);
使用telnet来建立一个连接
$ telnet localhost 3000
服务器端的'<marquee>Smashing Node!</marquee>'信息并未到客户端这里。原因在于,要往TCP连接中写数据,必须首先创建一个HTTP请求,这就是套接字(socket)。
在终端输入GET/HTTP/1.1然后按两下回车键。
我们来总结一下:
1.成功建立了一个TCP连接。
2.创建了一个HTTP请求。
3.接收到了一个HTTP响应。
4.测试了一些TCP的特性。到达的数据和在Node.js中写得一样:先写了Content-Type响应头,然后是响应体,最后所有的信息都按序到达。
了不起的Node.js--之五 TCP连接的更多相关文章
- 了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发)
了不起的Node.js: 将JavaScript进行到底(Web开发首选,实时,跨多服务器,高并发) Guillermo Rauch 编 赵静 译 ISBN 978-7-121-21769-2 2 ...
- 了不起的Node.js读书笔记
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 第二章 Js概览 基于GoogleV8引擎 Object.keys(o) 数组方法:遍历forEach.过滤filter ...
- 一文搞懂如何使用Node.js进行TCP网络通信
摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...
- paip.最好的脚本语言node js 环境搭建连接mysql
paip.最好的脚本语言node js 环境搭建连接mysql #====下载node...走十一个exe..容易的.. 1 #0----Hello world .js 2 #---------模 ...
- [读书笔记]了不起的node.js+实践(一)
环境的变化带来了技术大跃进,机遇和挑战同时到来.基于我js也没有学,只好赶鸭子上架一起学了.(>﹏<) 1.先读读书 一开始就不知死活地看<深入浅出node.js>,弄得团团转 ...
- Node.js使用TCP通讯
原文地址:https://www.cnblogs.com/ay-a/p/9822057.html Node.js 的 net 模块可以方便的创建TCP 服务,,以下是使用 net 模块创建的tcp 服 ...
- Node.js的长连接
之前写的js服务器脚本,在服务器上运行的挺好的.也经过了压力测试,单次接受4000次的连接不成问题.在5s里,可以应答1W多次的连接.对于这个连接次数,我们还是挺满意的,但是Boss说:客户端每2分钟 ...
- 了不起的Node.js 5/16
Chapter 1 安装 1.Node.js的设计理念之一,只维护较少量的依赖,这使得安装node.js变得非常简单. 2.执行文件console.log没问题,但是node执行http静态服务器的时 ...
- Node.js实现TCP和HTTP并作简单的比较
TCP和Node 传输控制协议是一个面向连接的协议,换句话说,它是一个传输层的协议,它主要的职务呢,就是确保信息传输的正确性. 我们使用的很多如HTTP协议都是基于TCP的,为什么呢?因为我们不希望传 ...
随机推荐
- 数据库迁移之从oracle 到 MySQL最简单的方法
数据库迁移之从oracle 到 MySQL最简单的方法 因工作需要将oracle数据库换到MySQL数据库,数据量比较大,百万级别的数据,表也比较多,有没有一种既快捷又安全的方法呢?答案是肯定的,下面 ...
- October 31st, 2017 Week 44th Tuesday
No matter how hard the past is, you can always begin again. 不管过去有多么困难,你都可以重新开始. Honestly, I don't ag ...
- 1-100求和 sum(range(101))
print(sum(range(101))) s = 0for i in range(101): s += iprint(s)
- 【Ansible 文档】【译文】动态inventory
Dynamic Inventory 动态inventory 配置管理系统的用户经常想要保存inventory到不同的软件系统中.Ansible提供了一个基本的基于文本的系统,正如inventory中描 ...
- 旋转的地球css3
css3果然博大精深: 1.代码里面还有用box-shadow制作椭圆形阴影的效果,厉害了!之前找了好久都没找到,今天给找到了 html: <section class="stage& ...
- 如何将XML文件导入Excel中
如下图所示为一个规范的XML文件,在Excel中可以将规范的XML文件导入到Excel成为规范的表格.具体有如下几种方法: 工具/原料 Excel 方法/步骤 单击“数据”选项卡下的“ ...
- 【转】numpy中mean和average的区别
转自:https://blog.csdn.net/Muzi_Water/article/details/85104941 mean和average都是计算均值的函数,在不指定权重的时候average和 ...
- WorldWind源码剖析系列:插件类Plugin、插件信息类PluginInfo和插件编译器类PluginCompiler
插件类Plugin是所有由插件编译器加载的插件子类的抽象父类,提供对插件的轻量级的访问控制功能. 插件信息类PluginInfo用来存储关于某个插件的信息的类,可以理解为对插件类Plugin类的进一步 ...
- 解决Matlab当中for循环运行慢的问题
做量化操作的时候经常需要使用到matlab编写策略或者计算多因子,for循环非常慢,自己找了一些matlab中for循环的优化方法,for的部分每处理一个大矩阵都要花费大量的时间,这是不可避免需要遇到 ...
- CentOS配置Hive
hive搭建共分为三种模式:1.embedded,2.local,3.remote server 在这里,主要是配置第3种模式:remote server模式,如下图所示: 我的环境共三台虚拟机:Ho ...