码迷,mamicode.com
首页 > Web开发 > 详细

Node.js网络编程

时间:2020-03-18 15:26:17      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:error   idt   soc   out   table   ESS   事件   属性   tin   

一:Node.js中的套接字服务由Net模块提供,其中包含了创建服务器/客户端的方法。

  (1):Net模块提供的API:

net.createServer([optinons][,connectionListener]) 创建了一个TCP服务器,参数connectionListener自动给connection事件创建监听.
net.connect() 返回一个新的net.Socket,并且连接到指定的地址和端口,当socket创建的时候,将会触发connect事件.
net.createConnection(options[,connectionListener]) 创建一个端口指定port和ip的TCP连接
   
   
   

服务器端代码:

/*
1:server对象中可以被触发事件
listening:当服务器调用server.listen绑定后会触发
connection:当新连接创建后会被触发.
close:服务器关闭时会被触发:
error:发生错误时触发,close事件将被下列事件直接调用.
*/
var net = require(‘net‘);
var server = net.createServer(); //等到一个实列化的服务器对象.
//监听客户端的连接事件connection(),连接成功就会执行回调函数.
server.on(‘connection‘,function() {
    console.log(‘有客户连接上来了‘);
});
server.on(‘listening‘,function(){
    console.log(‘服务器开始监听‘);
});
server.listen(8888,‘127.0.0.1‘);
/*
server.on(‘close‘,function(){
    console.log(‘关闭了服务器‘);
});
server.close(function(){
    console.log(‘开始关闭服务器‘);
    var s = server.address();
    console.log(s);
});
*/
/*
2:服务器端可以调用的函数:
server.listen(port,host,backlog,callback)
host:接受任何IPV4地址.
server.listen(path[,clallback])
通过指定path的连接,启动一个本地socket服务器.
server.close(clallback)
服务器停止接收新的连接,保持现有连接,这是异步函数,当所有连接结束的时候
服务器会关闭,并触发close事件.
server.address()
操作系统返回绑定的地址,协议簇名和服务器端口
server.getConnections(callback)
异步获取服务器当前活跃连接的数量.当socket发送给子进程后才有效;回调函数有两个参数
err和count.
*/

二:Net.Socket对象;Net.Socket实例实现了一个Duplex(双工,双向)流接口,提供了Writeable和Readable所有功能,所以可以说它是可读流也是可写流.

/*
1:当客户端进行连接时会触发connection事件,事件的回调函数会把客户端的IP地址
和端口号封装到一个Socket对象中.
*/
/*
2:socket对象可调用函数:
net.Socket([options]):构造一个新的socket对象;
socket.connect(port[,host][,connectListener])
指定端口和地址进行连接服务器.
socket.write(data[,encoding][,callback])
在socket上发送数据.
socket.address();
返回服务器的一些信息.
*/
/*
3:socket对象可以触发的事件
lookup:在解析域名时,但在连接前,触发这个事件
connect:成功建立socket连接时触发.
data:当接受到数据时触发:
end:当socket另一端发送FIN包时,触发该事件
timeout:当socket空闲时触发,仅仅表明socket已经空闲.
error:
close:当socket关闭时触发.
*/
var net = require(‘net‘);
var server = net.createServer();
server.on(‘connection‘,function(socket) {
    console.log(‘有客户连接上‘);
    console.log(‘有客户端IP地址:‘+socket.remoteAddress+‘连接到了当前服务器‘);
    socket.write(‘hello world‘);
    socket.address();//返回服务器
    var l = socket.bytesWritten();
    console.log(‘发送的字节数‘+l);
    socket.on(‘data‘,function(){
        console.log(‘收到客户端发送来的信息‘);
    });
});
server.on(‘listening‘,function(){
    console.log(‘服务器开始监听成功了,正在等待客户连接‘);
});
server.listen(8888,‘127.0.0.1‘);
/*
4:socket对象的属性:
socket.remoteAddress:远程的IP地址字符串.
socket.localPort:本地端口地址,用数字表示,
socket.bytesRead:接受到的字节数.
socket.bytesWritten:发送的字节数;
*/

 

Node.js网络编程

标签:error   idt   soc   out   table   ESS   事件   属性   tin   

原文地址:https://www.cnblogs.com/1314bjwg/p/12517389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!