前言:
因为看了极客学院和书上的TCP那一块,顺便写个笔记。TCP服务是三次握手协定,也就是:客户端-发送请求,服务器-收到请求,客户端-我知道服务器收到了请求。PS:问的柴犬君。 这貌似是很精简的理解方式。在nodejs中,我们需要简单了解一些层:
(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等等。
(2),Socket——socket则是对TCP/IP协议的封装和应用(程序层面)。
(3),Http——HTTP是应用层协议,主要解决如何包装数据。
(4),网络七层模型——物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
总结一下:Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。
从而形成了我们知道的一些最基本的函数接口,比如Create、Listen、Connect、Accept、Send、Read和Write等等。
简单TCP服务代码
服务器端代码:
var net= require('net'); var server=net.createServer(function(socket){ console.log('client connected this time '); //此时监听客户端数据 socket.on('data',function(data){ console.log('server got date form client is ',data.toString()); }); //监听客户端断开时间 socket.on('end',function(){ console.log('connection closed'); }); socket.write('your require was come into face\n'); }); //启动服务 server.listen(8080,function(){ console.log('server bound') });
客户端代码:
var net =require('net'); var client=net.connect({port:8080},function(){ console.log('connected to server'); client.write('this is a message\n'); }); // 接收服务端的数据 client.on('data', function(data) { console.log('client got data from server: ', data.toString()); // 断开连接 client.end(); }); // 断开连接 client.on('end', function() { console.log('disconnected from server'); });