Node学习笔记:建立TCP服务器和客户端之间的通信

结构:

socket是应用层和传输层的桥梁。(传输层之上的协议所涉及的数据都是在本机处理的,并没进入网络中)

涉及数据:

socket所涉及的数据是报文,是明文。

作用:

建立长久链接,供网络上的两个进程通信。

下面是Tcp服务端的代码:

var net = require('net');//模块引入
var listenPort = 8080;//监听端口
// 创建socket服务端,下面是对客户端的处理
var server = net.createServer(function(socket){
 socket.setEncoding('binary');
 socket.on('data',function(data){//接收到客户端传来的数据
  console.log('client send:' + data);
 });

 socket.write('Hello client!\r\n');//写入数据,客户端可以接收

 socket.on('error',function(exception){//数据错误事件,比如客户端断开连接
  console.log('socket error:' + exception);
  socket.end();//断开服务器
 });

 socket.on('close',function(data){ //客户端关闭事件,断开连接
  console.log('client closed!');
 });
}).listen(listenPort);

//下面是服务器监听事件
server.on('listening',function(){//服务器开启 开始监听端口
 console.log("server listening:" + server.address().port);
});

server.on('connection',function(){//服务器和客户端建立起联系时执行
 console.log("server 已经连接");
});

server.on("error",function(exception){//服务器错误事件
 console.log("server error:" + exception);
});

下面是TCP客户端的代码:

var net = require('net');
var port = 8080;
var host = '127.0.0.1';
var client= new net.Socket();//创建socket客户端
client.setEncoding('binary');
client.connect(port,host,function(){//连接到服务端
    client.write('hello server');//向端口写入数据到达服务端
});
client.on('data',function(data){
     console.log('from server:'+ data);//得到服务端返回来的数据
});
client.on('error',function(error){
     console.log('error:'+error);//错误出现之后关闭连接
     client.destory();
});
client.on('close',function(){
     console.log('Connection closed');//正常关闭连接
});

运行两个node的结果:

posted @ 2019-01-23 14:06  小猪冒泡  阅读(517)  评论(0编辑  收藏  举报