Nodejs实现socket通信
2016-08-22 00:09
92 查看
Readline模块
学习方法:1.创建Readline对象
2.理解掌握对象的接口方法
3.监听与处理Readline事件
小栗子
//引入模块 var readline = require('readline'); //创建对象,需要两个参数,要监听的可读流,要写入的可写流 var rl = readline.createInterface({ input:process.stdin, output:process.stdout }); //预先提示的方法,用户回车触发回调函数 rl.question("你叫什么名字",function(answer){ console.log('名字是’ + answer); rl.close(); }); //关闭接口实例 rl.on('colose',function(){ process.exit() });
输入与输出栗子
//引入模块 var readline = require('readline'); //创建对象 var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); //line事件,在用户输入完一行按下回车就会触发事件,它将用户的输入数据通过回调函数传过来,可在此回调方法做处理 rl.on('line', function(line){ switch(line.trim()) { case 'copy': console.log("复制"); break; case 'hello': rl.write("Write"); console.log('world!'); break; case 'close': rl.close(); break; default: console.log('没有找到命令!'); break; } }); //关闭方法 rl.on('close', function() { console.log('bye bye'); process.exit(); });
带有提示的输入输出
//引入模块 var readline = require('readline'); //创建对象 var rl = readline.createInterface(process.stdin, process.stdout); //setPrompt方法为设置提示作用 rl.setPrompt('请输入 '); //prompt将setPrompt方法输出提示另起一行 rl.prompt(); //监听输入的内容,回调函数做处理 rl.on('line', function(line) { switch(line.trim()) { case 'copy': console.log("复制"); break; case 'hello': console.log('world!'); break; case 'close': rl.close(); break; default: console.log('没有找到命令!'); break; } rl.prompt(); }); //关闭 rl.on('close', function() { console.log('bye bye!'); process.exit(); });
net模块
Net模块可用于创建Socket服务器或Socket客户端。 NodeJS 的数据通信,最基础的两个模块是 Net 和 Http,前者是基于 Tcp 的封装,后者本质还是 Tcp 层,只不过做了比较多的数据封装,我们视为表现层简要的概述,里面有一些常用的概念,这里做个简短的概念普及介绍:
(1),TCP/IP——TPC/IP协议是传输层协议,主要解决数据如何在网络中传输。
(2),Socket——socket则是对TCP/IP协议的封装和应用(程序层面)。
(3),Http——HTTP是应用层协议,主要解决如何包装数据。
(4),网络七层模型——物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
总结一下:Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。
从而形成了我们知道的一些最基本的函数接口,比如Create、Listen、Connect、Accept、Send、Read和Write等等。
TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口
实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。
net模块实现客户端连接服务器
//server.js代码 var net = require('net'); var server = net.createServer(function(connection) { console.log('client connected'); connection.on('end', function() { console.log('客户端关闭连接'); }); connection.write('Hello World!\r\n'); connection.pipe(connection); }); server.listen(3000, function() { console.log('server is listening'); });
//client.js代码 var net = require('net'); var client = net.connect({port: 3000}, function() { console.log('连接到服务器!'); }); client.on('data', function(data) { console.log(data.toString()); client.end(); }); client.on('end', function() { console.log('断开与服务器的连接'); });
相关文章推荐
- nodejs系列(10)实现socket通信
- NodeJs在非阻塞实现原理
- 简单实现Socket通信
- 用nodejs实现支持pac脚本的代理
- 使用NIO实现非阻塞Socket通信
- 转载和积累系列 - Nodejs 中GET方法实现
- Nodejs实现文件upload以及download
- CSRF攻击原理以及nodejs的实现和防御
- 部署最新的Simple-TODO Nodejs 实现版
- 迁移Simple-TODO Nodejs实现版至CouchDB数据库 --- 用户认证
- 实现DOS下的SOCKET通信
- NodeJS实现HTTP/HTTPS代理
- 用nodejs实现json和jsonp服务
- NodeJS实现HTTP/HTTPS代理 - 刘春龙的博客
- [置顶] Java Socket实战之六 使用NIO包实现Socket通信
- C#-Socket通信如何实现?
- C#-Socket通信如何实现?
- nodejs web开发入门: Simple-TODO Nodejs 实现版
- 一些nodejs实现同步操作想法实现
- nodejs 实现继承